WikiDer > Ограничение распространения

Propagation constraint

В системах баз данных ограничение распространения «подробно описывает, что должно произойти со связанной таблицей, когда мы обновляем строку или строки целевой таблицы» (Пол Бейнон-Дэвис, 2004, стр.108). Таблицы связаны с помощью первичный ключ к иностранный ключ отношения. Пользователи могут обновить одну таблицу во взаимосвязи таким образом, чтобы отношения перестали быть согласованными, и это называется разрывом ссылочная целостность. Пример нарушения ссылочной целостности: если таблица сотрудников включает номер отдела для «Предметы домашнего обихода», который является внешним ключом к таблице отделов, и пользователь удаляет этот отдел из таблицы отделов, то записи сотрудников «Домашнего оборудования» будут относиться к не- существующий номер отдела.

Ограничения распространения - это методы, используемые системы управления реляционными базами данных (RDBMS) для решения этой проблемы, гарантируя, что связи между таблицами сохраняются без ошибок. В своем учебнике по базам данных Бейнон-Дэвис объясняет три способа, которыми СУБД обрабатывает удаление целевых и связанных кортежи:

  • Ограниченное удаление - пользователь не может удалить целевую строку, пока все строки, которые на нее не указывают (через внешние ключи) были удалены. Это означает, что перед удалением отдела из таблицы отделов необходимо будет удалить всех сотрудников Housewares или изменить их отделы.
  • Каскады Удалить - может удалить целевую строку, и все строки, которые указывают на нее (через внешние ключи), также удаляются. Процесс такой же, как и при ограниченном удалении, за исключением того, что СУБД автоматически удаляет сотрудников Houseware перед удалением отдела.
  • Обнуляет удаление - можно удалить целевую строку, и все внешние ключи (указывающие на нее) установлены на ноль. В этом случае после удаления отдела посуды сотрудники, работавшие в этом отделе, будут иметь НОЛЬ (неизвестная) ценность для их отдела.

Библиография