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

10.2. Представления, их значение; обновляемые представления

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

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

Создание и удаление представлений

Для создания представлений используется следующий синтаксис:

CREATE [OR REPLACE] VIEW имя_представления AS

оператор SELECT

[WITH CHECK OPTION];

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

Удаление представлений, как и всех других объектов базы данных, осуществляется при помощи оператора DROP, например:

DROP VIEW Contragents_Lite;

Обновляемые представления

Если к представлению можно применить операторы обновления (INSERT, UPDATE или DELETE), то представление является обновляемым (updateble), иначе оно является читаемым (read-only).

Ниже приведены критерии того, является ли представление обновляемым в SQL:

  • оно базируется на одной таблице;

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

  • оно не должно включать полей, полученных в результате применения функций агрегирования;

  • оно не может содержать спецификации DISTINCT;

  • оно не должно использовать GROUP BY или HAVING;

  • для INSERT оно должно включать поля из таблицы, которые имеют ограничения NOT NULL.

  1. Подмножество языка dcl: операторы grant, revoke. Системные привилегии, привилегии на объекты, роли.

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

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

В том случае, если необходимо предоставить доступ к тому или иному объекту для других пользователей, используются операторы языка DCL (Data Control Language, язык управления доступом к данным) GRANT и REVOKE.

Объектные и системные привилегии

Существуют привилегии двух различных видов: объектные и системные.

Объектная привилегия (object privilege) разрешает выполнение определенной операции над конкретным объектом (например, над таблицей). Название каждой из объектных привилегии совпадает с названием оператора, который она разрешает выполнять тому или иному пользователю над конкретным объектом базы данных. Примеры объектных привилегий: SELECT, DELETE, INSERT, UPDATE, REFERENCES.

Системная привилегия (system privilege) разрешает выполнение операций над целым классом объектов – над всеми объектами какого-то типа, принадлежащими конкретному пользователю, или вообще над всеми объектами какого-то типа во всей базе данных.

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