Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы по СИИ.doc
Скачиваний:
16
Добавлен:
20.12.2018
Размер:
259.07 Кб
Скачать
  1. Целостность данных. Внешние ключи.

Целостность можно определить как правильность данных в любой момент времени. Правила целостности:

  1. целостность атрибута.

  2. Целостность отношения.

  3. Целостность по ссылкам.

  4. Правила, определяющие пользователя.

Целостность по ссылкам. Внешние ключи.

При нормализованности отношений сложная сущность реального мира представляется в Р БД в виде нескольких кортежей нескольких отношений. Целостность по ссылкам позволяет восстановить эти сущности.

Пример:

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

Такие атрибуты называются внешним ключом. Отношение, которое содержит внешний ключ называется ссылающимся, а отношение содержащее этот PK называется целевым.

11.Целостность данных. Правила внешних ключей.

Целостность можно определить как правильность данных в любой момент времени. Правила целостности:

  1. целостность атрибута.

  2. Целостность отношения.

  3. Целостность по ссылкам.

  4. Правила, определяющие пользователя.

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

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

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

Пример :

Операции:

  1. удаление кортежа с номером отдела 01.

1 вар) запретить эту операцию, т.к. на кортеж ссылаются 2 кортежа в отношении сотрудники. RESTRICT.

2 вар) разрешить операцию, распространить операцию удаления на кортежи отношение сотрудники. CASCADE.

3 вар) сбросить значение внешнего ключа, в соответствующем отношении желаемого ключа. Это возможно, если поле внешнего ключа допускает неопределенное значение. SETNULL.

  1. изменение PK в кортеже 01

1 вар) запретить операцию удаления кортежа, если есть ссылки.

2 вар) каскадировать эти изменения на все кортежи, ссылающегося отношения.

3 вар) сбросить внешний ключ (очистить поле FK).

В отношении каждого атрибута должно быть определено, может ли он содержать NULL значения, NULL разрешено, NOT NULL запрещено.

  1. В PK NULL значения не допускаются. В этом случае становится невозможным поддерживать уникальность кортежей.

  2. В полях FK NULL значения допускается и это определяется БД.

Переформулирование правила FK.

Переформулировка правил FK:

Значение внешнего ключа должно совпадать со значением PK некоторого кортежа целевого отношения или NULL значения.

  1. допустимый элемент NULL значения.

  2. Разрешено ли выполнение удаления кортежа в целевом отношении при наличии ссылок или каскадировать , или сбрасивать в NULL.

  3. Запрещать ли обновления кортежей в целевом отношении при наличии ссылок, либо каскадировать. Либо сбрасывать в NULL .

  4. Целостность, определяемая пользователем.

Любая БД кроме общих правил целостности может содержать набор специфических правил целостности.