Изменения, способные нарушить ссылочную целостность

Существует четыре типа изменений базах данных, которые могут изменить ссылочную целостность отношений «предок – потомок».

– Добавление новой строки потомка. Когда происходит добавление новой строки в таблицу-потомок SLUZHASCHIE, значение ее внешнего ключа «ID_OFC» должно быть равно одному из значений первичного ключа «ID_OFC» в таблице-предке OFFISY. Если значение внешнего ключа не равно ни одному из значений первичного ключа, то добавление такой строки разрушит базу данных, поскольку появится потомок без предка («сирота»).

– Обновление внешнего ключа в строке-потомке. Это та же проблема, что и в предыдущей ситуации, но выраженная в иной форме. Если внешний ключ «ID_OFC» обновляется инструкцией UPDATE, то его новое значение должно быть равно одному из значений первичного ключа «ID_OFC» в таблице-предке OFFISY. В противном случае обновленная строка окажется сиротой.

– Удаление строки-предка. Если из таблицы-предка OFFISY будет удалена строка, у которой есть хотя бы один потомок (в таблице SLUZHASCHIE), то строки-потомки останутся сиротами. Значения внешних ключей «ID_OFC» в этих строках не будут равны ни одному из значений первичного ключа таблицы-предка OFFISY.

– Обновление внешнего ключа в строке-предке. Если в таблице-предке OFFISY будет обновлено значение внешнего ключа для отдела, у которого есть хотя бы один потомок (в таблице SLUZHASCHIE), то строки-потомки останутся сиротами.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: