Ссылочная целостность и каскадные воздействия

   
На этом шаге мы рассмотрим требования ссылочной целостности и сущность каскадных воздействий.

   
Теперь, когда мы немножко ознакомились с нормализацией и индексацией базы данных, попробуем представить нашу
базу данных CD в табличном варианте (рисунок 1).


Рис.1. База данных CD

   
Как видно из рисунка мы немножко пренебрегли нормальной формой для простоты иллюстрации. Итак, мы видим, что
наша база данных состоит из двух таблиц, связь между таблицами в нашей базе данных "один-ко-многим". Как видно у
родительской и дочерней таблице есть общее поле Название CD . Назовем это поле полем связи.

   
Возможны два вида изменений, которые приведут к утере связей между записями в родительской и дочерней таблицах:

  • изменение значения поля связи в записи родительской таблицы без изменения значений полей связи в соответствующих
    записях дочерней таблицы;
  • изменение значения поля связи в одной из записей дочерней таблицы без соответствующего изменения значения
    полей связи в родительской и дочерней таблицах.

   
Чтобы предотвратить потерю ссылочной целостности, используется механизм каскадных изменений. Он состоит в обеспечении следующих требований:

  • необходимо запретить изменение поля связи в записи дочерней таблицы без синхронного изменения полей связи в родительской
    и дочерней таблицах. Обычно инициатива изменения поля связи реализуется в записи родительской таблицы;
  • при изменении поля связи в записи родительской таблице, следует синхронно изменить значения полей связи в
    соответствующих записях дочерней таблицы;
  • при удалении записи в родительской таблице, следует удалить соответствующие записи в дочерней таблице.

   
Для обеспечения ссылочной целостности в дочерней таблице создается внешний ключ. Во внешний ключ
входят поля связи дочерней таблицы. Для связей типа "один-ко-многим" внешний ключ по составу полей должен
совпадать с первичным ключом родительской таблицы или - реже - с частью первичного ключа.

   
На следующем шаге мы рассмотрим классификацию баз данных.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий