Ограничения базы данных
Определение 12. Ограничения целостности базы данных представляют ограничения, накладываемые на значения двух или более связанных между собой отношений (в том числе отношение может быть связано само с собой).
Пример 13. Ограничение целостности ссылок (см. гл. 3), задаваемое внешним ключом отношения, является ограничением базы данных.
Пример 14. Ограничение на таблицы DEPART и PERSON из примера 1 является отношением базы данных, т.к. оно связывает данные, размещенные в различных таблицах.
Проверка ограничения. К моменту проверки ограничения базы данных должны быть проверены ограничения целостности отношений.
Ограничение базы данных может быть как немедленно проверяемым ограничением, так и ограничением с отложенной проверкой.
Ограничение отношения, являющееся ограничением внешнего ключа может быть как немедленно проверяемым ограничением, так и отложенным ограничением. Действительно, в простейшем случае, если кортеж отношения
должен ссылаться на кортеж
отношения
, то проверку ограничения ссылочной целостности можно производить сразу после любой из операций вставки, обновления или удаления в любом из отношений
или
. В более сложном случае, предположим, что кортеж
отношения
должен ссылаться на кортеж
отношения
, а кортеж
отношения
должен в свою очередь ссылаться на кортеж
отношения
(циклическая ссылка). Очевидно, что сразу после вставки кортежа
отношение
ссылочная целостность обязательно нарушена, т.к. кортежа
еще нет в отношении
. Проверку ссылочной целостности можно провести только посл завершения транзакции, состоящей из последовательности операций:
- вставки кортежа
в отношение
с нулевой ссылкой на отношение
,
- вставки кортежа
отношение
со ссылкой на кортеж
отношения
,
- исправления ссылки в кортеже
с NULL на ссылку на кортеж
.
Ограничение, приведенное в примере 1, может быть только ограничением с отложенной проверкой.