Ссылочная целостность


 

Одной из главных задач при эксплуатации БД, является задача поддержания правил ссылочной целостности, которые были определены при проектировании. Эти правила отражают заданные связи между сущностями и порядок выполнения операций вставка, замена и удаление. Если эти правила не будут соблюдены, то БД быстро деградирует, и не будет отражать те бизнес – правила, которые были заложены при ее проектировании.

Правила контроля и выполнения этих операций может быть возложена на специально разработанные пользователем программы, но данное решение крайне не надежное и трудоемкое для его реализации. Задача поддержания правил ссылочной целостности обычно реализуется автоматически при генерации схемы БД на основе режимов реализации связей (отношений) с помощью триггеров, обеспечивающих ссылочную целостность. Данные триггера представляют собой программы, выполняемые всякий раз при выполнении операций вставка, замена и удаление. Таким образом, при проектировании автоматически обеспечивается правильная эксплуатация БД.

На рис. 5.4. приведен пример определения правил ссылочной целостности для реализации связи F_COU_AD в среде Erwin.

 

 

Рис. 5.4. Пример определения правил ссылочной целостности

 

Cascade – задает каскадное действие (например, удаление родительской записи влечет удаление всех записей у потомков), Restrict – задает ограничение на выполнение действия, (на пример, нельзя удалить родительскую запись, пока есть записи у потомков и наоборот), Set Null – задает действие по установлению FK равным NULL, при удалении родительской записи, Set Default – задает действие по установлению FK равным Default, при удалении родительской записи, None Action – ни каких действий не требуется, если удалены потомки (например, D:R – для родителя, D:S – для потомка или I:R – для потомка, если нет родителя).