Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpant / шпант / 18-23.doc
Скачиваний:
17
Добавлен:
15.04.2015
Размер:
675.84 Кб
Скачать

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

  • Вместе с понятием внешнего ключа реляционная модель включает следующее правило ссылочной целостности:

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

  • База данных не должна содержать несогласованных значений внешних ключей.

  • «Несогласованное значение внешнего ключа» — это значение внешнего ключа, для которого не существует отвечающего ему значения соответствующего потенциального ключа в соответствующем целевом отношении.

  • Правило утверждает, что если В ссылается на А, тогда А должно существовать.

  • Понятия "поддержка ссылочной целостности" и "поддержка внешних ключей" означают одно и то же.

23. Правила внешних ключей. Расширенный синтаксис задания внешнего ключа

  • Правило целостности выражено исключительно в терминах состояний базы данных.

  • Любое состояние базы данных, не удовлетворяющее этому правилу, некорректно.

  • Для каждого внешнего ключа необходимо ответить на два важных вопроса.

1. Что должно случиться при попытке удалить объект ссылки внешнего ключа?

Например, удалить поставщика, для которого есть, по крайней мере, одна поставка. В общем существует по меньшей мере две возможности:

- " ОГРАНИЧИТЬ — "ограничить" операцию удаления, до момента, когда не будет существовать соответствующих поставок (в противном случае операция запрещается);

- КАСКАДИРОВАТЬ — "каскадировать" операцию удаления, удаляя также соответствующие поставки.

2. Что должно случиться при попытке обновить потенциальный ключ, на который ссылается внешний ключ?

Например, при попытке обновить номер поставщика, для которого существует, по крайней мере, одна соответствующая поставка. Как и для удаления здесь существует по меньшей мере две возможности:

- ОГРАНИЧИТЬ — "ограничить" операцию обновления до момента, когда не будет существовать соответствующих поставок (в противном случае операция запрещается);

- КАСКАДИРОВАТЬ — "каскадировать" операцию обновления, обновляя также внешний ключ в соответствующих поставках.

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

  • Необходимо расширить синтаксис определения внешнего ключа следующим образом:

FOREIGN KEY (…) REFERENCES base-relation

DELETE option

UPDATE option

Здесь параметр option может принимать значение RESTRICTED (ограничить) или CASCADES (каскадировать).

  • В общем случае параметр option в синтаксисе должен включать возможность вызова определенной при установке процедуры баз данных (иногда называемой "хранимой процедурой" или "процедурой триггеров").

Соседние файлы в папке шпант