Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
В системах баз данных ограничение распространения "определяет, что должно произойти со связанной таблицей при обновлении строки или строк целевой таблицы" (Paul Beynon Davies, 2004, p.108). Таблицы связываются посредством отношений первичного и внешнего ключей. Пользователи могут обновить одну таблицу в рамках этих отношений таким образом, что они станут несогласованными, что называется нарушением ссылочной целостности. Пример нарушения ссылочной целостности: если таблица сотрудников содержит номер отдела для "Housewares", который является внешним ключом, ссылающимся на таблицу отделов, и пользователь удаляет этот отдел из таблицы отделов, то записи сотрудников "Housewares" будут ссылаться на несуществующий номер отдела. Ограничения распространения – это методы, используемые реляционными системами управления базами данных (RDBMS) для решения этой проблемы, обеспечивая сохранение связей между таблицами без ошибок. В своем учебнике по базам данных Бейнон Дэвис объясняет три способа обработки RDBMS удалений целевых и связанных кортежей:
In database systems, a propagation constraint "details what should happen to a related table when we update a row or rows of a target table" (Paul Beynon Davies, 2004, p.108). Tables are linked using primary key to foreign key relationships. It is possible for users to update one table in a relationship in such a way that the relationship is no longer consistent and this is known as breaking referential integrity. An example of breaking referential integrity: if a table of employees includes a department number for 'Housewares' which is a foreign key to a table of departments and a user deletes that department from the department table then Housewares employees records would refer to a non existent department number. Propagation constraints are methods used by relational database management systems (RDBMS) to solve this problem by ensuring that relationships between tables are preserved without error. In his database textbook, Beynon Davies explains the three ways that RDBMS handle deletions of target and related tuples:
Ограниченное удаление – пользователь не может удалить целевую строку, пока все строки, ссылающиеся на нее (через внешние ключи), не будут удалены. Это означает, что все сотрудники "Housewares" должны быть удалены или их отделы изменены, прежде чем удалять отдел из таблицы отделов. Каскадное удаление – позволяет удалить целевую строку, а также все строки, ссылающиеся на нее (через внешние ключи), также удаляются. Процесс аналогичен ограниченному удалению, за исключением того, что RDBMS автоматически удалит сотрудников "Housewares" перед удалением отдела. Удаление с установкой в NULL – позволяет удалить целевую строку, а все внешние ключи, указывающие на нее, будут установлены в NULL. В этом случае, после удаления отдела "Housewares", сотрудники, работавшие в этом отделе, будут иметь значение NULL (неизвестно) в поле "отдел".
Restricted Delete the user cannot delete the target row until all rows that point to it (via foreign keys) have been deleted. This means that all Housewares employees would need to be deleted, or their departments changed, before removing the department from the departmental table. Cascades Delete can delete the target row and all rows that point to it (via foreign keys) are also deleted. The process is the same as a restricted delete, except that the RDBMS would delete the Houseware employees automatically before removing the department. Nullifies Delete can delete the target row and all foreign keys (pointing to it) are set to null. In this case, after removing the housewares department, employees who worked in this department would have a NULL (unknown) value for their department.