Проектирование информационных систем с CA ERwin Modeling Suite 7.3. Горбаченко В.И - 76 стр.

UptoLike

76
связанные с некоторыми кортежами родительского отношения.
2) CASCADE (КАСКАД) – разрешить выполнение требуемой операции,
но внести при этом необходимые поправки в других кортежах отношений
так, чтобы не допустить нарушения ссылочной целостности и сохранить все
имеющиеся связи. Изменение начинается в родительском отношении и кас-
кадно выполняется в дочернем отношении. Так как дочернее отношение
мо-
жет быть родительским для некоторого третьего отношения, то может потре-
боваться выполнение каскадной стратегии и для этой связи и т.д. Это самая
сложная стратегия, но она хороша тем, что при этом не нарушается связь ме-
жду кортежами родительского и дочернего отношений.
Эти стратегии являются стандартными и присутствуют во всех
СУБД,
в которых имеется поддержка ссылочной целостности.
ERwin реализует также дополнительные стратегии поддержания ссы-
лочной целостности (если они реализованы в целевой СУБД):
1) NONE (НИКАКОЙ) – никаких операций по поддержке ссылочной це-
лостности не выполняется. В этом случае в дочернем отношении могут появ-
ляться некорректные значения внешних ключей, и вся ответственность за
це-
лостность базы данных ложится на приложение.
2) SET NULL (УСТАНОВИТЬ В NULL) – разрешить выполнение тре-
буемой операции, но все возникающие некорректные значения внешних
ключей заменять на неопределенные значения (null-значения). При этом кор-
тежи дочернего отношения теряют всякую связь с кортежами родительского
отношения.
3) SET DEFAULT (УСТАНОВИТЬ ПО УМОЛЧАНИЮ) – разрешить вы-
полнение требуемой операции,
но все возникающие некорректные значения
внешних ключей изменять на некоторое значение, принятое по умолчанию.
При этом должен существовать кортеж родительского отношения, первич-
ный ключ которого принят как значение по умолчанию для внешних ключей.
Этот кортеж нельзя удалять из родительского отношения, и в этом кортеже
нельзя изменять значение ключа. Кроме того, как
и в предыдущем случае,
кортежи дочернего отношения теряют всякую связь с кортежами родитель-
ского отношения.
Рассмотрим применение стратегии поддержания ссылочной целостно-
сти [27].
При обновлении кортежа в родительском отношении допустимы сле-
дующие стратегии:
1) RESTRICTне разрешать обновление, если имеется хотя бы один
кортеж дочернего отношения, ссылающийся на обновляемый кортеж роди-
тельского
отношения.
2) CASCADEвыполнить обновление и каскадно изменить значения
внешних ключей во всех кортежах дочернего отношения, ссылающихся на
обновляемый кортеж.
3) SET NULLвыполнить обновление и во всех кортежах дочернего
отношения, ссылающихся на обновляемый кортеж, изменить значения внеш-
связанные с некоторыми кортежами родительского отношения.
      2) CASCADE (КАСКАД) – разрешить выполнение требуемой операции,
но внести при этом необходимые поправки в других кортежах отношений
так, чтобы не допустить нарушения ссылочной целостности и сохранить все
имеющиеся связи. Изменение начинается в родительском отношении и кас-
кадно выполняется в дочернем отношении. Так как дочернее отношение мо-
жет быть родительским для некоторого третьего отношения, то может потре-
боваться выполнение каскадной стратегии и для этой связи и т.д. Это самая
сложная стратегия, но она хороша тем, что при этом не нарушается связь ме-
жду кортежами родительского и дочернего отношений.
      Эти стратегии являются стандартными и присутствуют во всех СУБД,
в которых имеется поддержка ссылочной целостности.
      ERwin реализует также дополнительные стратегии поддержания ссы-
лочной целостности (если они реализованы в целевой СУБД):
      1) NONE (НИКАКОЙ) – никаких операций по поддержке ссылочной це-
лостности не выполняется. В этом случае в дочернем отношении могут появ-
ляться некорректные значения внешних ключей, и вся ответственность за це-
лостность базы данных ложится на приложение.
      2) SET NULL (УСТАНОВИТЬ В NULL) – разрешить выполнение тре-
буемой операции, но все возникающие некорректные значения внешних
ключей заменять на неопределенные значения (null-значения). При этом кор-
тежи дочернего отношения теряют всякую связь с кортежами родительского
отношения.
      3) SET DEFAULT (УСТАНОВИТЬ ПО УМОЛЧАНИЮ) – разрешить вы-
полнение требуемой операции, но все возникающие некорректные значения
внешних ключей изменять на некоторое значение, принятое по умолчанию.
При этом должен существовать кортеж родительского отношения, первич-
ный ключ которого принят как значение по умолчанию для внешних ключей.
Этот кортеж нельзя удалять из родительского отношения, и в этом кортеже
нельзя изменять значение ключа. Кроме того, как и в предыдущем случае,
кортежи дочернего отношения теряют всякую связь с кортежами родитель-
ского отношения.
      Рассмотрим применение стратегии поддержания ссылочной целостно-
сти [27].
      При обновлении кортежа в родительском отношении допустимы сле-
дующие стратегии:
      1) RESTRICT – не разрешать обновление, если имеется хотя бы один
кортеж дочернего отношения, ссылающийся на обновляемый кортеж роди-
тельского отношения.
      2) CASCADE – выполнить обновление и каскадно изменить значения
внешних ключей во всех кортежах дочернего отношения, ссылающихся на
обновляемый кортеж.
      3) SET NULL – выполнить обновление и во всех кортежах дочернего
отношения, ссылающихся на обновляемый кортеж, изменить значения внеш-

                                    76