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

Триггеры INSTEAD OF и обновляемые представления

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

Представления только для чтения

Один из видов представлений, поддерживаемых в Oracle8, - представления только для чтения (read-only views). Такие представления используются при выборе необходимых табличных данных, однако с помощью таких представлений приложения не могут вводить, обновлять или удалять данные, содержащиеся в таблицах.

 

В Oracle8 разрешается определять обновляемые представления (updatable views), которые могутиспользоваться приложениями для ввода, обновления и удаления табличных данных и для выполнения запросов.

 

Основной принцип представления – ограничения для обновляемых представлений

Не требуется выполнять каких-либо специальных операций, чтобы представление было обновляемым, если при использовании представления сервер обеспечивает соблюдение основного правила представления. Основное правило представления требует, чтобы сервер мог надлежащим образом отображать операции ввода, бновления или удаления информации через представление на табличные данные, лежащие в его основе. Для обеспечения выполнения этого правила необходимо объявлять обновляемые представления с определенными атрибутами. Кроме того Oracle запрещает выполнение операций над представлением, нарушающим целостность базовой таблицы (таблиц).

 

Даже в том случае, когда атрибуты представления нарушают основное правило представления, можно сделать представление обновляемым, если определить его с триггерами INSTEAD OF. Триггеры (triggers) INSTEAD OF (вместо) – это программы языка PL/SQL, определяемые вместе с представлением. Эти триггеры описывают последователььность действий, если операторы INSERT (ввести), UPDATE (обновить) или DELETE (удалить) применяются к представлению, которое при других обстоятельствах не было бы обновляемым.

 

В Oracle8 ограничения целостности для таблицы реализуются автоматически, независимо от того, как приложение обращается к таблице: напрямую или косвенно, посредством обновляемого представления. При желании можно определиь обновляемое представление сос специальным ограничением целостности CHECK. При этом Oracle позволяет приложениям вводить и обновлять с помощью представления только строки, доступные этому представлению. Такое специальное ограничение целостности предотвращает доступ к таблице, не разрешенный определением представления.