пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Создание таблиц. Ограничение внешнего ключа. Стратегии поддержания ссылочной целостности. Пример.

Ограничение внешнего ключа FOREIGN KEY.

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

[CONSTRAINT <имя ограничения>]

   FOREIGN KEY (<внешний ключ дочерней таблицы>)

   REFERENCES <родительская таблица> [(<родительский ключ>)]

       Пример. Создать таблицу PD (Поставки). Задать соответствующие ограничения.

 CREATE TABLE PD

   (pnum int,

    dnum int,

    volume int NOT NULL,

    CONSTRAINT PK_PD

    RRIMARY KEY (pnum, dnum),

    CONSTRAINT FK_PD_P

    FOREIGN KEY (pnum) REFERENCES P(pnum),

    CONSTRAINT FK_PD_D

    FOREIGN KEY (dnum) REFERENCES D(dnum));

Стратегии поддержания ссылочной целостности
Существует две основных стратегии:

  • Стратегия ограничения. Не разрешается выполнение операции, приводящей к нарушению ссылочной целостности. Стратегия требует только одной проверки: имеются ли в подчиненном отношении кортежи, связанные с некоторым кортежем главного отношения. 
  • Стратегия каскадирования. Разрешается выполнение операции, приводящей к нарушению ссылочной целостности, но при этом вносятся поправки в другие отношения. Изменение начинается в главном отношении и каскадно продолжается в подчиненном. В реализации этой стратегии есть одна тонкость: подчиненное отношение само может быть главным для какого-то третьего отношения, тогда требуется выполнение какой-либо стратегии еще раз. Если каскадная операция любого уровня не может быть выполнена, то реализуется откат БД в исходное состояние. 

       Это самая сложная стратегия, но ее преимущество состоит в том, что не теряется связь между главным и подчиненным отношением. 

  • Установка в NULL. Разрешается выполнение операции, приводящей к нарушению ссылочной целостности, но при этом все возникающие некорректные значения внешних ключей заменяются на NULL-значения. Недостаток -- кортежи главного и подчиненного отношения теряют всякую связь. 
  • Установка по умолчанию. Разрешается выполнение операции, приводящей к нарушению ссылочной        целостности, но при этом все возникающие некорректные значения внешних ключей заменяются на значения по умолчанию. Недостатки: как и в предыдущем случае, кортежи главного и подчиненного отношения теряют вяскую связь, кроме того, для выполнения такой стратегии в отношении должен быть кортеж, который принят, как кортеж по умолчанию. Обычно это кортеж, заполненный нулями. Этот кортеж нельзя удалять, нельзя изменять значение его первичного ключа, таким образом, не все кортежи в отношении становятся равнозначными, а это приходится дополнительно отслеживать. 
  • Стратегия игнорирования. Разрешается выполнение всех операций, не обращая внимание на нарушение ссылочной целостности. Фактически, это отказ от поддержания ссылочной целостности. В данном случае вся ответственность за целостность данных, ложится на разработчика.

 


21.01.2019; 16:19
хиты: 414
рейтинг:0
Точные науки
информатика
База данных
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь