Ограничения целостности этого типа позволяют обеспечить согласованность данных в связующих полях (первичном и внешнем ключах) нескольких таблиц.
Рассмотрим таблицы Поставщики (табл. 1.1) и Поставки товаров (табл. 1.2). Эти таблицы связаны между собой с помощью ключевых полей Код и Шифр поставщика. Таблица Поставщики является главной таблицей, таблица Поставки товаров – подчиненной. Значения данных в связующих полях получены из одного домена, представляющего в рассматриваемом примере множество положительных целых трехзначных чисел.
Нарушение целостности связи между таблицами возможно при возникновении следующих ситуаций:
1. В главной таблице удаляется запись, для которой существуют связанные записи в подчиненной таблице. Действительно, если в таблице Поставщики удалить первую запись (код поставщика равен 345), база данных будет находиться в несогласованном состоянии – неизвестно, какая фирма осуществила поставки, представленные первой, четвертой и пятой записями таблицы Поставки товаров (см. табл. 1.2).
Ввод в таблицу Поставщики дополнительной записи не приводит к нарушению целостности базы данных, так как в таблице появятся сведения еще об одном поставщике, информация о поставках товаров которым может быть добавлена в таблицу Поставки товаров после начала этих действий.
2. В главной таблице изменяются значения данных в поле (полях) первичного ключа, если существуют связанные с ними значения в поле (полях) внешнего ключа подчиненной таблицы (например, в таблице Поставщики код поставщика, равный 345, изменяется на значение 725, а такого значения в поле Шифр поставщика таблицы Поставки товаров нет).
3. В поле (полях) внешнего ключа подчиненной таблицы вводятся значения данных, отсутствующие в поле (полях) первичного ключа главной таблицы (например, в таблицу Поставки товаров нельзя ввести шифр поставщика 750, которого нет в поле Код таблицы Поставщики).
предыдущаяследующая