Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_БД_Раздел_1_.doc
Скачиваний:
18
Добавлен:
01.04.2025
Размер:
295 Кб
Скачать
☆

Целостность сущностей.

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

Если допустить присутствие NULL в любой части первичного ключа, это равносильно утверждению, что не все его поля необходимы для уникальной идентификации записей, и противоречит определению первичного ключа.

Поддержание целостности сущностей обеспечивается средствами СУБД. Это осуществляется с помощью двух ограничений:

- при добавлении записей в таблицу проверяется уникальность их первичных ключей;

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

Целостность внешних ключей (или ссылочная целостность).

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

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

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

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

Как правило, поддержание ссылочной целостности также возлагается на СУБД. Например, она может не позволить пользователю добавить запись, содержащую внешний ключ с несуществующим (неопределенным) значением. Таким же образом, при попытке удаления записи из родительской таблицы, СУБД проверяет, что в подчинённой таблице нет записей с таким же значением внешнего ключа, и если есть, то блокирует удаление родительской записи.

24