Базы данных. Учебное пособие


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


Рассмотрим наиболее часто встречающуюся в базах данных связь один-ко-многим. Соответствующие таблицы показаны на рис. 2.8. Как можно заметить, дочерняя и родительская таблицы связаны между собой по общему полю «Товар». Назовем это поле полем связи.

 

 

 

 

 

Таблица «Товары»                            Таблица «Отпуск товаров»

 

 

 

 

 

 

 

 

 

 

 


Рис. 2.8. Связанные таблицы базы данных

 

 

Возможны два вида изменений, которые приведут к утере связей между записями в родительской и дочерней таблицах:

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

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

Рассмотрим первый случай. На рис. 2.9 показано изменение значения поля «Товар» с «Сахар» на «Рафинад» в таблице «Товары». В таблице «Отпуск товаров» значение поля связи «Сахар» осталось прежним. В результате:

· в дочерней таблице «Отпуск товаров» для товара «Рафинад» (таблица «Товары») нет сведений о его отпуске со склада;

· некоторые записи таблицы «Отпуск товаров» содержат сведения об отпуске то­вара «Сахар», о котором нет информации в таблице «Товары».

 

 

 

 

 

 

Таблица «Товары»                        Таблица «Отпуск товаров»

 

 

 

 

 

 

 

 

 

 

 


Рис. 2.9. Нарушение целостности базы данных; записи

с товаром «Сахар» (таблица «Отпуск товаров») не имеют

родительской записи

 

Рассмотрим второй случай. Пусть в одной из записей таблицы «Отпуск товаров» значение поля связи «Сахар» изменилось на «Рафинад» (рис. 2.10). В результате:

· в дочерней таблице «Отпуск товаров» недостоверны сведения об отпуске со склада товара «Сахар» (таблица «Товары»);




Начало  Назад  Вперед



Книжный магазин