Введение

В системах баз данных ограничение распространения "определяет, что должно произойти со связанной таблицей при обновлении строки или строк целевой таблицы" (Paul Beynon Davies, 2004, p.108). Таблицы связываются посредством отношений первичного и внешнего ключей. Пользователи могут обновить одну таблицу в рамках этих отношений таким образом, что они станут несогласованными, что называется нарушением ссылочной целостности. Пример нарушения ссылочной целостности: если таблица сотрудников содержит номер отдела для "Housewares", который является внешним ключом, ссылающимся на таблицу отделов, и пользователь удаляет этот отдел из таблицы отделов, то записи сотрудников "Housewares" будут ссылаться на несуществующий номер отдела. Ограничения распространения – это методы, используемые реляционными системами управления базами данных (RDBMS) для решения этой проблемы, обеспечивая сохранение связей между таблицами без ошибок. В своем учебнике по базам данных Бейнон Дэвис объясняет три способа обработки RDBMS удалений целевых и связанных кортежей:

Ограниченное удаление – пользователь не может удалить целевую строку, пока все строки, ссылающиеся на нее (через внешние ключи), не будут удалены. Это означает, что все сотрудники "Housewares" должны быть удалены или их отделы изменены, прежде чем удалять отдел из таблицы отделов. Каскадное удаление – позволяет удалить целевую строку, а также все строки, ссылающиеся на нее (через внешние ключи), также удаляются. Процесс аналогичен ограниченному удалению, за исключением того, что RDBMS автоматически удалит сотрудников "Housewares" перед удалением отдела. Удаление с установкой в NULL – позволяет удалить целевую строку, а все внешние ключи, указывающие на нее, будут установлены в NULL. В этом случае, после удаления отдела "Housewares", сотрудники, работавшие в этом отделе, будут иметь значение NULL (неизвестно) в поле "отдел".