Часть 1. Понятие представления
View – это объект базы данных, представляющий собой виртуальную таблицу, информация в которой формируется динамически в соответствии с запросом, хранящимся в БД и ассоциированным с этим представлением.
По сути это не что иное, как хранимый запрос, содержание которого формируется динамически по итогам обращения к одной или нескольким таблицам, как только в кодах встречается обращение к представлению.
При этом у пользователя создается впечатление, что он работает с реально существующей таблицей. Однако такой объект не требует для своего хранения дисковой памяти кроме памяти, необходимой для его определения.
Представление создается следующей командой:
<определение_просмотра>:: =
{ CREATE | ALTER } VIEW имя_представления [(имя_столбца [,...n]}]
[ WITH ENCRYPTION [, SHENABINDING] [, VIEW METADATA] ]
AS
SELECT _onepaтор
[ WITH CHECK OPTION ] [;]
Самая простая синтаксическая структура создания представления:
CREATE VIEW имя_представления
AS
SELECT _onepaтор;
Как и во всех случаях использования оператора CREATE, после выполнения этой команды никаких результатов работы оператора SELECT на экране мы не увидим. Будет лишь выдана диагностика об успешном завершении процесса создания представления.
|
|
Зачем создаются представления?
Во-первых, это связано с необходимостью сокрытия конфиденциальных данных, хранящихся в отдельных полях таблиц. После создания представлений доступ к данным для всех пользователей открывается только через представления, прямого доступа к таблицам нет. Таким образом, частично решается проблема безопасности данных.
Во-вторых, это связано с необходимостью предоставлять пользователям выборки данных по определенным условиям из различных таблиц.
В-третьих, пользователям не придется писать довольно сложные запросы, использующие соединения таблиц, операции агрегирования и т.д.
Назначение основных параметров:
По умолчанию имена столбцов в представлении соответствуют именам столбцов в исходных таблицах.
Явное указание имени столбца требуется для вычисляемых столбцов или при объединении нескольких таблиц, имеющих столбцы с одинаковыми именами.
Имена столбцов перечисляются через запятую, в соответствии с порядком их следования в представлении.
Параметр WITH ENCRYPTION предписывает серверу шифровать SQL-код запроса, что гарантирует невозможность его несанкционированного просмотра и использования. Если при определении представления необходимо скрыть имена исходных таблиц и столбцов, а также алгоритм объединения данных, необходимо применить этот аргумент.
Параметр WITH CHECK OPTION предписывает серверу исполнять проверку изменений, производимых (интерактивно пользователем или клиентским приложением) через представление, на соответствие критериям, определенным в операторе SELECT.
|
|
Использование аргумента WITH CHECK OPTION гарантирует, что сделанные изменения будут отображены в представлении.
Это означает, что не допускается выполнение изменений, которые приведут к исчезновению строки из представления. Такое случается, если в представлении установлен горизонтальный фильтр и изменение данных приводит к несоответствию строки установленным фильтрам.
То есть, если пользователь пытается выполнить изменения, приводящие к исключению строки из представления, при заданном аргументе WITH CHECK OPTION сервер выдаст сообщение об ошибке и все изменения будут отклонены.