· Действие каскадного удаления определяет удаление всех дочерних строк, зависящих от родительского ключа в удаляемой строке родительской таблицы. (При спецификации каскадного удаления Oracle7 вводит ограничение обновления.)
Ограничения ссылочной целостности в таблице ITEM ясно демонстрирует ( типа ссылочных действий. Один внешний ключ ссылается на таблицу ORDERS со ссылочным действием каскадного удаления (как показано в главе 2 в разделе "Использование ограничений ссылочной целостности для задания стандартных правил целостности"). Таким образом, когда кто-нибудь удаляет из таблицы ORDERS заказ, Oracle7 автоматически выполняет каскадное удаление, уничтожая в таблице ITEM все соответствующие элементы. Другой внешний ключ в таблице ITEM использует действие ограничения ссылочной целостности, заданное как обновление/удаление, то есть ограничиваются все операции с родительским ключом, имеющие зависимые дочерние строки. Следовательно, если часть таблицы STOCK имеет зависимые элементы заказов, то Oracle7 запрещает пользователю обновление или удаление такой части.
Реляционная модель включает в себя и другие типы действий ссылочной целостности, не определяемые ограничениями целостности Oracle7, включая каскадное обновление (изменение значения родительского ключа приводит к изменению значений внешних ключей), обновление/удаление/обнуление (когда кто-то обновляет значение родительского ключа или удаляет родительскую строку, то зависимые значения внешнего ключа устанавливаются в NULL), и обновление/удаление/установка по умолчанию (когда кто-то обновляет значение родительского ключа или удаляет родительскую строку, то зависимые значения внешнего ключа устанавливаются в значение по умолчанию). Хотя Oracle7 не задает эти ограничения ссылочной целостности автоматически, с помощью простых ограничений ссылочной целостности, многие из этих правил можно определить с помощью триггеров базы данных. (Об использовании триггеров базы данных в схеме приложения подробнее рассказывается в главе 18.)
Об управлении таблицами и ограничениях ссылочной целостности в схеме приложения рассказывается ниже в разделе "Управление таблицами и ограничения ссылочной целостности".
Эффективное применение представлений при проектировании схемы приложения
В главе 2 вы познакомились с использованием для различных целей представлений, которые позволяют определить дополнительные уровни защиты, выводить информацию базы данных различным образом и скрывать сложные запросы. Данный раздел более близко познакомит вас с тем, как и где в схеме приложения можно использовать представления.
Выделение логики приложения
Одним из решающих доводов в пользу использования в схеме приложения представлений является отделение логики приложения от структуры таблицы, от которой она непосредственно зависит. Предположим, например, что приложение прямо ссылается на таблицу базы данных по имени с помощью команд SQL.
Нетрудно предвидеть, что произойдет с приложением, если вы в какой-то момент измените имя таблицы: чтобы изменить все ссылки SQL со старыми именем таблицы, вам нужно будет модифицировать исходный код приложения и перекомпилировать его. Либо, используя представление, заданное в качестве надстройки над таблицей, вы можете скрыть переименование таблицы от приложения простой заменой определения представления. Приложение все равно будет ссылаться на представление, но так как последнее теперь ссылается на новое имя таблицы, все будет прекрасно работать. Преимущество применения представлений показано на рис. 15.5.
Примечание
Использование представлений— это лишь один из способов отделения логики приложения от тех таблиц, на которые оно ссылается. С этой целью можно также применять синонимы и хранимые процедуры . О синонимах подробнее рассказывается ниже в разделе "Эффективное использование синонимов в схеме приложения", а в главе 18 описываются хранимые процедуры.
Исключение команд SQL
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.