Предположим, например, что вы создаете для таблицы STOCK представление INVENTORY (показанное выше). Эта таблица находится в другой пользовательской схеме, поэтому вы можете применять представление INVENTORY только для операторов SELECT (но не INSERT, UPDATE или DELETE). Кроме того, для создания представления вы не можете использовать полученные на основе ролей полномочия на объект (в отличие от непосредственно присвоенных полномочий).
При создании схемы приложения, содержащей все необходимые для работы объекты, эти проблемы не должны вас беспокоить, ведь владельцу (схеме) в этом случае принадлежат все объекты приложения, включая представления и соответствующие базовые таблицы. Все сложные требования к полномочиям вам при этом рассматривать не потребуется.
Использование в представлении псевдонимов имен столбцов
Во многих случаях вместо имен, соответствующих именам столбцов базовой таблицы, в столбцах представления желательно использовать альтернативные имена. Например, при создании представления, объединяющего две различные таблицы, важно четко различать столбцы разных таблиц с идентичными именами. Представление ORDERPORT, показанное в этой главе выше, иллюстрирует один из способов спецификации псевдонимов столбцов. Как демонстрирует следующий пример, CREATE VIEW также позволяет вам перед определением запроса представления задать список разделенных запятыми псевдонимов. Если вы используете этот метод, то число псевдонимов столбца должно соответствовать числу столбцов в определяющем запросе:
CREATE VIEW orderreport (order_id, order_date, line_item_id, stock_id) AS
SELECT orders.id, orders.orderdate, item.id, stockid
FROM orders, item
WHERE item.orderid = orders.id
Задание для представлений ограничений целостности
Ограничения целостности таблицы устанавливают правила целостности для любых видов доступа, включая работу с таблицей ее представления. Oracle7 не позволяет обходить правила целостности путем создания и использования представления.
Если вы создаете для приложения представление, которое пользователи будут применять для вставки или обновления данных таблицы, то рассмотрите возможность применения специальных определяемых для него ограничений целостности. Если при создании представления команда CREATE VIEW задается с ключевым словом CHECK, то Oracle7 позволяет пользователям вставлять и обновлять только те строки, которые в этом представлении доступны. Например, следующий оператор определяет представление, выводящее только покупателей из штата Калифорния:
CREATE VIEW California AS
SELECT companyname, lastname, firstname, city FROM customer
WHERE state = 'CA' —CA -шт. Калифорния
WITH CHECK OPTION
Следующий пример показывает, какие операторы UPDATE Oracle7 запрещают использовать из-за ограничений целостности представления CALIFORNIA:
UPDATE California
SET city = ‘SOUTH LAKE TAHOE'
WHERE id = 7593
UPDATE California
SET city = 'WA'
WHERE id = 7593
Второй оператор работать не сможет, так как в результате будет получается строка, не выводимая в представлении CALIFORNIA (полученные данные относятся к покупателю из штата Вашингтон).
Замена представлений
Иногда возникает необходимость заменить текущую версию представления новым определением. Например, если вы добавили к таблице новый столбец, то можете изменить соответствующее представление для вывода нового столбца таблицы.
Одним из способов замены представления его новой версией является удаление текущего представления и воссоздание нового (с новым определением). Однако при таком способе удаляются также все назначенные представлению полномочия. Чтобы приложение вновь заработало, вы вынуждены будете заново назначать их в новой его версии. Oracle7 позволяет избежать этой проблемы с помощью замены текущей версии новой, для чего используется параметр REPLACE команды CREATE VIEW:
CREATE OR REPLACE VIEW...
Совет
Как и команду ALTERTABLE, параметр REPLACE команды CREATEVIEW удобно использовать, когда определение представления нужно заменить во время работы приложения (в среде рабочей базы данных). Вместо приостановки или завершения приложения для выполнения операций обслуживания вы можете просто заменить представление, не влияя на доступность приложения.
Удаление представлений
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.