КАТЕГОРИИ: Архитектура-(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.
Дата добавления: 2014-01-05; Просмотров: 489; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |