Научная электронная библиотека
Монографии, изданные в издательстве Российской Академии Естествознания

7.4. Основные операции, приводящие к нарушению целостности БД. Стратегии поддержания целостности данных

Основные операции, приводящие к нарушению целостности БД:

1) удаление записи в родительском и/или дочернем отношении;

2) модификация записи в родительском отношении;

3) модификация записей в дочернем отношении.

Одновременно с понятием целостности БД вводится понятие реакции системы на попытки нарушения целостности БД.

Существует два типа реакций на попытку нарушения целостности (или две основные стратегии):

1. Restrict (ограничить – отказ выполнить незаконную операцию).

Данная стратегия сводится к запрету на выполнение действий, приводящих к нарушению целостности БД.

А также не позволяет:

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

● удалять записи в родительском отношении, если в дочернем отношении имеется, хотя бы одна запись, содержащая ссылку на удаляемую запись. При попытке удаления записи возникает ошибка.

К примеру, если система знает, что в поле Возраст сотрудника должны быть целые числа в диапазоне от 18 до 65, то при этом генерируется какое-либо сообщение для пользователя.

2. Cascade (каскадировать – выполнение компенсирующего действия).

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

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

missing image file

Рис. 7.1. Выполнение проверки ограничений

Дополнительные стратегии:

1. Ignore (игнорировать) – при выборе данной стратегии СУБД не обращает внимания на нарушение целостности данных и позволяет:

● изменять значения полей первичного ключа в родительском отношении, в независимости от существования связанных записей в дочернем отношении;

● удалять записи в родительском отношении в независимости от существования связанных записей в дочернем отношении.

2. Set null (установить в NULL) – разрешает выполнение всех требуемых операций, при этом некорректные значения внешних ключей заменяет на null-значения.

3. Set default (установить по умолчанию) – разрешает выполнение всех необходимых операций, при этом все некорректные значения внешних ключей заменяет на значения, выбранные по умолчанию.


Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

«Фундаментальные исследования» список ВАК ИФ РИНЦ = 1.074