<определение_просмотра>::=
{ CREATE| ALTER} VIEW имя_просмотра
[(имя_столбца [,...n])]
[WITH ENCRYPTION]
AS SELECT_оператор
[WITH CHECK OPTION]
Параметры оператора CREATE
• По умолчанию имена столбцов в представлении соответствуют именам столбцов в исходных таблицах. Явное указание имени столбца требуется для вычисляемых столбцов или при объединении нескольких таблиц, имеющих столбцы с одинаковыми именами. Имена столбцов перечисляются через запятую, в соответствии с порядком их следования в представлении.
• Параметр WITH ENCRYPTION предписывает серверу шифровать SQL-код запроса, что гарантирует невозможность его несанкционированного просмотра и использования. Если при определении представления необходимо скрыть имена исходных таблиц и столбцов, а также алгоритм объединения данных, необходимо применить этот аргумент.
• Параметр WITH CHECK OPTION предписывает серверу исполнять проверку изменений, производимых через представление, на соответствие критериям, определенным в операторе SELECT.
Это означает, что не допускается выполнение изменений, которые приведут к исчезновению строки из представления.
Такое случается, если для представления установлен горизонтальный фильтр и изменение данных приводит к несоответствию строки установленным фильтрам.
Использование аргумента WITH CHECK OPTION гарантирует, что сделанные изменения будут отображены в представлении. Если пользователь пытается выполнить изменения, приводящие к исключению строки из представления, при заданном аргументе WITH CHECK OPTION сервер выдаст сообщение об ошибке и все изменения будут отклонены.
Использование представлений
Обращение к представлению осуществляется с помощью оператора SELECT как к обычной таблице.
|
Представление можно использовать в команде так же, как и любую другую таблицу.
К представлению можно строить запрос, модифицировать его (если оно отвечает определенным требованиям), соединять с другими таблицами.
Содержание представления не фиксировано и обновляется каждый раз, когда на него ссылаются в команде.
Представления значительно расширяют возможности управления данными. В частности, это прекрасный способ разрешить доступ к информации в таблице, скрыв часть данных.
Модифицируемые представления
•основывается только на одной базовой таблице;
•содержит первичный ключ этой таблицы;
•не содержит DISTINCT в своем определении;
•не использует GROUP BY или HAVING в своем определении;
•по возможности не применяет в своем определении подзапросы;
•не использует константы или выражения значений среди выбранных полей вывода;
•в просмотр должен быть включен каждый столбец таблицы, имеющий атрибут NOT NULL;
•оператор SELECT просмотра не использует агрегирующие (итоговые) функции, соединения таблиц, хранимые процедуры и функции, определенные пользователем;
•основывается на одиночном запросе, поэтому объединение UNION не разрешено.
Если просмотр удовлетворяет этим условиям, к нему могут применяться операторы INSERT, UPDATE, DELETE.
Преимущества и недостатки представлений
Механизм представления - мощное средство СУБД, позволяющее скрыть реальную структуру БД от некоторых пользователей за счет определения представлений.
|
Наличие представлений в БД необходимо для обеспечения логической независимости данных (при изменении логической структуры данных не должно оказываться влияние на пользовательские программы).
С увеличением количества данных, хранимых в БД, возникает необходимость ее расширения за счет добавления новых атрибутов или отношений - это называется ростом БД.
Реструктуризация данных подразумевает сохранение той же самой информации, но изменяется ее расположение, например, за счет перегруппировки атрибутов в отношениях.
Предположим, некоторое отношение в силу каких-либо причин необходимо разделить на два. Соединение полученных отношений в представлении воссоздает исходное отношение, а у пользователя складывается впечатление, что никакой реструктуризации не производилось.
Помимо этого представление можно применять для просмотра одних и тех же данных разными пользователями и в различных вариантах.
С помощью представлений пользователь имеет возможность ограничить объем данных для удобства работы.
Наконец, механизм представлений позволяет скрыть служебные данные, не интересные пользователям.
Независимость от данных
С помощью представлений можно создать согласованную, неизменную картину структуры базы данных, которая будет оставаться стабильной даже в случае изменения формата исходных таблиц.
Актуальность
Изменения данных в любой из таблиц базы данных, указанных в определяющем запросе, немедленно отображается на содержимом представления.