Базы данных. Концепция баз данных, реляционная модель данных, языки SQL и XML. Токмаков Г.П. - 47 стр.

UptoLike

Составители: 

47
2.3.2. И
ЗМЕНЕНИЯ, СПОСОБНЫЕ НАРУШИТЬ ССЫЛОЧНУЮ
ЦЕЛОСТНОСТЬ
Существует четыре типа изменений в базах данных, которые могут изме-
нить ссылочную целостность отношений «предокпотомок»:
Добавление новой строки потомка. Когда происходит добавление новой
строки в таблицу-потомок
SLUZHASCHIE, значение ее внешнего ключа «ID_OFC»
должно быть равно одному из значений первичного ключа
«ID_OFC» в таблице-
предке
OFFISY. Если значение внешнего ключа не равно ни одному из значений
первичного ключа, то добавление такой строки разрушит базу данных, поскольку
появится потомок без предкасирота»);
Обновление внешнего ключа в строке-потомке. Это та же проблема, что и в
предыдущей ситуации, но выраженная в иной форме. Если внешний ключ
«ID_OFC» обновляется инструкцией UPDATE, то его новое значение должно быть
равно одному из значений первичного ключа
«ID_OFC» в таблице-предке OFFISY. В
противном случае обновленная строка окажется сиротой;
Удаление строки-предка. Если из таблицы-предка OFFISY будет удалена
строка, у которой есть хотя бы один потомок (в таблице
SLUZHASCHIE), то строки-
потомки останутся сиротами. Значения внешних ключей
«ID_OFC» в этих строках
не будут равны ни одному из значений первичного ключа таблицы-предка
OFFISY;
Обновление внешнего ключа в строке-предке. Если в таблице-предке
OFFISY будет обновлено значение внешнего ключа для отдела, у которого есть хо-
тя бы один потомок (в таблице
SLUZHASCHIE), то строки-потомки останутся сиро-
тами.
2.3.3. П
РАВИЛА ССЫЛОЧНОЙ ЦЕЛОСТНОСТИ
Для решения перечисленных проблем, возникающих при вставке, обновле-
нии и удалении строк связанных таблиц, предусмотрены правила ссылочной
целостности (
referential integrity, RI). Правила ссылочной целостности
это логические конструкции, которые выражают бизнес-правила использования
данных и представляют собой правила вставки, замены и удаления. При гене-
рации схемы базы данных эти логические конструкции будут реализованы в
вде правил декларативной ссылочной целостности, которые должны быть
предписаны для каждой связи, и триггеры, обеспечивающие ссылочную цело-
стность. Триггеры представляют собой программы, выполняемые всякий раз
при выполнении команд вставки, замены или удаления (
INSERT, UPDATE или
DELETE).
Правило
RESTRICT:
запрещает удаление строки из таблицы-предка, если строка имеет потом-
ков. Инструкция
DELETE, пытающаяся удалить такую строку, отбрасывается, и вы-
дается сообщение об ошибке;
запрещает обновление первичного ключа в строке таблицы-предка, если у
строки есть потомки. Инструкция
UPDATE, пытающаяся изменить значение пер-
вичного ключа в строке-предке, отбрасывается, и выдается сообщение об ошибке;