Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Ссылочная целостность

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

Удаление в ссылающемся отношении никогда не нарушает ссылочную целостность.

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

Добавление в ссылочное отношение никогда не нарушает ссылочную целостность.

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

Если при выполнении этих операций нарушается ссылочная целостность, то используют две основные стратегии.

- операции, нарушающие целостность, отвергнуть;

- изменить ссылающееся отношение, чтобы целостность не нарушили. При этом возможно потребуется откорректировать несколько отношений. Этот процесс называется каскадированием.

Пример: удалить или изменить кортежи ссылающейся базы.

При этом 2-й вариант реализации возможен при организации диалога с пользователем (предложить изменить ссылающиеся отношения, удаляемая запись перенести в архив и т.д.).

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

 

3.1.Правило целостности объекта. Первичные ключи и Null значения. Предпосылки введения правила.

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

Ни один элемент первичного ключа базового отношения не может быть Null – значением.

Предпосылки введения такого правила следующие:

- кортежи базового отношения соответствует объектам реального мира;

- объекты реального мира различны (т.е. некоторым образом опознаваемы);

- значит, должны быть различимы представления реального мира, т.е. кортежи базового отношения.

Если первичный ключ или его часть имеет Null – значение ® идентичность объекту теряется.

В реляционной базе данных мы никогда не записываем информацию о чём – то, чего мы не можем идентифицировать.

Проблема использования Null – значений до конца ещё не решена. Введение и поддержка этого правила имеет несколько противоречий.

Пример: допустим, что в базе AUTO мы ввели понятие Null – значение для атрибута код_ цвета. Составим список цветов автомобилей. В этом списке (отношении) возможно, будет значение – цвет не определён. Наш запрос не является базовым отношением. И для него требования целостности объекта может не применяться. Но что возникнет, если результат запроса мы сохраним как базовое отношение. Такое отношение состоит только из одного атрибута – цвет, которое должно быть первичным ключом.

Альтернативной стратегией Null – значениям является использование значений по – умолчанию.

 

1.2.Внешние ключи и Null – значения.

Не вызывает особых сомнений, что внешние ключи могут принимать Null – значения.

Пример: если рассмотреть самоссылающееся отношения <сотрудники>, в котором есть атрибут <код_начальника>, то у президента компании это атрибут содержит Null – значение. Т.о. понятие внешнего ключа должно быть дополнено возможностью принимать значение Null.

Следовательно определение внешнего ключа должно быть расширено:

Пусть R2 – базовое отношение. Тогда внешний ключ FK в отношении R2 – это подмножество множества атрибутов R2, такое что:

1) Существует базовое отношение R1 (R1 и R2 не обязательно различны) с потенциальным ключом СК.

2) Всегда каждое значение FK в текущем значении R2 или является Null – значением, или совпадает со значением СК некоторого кортежа в текущем значении R1

Возможность включения или не включения Null – значений в первичные и внешние ключи регулируются соответствующими опциями операторов языка определения БД.

Замечание: Допустимость принятия Null – значения для внешнего ключа решает (каким – то образом) проблему ссылочной целостности.

Пример: при удалении некоторого цвета из справочника цветов достаточно у автомобилей (база AUTO), у которых был удаляемый цвет, установить цвет в Null.

 


<== предыдущая лекция | следующая лекция ==>
Внешние ключи | Лекция №10. Название лекции: Проектирование баз данных
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 489; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.