logo
Развертывание сервера базы данных на основании операционной системы Windows 7

1.7 Ссылочная целостность реляционных БД

Большинство SQL-серверов поддерживают ссылочную целостность реляционных БД, состоящих из отдельных таблиц, которые могут быть объединены на основе общей информации, рассмотрим на следующем примере: база данных содержит таблицу клиентов и таблицу заказов, которые связаны полем номера клиента, содержащимся в обеих таблицах. Поскольку может быть более одного заказа от одного клиента, соотношение таблиц - "один-ко-многим". Когда таблицы соединены, то таблица клиентов является родительской, а таблица заказов - дочерней. Если запись-родитель стирается, а соответствующие ей дочерние записи - нет, то говорят, что дочерние записи "осиротели". Ссылочная целостность означает, что ни в одной таблице не допустимы записи-"сироты". Запись может осиротеть тремя способами:

1. Родительская запись удалена;

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

3. Введена дочерняя запись без соответствующей родительской. Поддержание ссылочной целостности возможно несколькими способами:

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

2) Использование присоединенных процедур - процедурная ссылочная целостность. Присоединенные программы обеспечивают ссылочную целостность за счет автоматического выполнения предложений SQL всякий раз, когда встречается одно из предложений UPDATE/INSERT или DELETE (либо запрещается удаление родительской записи, либо стираются все дочерние записи).