пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Стратегии поддержания ссылочной целостности.

Стратегии поддержания ссылочной целостности

Существуют две основные стратегии поддержания ссылочной целостности.

  • Стратегия ограничения RESTRICT (ОГРАНИЧИТЬ) - не разрешать выполнение операции, приводящей к нарушению ссылочной целостности.

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

  • Стратегия каскадирования CASCADE (КАСКАДНОЕ ИЗМЕНЕНИЕ) - разрешить выполнение требуемой операции, но внести при этом необходимые изменения в связанных таблицах так, чтобы не допустить нарушения ссылочной целостности и сохранить все имеющиеся связи.

​​Изменение начинается в главной таблице и каскадно выполняется в подчиненных таблицах.

В реализации этой стратегии имеется одна тонкость, заключающаяся в том, что подчиненные таблицы сами могут быть главными для некоторых третьих таблиц. При этом может дополнительно потребоваться выполнение какой-либо стратегии и для этой связи и т.д. Если при этом какая-либо из каскадных операций (любого уровня) не может быть выполнена, то необходимо отказаться от первоначальной операции и вернуть базу данных в исходное состояние. Это сложная стратегия, но она не нарушает связей между кортежами главных и подчиненных таблиц.

Эти стратегии являются стандартными и присутствуют во всех СУБД, в которых имеется поддержка ссылочной целостности.

Эти стратегии являются стандартными и присутствуют во всех СУБД, в которых имеется поддержка ссылочной целостности. 

Дополнительные стратегии поддержания ссылочной целостности:

  • Установка NULL, SET NULL (ЗАДАТЬ ЗНАЧЕНИЕ NULL) - разрешить выполнение требуемой операции, но все возникающие некорректные значения внешних ключей изменять на null-значения.

Эта стратегия имеет два недостатка. Во-первых, для нее требуется разрешение на использование null-значений. Во-вторых, записи (кортежи) подчиненной таблицы теряют связь с записями главной таблицы. Установить, с какой записью главной таблицы были связаны измененные записи подчиненной таблицы, после выполнения операции уже нельзя. 

  • Установка по умолчанию, SET DEFAULT (ЗАДАТЬ ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ) - разрешить выполнение требуемой операции, но все возникающие некорректные значения внешних ключей изменять на некоторое значение, принятое по умолчанию.

Достоинство этой стратегии по сравнению с предыдущей в том, что она позволяет не пользоваться null-значениями.

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

  • IGNORE (ИГНОРИРОВАТЬ) - разрешить выполнять операцию без проверки ссылочной целостности.

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


21.01.2019; 12:06
хиты: 86
рейтинг:0
Точные науки
информатика
База данных
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь