Понедельник, 23.06.2025, 09:11
Приветствую Вас, Гость | RSS
Меню сайта
Форма входа
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

25 Целостность сущностей и ссылок.

Согласно концепции предложенной Дейтом реляционная модель состоит из трех частей: структурной, манипуляционной и целостной. В целостной части реляционной модели данных фиксируется два базовых принципа, которые должны поддерживаться в любой реляционной СУБД:

1. Требование целостностей сущностей – объекту или сущности реального мира в реляционной базе данных ставится в соответствие кортеж некоторого отношения. Требование целостностей сущностей состоит в том, что любой кортеж любого отношения должен быть отличен от любого другого кортежа этого же отношения или любое отношение должно обладать первичным ключом.

2. Требование целостности по ссылкам – атрибут называется внешним ключом, если его значение однозначно характеризует сущности представленными кортежами некоторого другого отношения, т.е. задает значение их первичного ключа. Требование целостности по ссылкам состоит в следующем – для каждого значения внешнего ключа появляющемся в ссылающемся отношении в отношении, на которое ведет ссылка, должен найтись кортеж с таким же значением первичного ключа либо значение внешнего ключа должно быть неопределенным.

Ограничения целостности сущности и целостности по ссылкам должны поддерживаться на уровне СУБД. Для соблюдения требования целостностей сущностей достаточно гарантировать отсутствие в отношении кортежей с одним и тем же значением первичного ключа. При обновлении ссылающегося отношения или модификации значений внешнего ключа в существующих кортежах необходимо следить за тем, чтобы не появились некорректные значения внешнего ключа.

При удалении кортежа из отношения существует три подхода поддержания целостности по ссылкам:

1. Запрещается производить удаление ключа, на который существуют ссылки. Сначала нужно либо удалить ссылающиеся кортежи, либо соответствующим образом изменить значение их внешнего ключа.

2. При удалении кортежа, на который существуют ссылки во всех ссылающихся кортежах, значение внешнего ключа автоматически становится неопределенным.

3. Каскадное удаление. При удалении кортежа из отношения в отношении, на которое ведет ссылка, автоматически удаляются все ссылающиеся кортежи.