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

Представления

Представление (view) является по сути именованным результатом выполнения некоторого запроса (т.е. оператора SELECT), записанного при описании представления. Этот запрос выполняется всякий раз, когда представление включается в состав других запросов. Представления позволяют:

  • ограничивать число столбцов, с которыми работает пользователь;

  • ограничивать число строк, с которыми работает пользователь;

  • создавать дополнительные столбцы, содержащие результаты преобразования данных из исходных таблиц;

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

Для создания представления необходимо выполнить оператор CREATE VIEW, формат:

CREATE VIEW имяпредставления [(описаниестолбцов)] AS запрос

[WITH READ ONLY][WITH CHECK OPTION]

Для уничтожения представления используется оператор: DROP VIEW имяпредставления

Представление, дающее возможность работать только с теми работниками, которые в настоящий момент работают на предприятии, задается следующим оператором:

CREATE VIEW emp1 AS

SELECT DISTINCT emp.* FROM emp, career

WHERE emp.empno=career.empno AND career.enddate IS NULL;

Представления подразделяются на:

модифицируемые — могут изменяться с помощью операторов языка манипулирования данными. При этом фактическая модификация будет осуществляться не в виртуальной таблице – представлении, а будет перенаправлена в базовые таблицы. Они используются подобно базовым таблицам, и их главное предназначение состоит в том, чтобы скрыть от пользователя (который, вообще говоря, может и не знать, с каким объектом базы данных: таблицей или представлением – он работает) информацию, которая является конфиденциальной или не предназначена для данного пользователя)

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

Опция WITH CHECK OPTION, ее действие заключается в том, что условие WHERE из запроса-описания представления распространяется и на операции вставки и модификации, она не является каскадной.

Перечислим критерии модифицируемого представления.

  • представление должно строиться на основе одной и только одной базовой таблицы;

  • представление должно содержать первичный ключ этой таблицы;

  • представление не должно содержать агрегирующих функций в качестве полей;

  • представление не должно содержать в своем описании фраз DISTINCT, GROUP BY, HAVING;

  • представление не должно содержать в своем описании подзапросов;

  • представление не должно содержать в качестве полей констант или вычисляемых выражений.

Кроме того, включение в определение представления фразы WITH READ ONLY делает представление, удовлетворяющее перечисленным критериям, представлением только для чтения.

Имеются некоторые виды запросов, которые недопустимы при определении представления. Одиночное представление базируется на одиночном запросе, поэтому теоретико-множественные операции (например, UNION и UNION ALL) недопустимы. Кроме того, представление по сути является неупорядоченной виртуальной таблицей, поэтому фраза ORDER BY также недопустима.

Хотя представление и основано на базовых таблицах, оно является независимым объектом базы данных. Поэтому, удаляя или модифицируя таблицы, мы не изменяем представления, которые, возможно, были созданы на их основе. Ошибки возникают только при использовании таких «зависших» представлений.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]