Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
03.06.2015
Размер:
835.5 Кб
Скачать

Использование представлений для упрощения сложных объединений

Чаще всего представления используются для упрощения работы с SQL, и нередко это относится к объединениям.

Используя представления, вы можете один раз записать сложный SQL-запрос и затем повторно использовать его.

11

Использование представлений для переформатирования данных

Предположим, что результаты регулярно требуются в определенном формате. Вместо того чтобы выполнять форматирование каждый раз, когда в этом возникает необходимость, вы можете создать представление и использовать его вместо объединения.

Для превращения этого оператора в представление нужно сделать следующее:

CREATE VIEW Client_Adr AS

SELECT TRIM(name) + ’ : ' + TRIM(city) AS q

FROM Client;

12

Использование представлений для фильтрации нежелательных данных

CREATE VIEW Client_Adr AS

SELECT TRIM(name) + ’ : ' + TRIM(city) AS q FROM Client

WHERE confid_level < 9 ;

13

Использование представлений с вычисляемыми полями

Представления полезны для упрощения использования вычисляемых полей.

Например – вычисление стоимости по цене и количеству:

CREATE VIEW PriceList AS

SELECT id,

quantity AS Количество, price AS Цена, quantity*price AS Стоимость

FROM Product;

14

Хранимые процедуры

Большинство операций SQL, которые мы до сих пор выполняли, просты в том смысле, что в них применяется только один оператор по отношению к одной или нескольким таблицам.

Но зачастую приходится использовать несколько операторов для выполнения сложной операции.

Хранимая процедура — это совокупность нескольких операторов (или даже один оператор), сохраненная в БД для последующего использования.

15

Рассмотрим следующие сценарии

При обработке заказа бывает необходимо удостовериться в том, что соответствующие товары есть на складе.

Если товары есть на складе, они должны быть зарезервированы, чтобы их не продали комунибудь еще, а их количество, доступное другим покупателям, должно быть уменьшено соответственно изменившейся ситуации.

Товары, отсутствующие на складе, должны быть заказаны, для этого нужно связаться с их поставщиком.

Клиенту необходимо сообщить, какие товары есть на складе (и могут быть отгружены немедленно) и заказ на какие товары выполнен быть не может.

16

Решение подобной задачи потребует применения многих операторов SQL по отношению ко многим таблицам.

Помимо того что сами SQL-операторы, подлежащие выполнению в подобных случаях, и их порядок не постоянны, они могут (и будут) изменяться в зависимости от того, какие товары имеются на складе, а каких там нет.

Можно было бы написать каждый из операторов SQL отдельно и выполнить другие операторы в зависимости от полученных результатов.

Вам пришлось бы делать это каждый раз, когда возникала бы необходимость подобной обработки данных (и для каждого приложения, которое в ней нуждается).

Эту задачу можно решить с помощью хранимой процедуры.

17

Для чего используют хранимые процедуры

1)Для упрощения сложных операций за счет инкапсуляции процессов в один блок, простой для выполнения.

2)Для обеспечения непротиворечивости данных и

вместе с тем без необходимости снова и снова воспроизводить одну и ту же последовательность шагов. Если все разработчики и приложения используют одни и те же хранимые процедуры, значит, один и тот же код будет использоваться всеми.

3)Побочным эффектом этого является предотвращение ошибок. Чем больше шагов необходимо выполнить, тем выше вероятность появления ошибок. Предотвращение ошибок обеспечивает целостность данных.

4)Для упрощения управления изменениями. Если таблицы, имена столбцов, деловые правила (или что-то подобное) изменяются, обновлять приходится только код хранимой процедуры и ничего больше.

18

5)Побочным эффектом этого является повышение безопасности. Ограничение доступа к основным данным только через хранимые процедуры снижает вероятность повреждения данных (случайного или преднамеренного).

6)Поскольку хранимые процедуры обычно сохраняются в компилированном виде, СУБД тратит меньше времени на обработку их команд. Это приводит к повышению производительности.

7)Уменьшение нагрузки на сеть

8)Существуют элементы языка SQL и некоторые возможности, реализуемые только в хранимых процедурах.

19

Хранимые процедуры, таким образом, можно использовать для написания более гибкого и мощного кода.

имеются три основных преимущества: простота, безопасность и производительность.

20

Соседние файлы в папке Управл_данными