Объект реального мира представляется в реляционной базе данных как кортеж некоторого отношения.
Требование целостности сущностей: каждый кортеж любого отношения должен отличатся от любого другого кортежа этого отношения. Поддержание целостности сущностей осуществляется с помощью двух ограничений:
при добавлении записей в таблицу проверяется уникальность их первичных ключей
не позволяется изменение значений атрибутов, входящих в первичный ключ.
Когда одно поле в таблице ссылается на другое, оно называется внешним ключом; а поле на которое оно ссылается, называется родительским ключом. Для реализации зависимостей между кортежами разных отношений используется дублирование первичного ключа одного отношения (родительского) в другое (дочернее). Каждое значение внешнего ключа должно однозначно ссылаться к одному и только этому значению родительского ключа. Если это условие соблюдается, то база данных находится в состоянии ссылочной целостности.
Целостность ссылок: для каждого значения внешнего ключа, появляющегося в дочернем отношении, в родительском отношении должен найтись кортеж с таким же значением первичного ключа.
Одно из свойств FOREIGN KEY — это недопущение значений внешнего ключа, еще не представленых в родительском ключе. Это ограничение также воздействует на способность изменять или удалять значения родительского ключа. Используя ограничение FOREIGN KEY таблицы или столбца, можно не указывать список столбцов родительского ключа, если родительский ключ имеет ограничение PRIMARY KEY.
*Поддержание целостности ссылок – функция СУБД. Например, она может не позволить пользователю добавить запись, содержащую внешний ключ с несуществующим (неопределенным) значением.
Для поддержание целостности ссылокREFERENCESможет иметь опции –
[ON DELETE SET NULL| CASCADE| RESTICTED] [ON UPDATE SET NULL| CASCADE]
SET NULL – установить «пустое» значение
CASCADE –выполнить действие в дочернем отношении
RESTICTED –запретить действие
*ИЗМЕНЕНИЕ СТРУКТУРЫ ТАБЛИЦ
ALTER TABLE < имя_таблицы > ADD COLUMN < aтрибут>;