КАТЕГОРИИ: Архитектура-(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) |
Целостность реляционных данных
В любой реляционной базе данных должны выполняться два ограничения – целостность сущностей и целостность внешних ключей. Как уже отмечалось, назначение базы данных состоит в хранении и предоставлении информации об интересующей предметной области реального мира. Однако в реальном мире часто встречается ситуация, когда данные неизвестны или не полны. Для того чтобы обойти проблему неполных или неизвестных данных, в базах данных можно использовать типы данных, дополненные null -значениями. Null -значение по сути является маркером, показывающим, что значение неизвестно. Если значение неизвестно, то алгебраические операции с его участием могут приводить также к неизвестному значению. Это означает, что определение истинности логических выражений в реляционной модели данных базируется на трехзначной логике, то есть результатом логической операции может быть ИСТИНА, ЛОЖЬ и НЕИЗВЕСТНО. По определению тело отношения есть множество кортежей, поэтому отношения не могут содержать одинаковые кортежи. Это значит, что каждый кортеж должен обладать свойством уникальности. Но свойством уникальности могут обладать и отдельные атрибуты кортежей или группы атрибутов. Такие уникальные атрибуты можно использовать для идентификации кортежей. Пусть дано отношение R. Подмножество атрибутов К отношения R будет называться потенциальным ключом, если оно обладает: · свойством уникальности – в отношении не может быть двух различных кортежей с одинаковым значением К; · свойством неизбыточности – никакое подмножество в К не обладает свойством уникальности. Потенциальный ключ, состоящий из одного атрибута, называется простым. Потенциальный ключ, состоящий из нескольких атрибутов, называется составным. Отношение может иметь несколько потенциальных ключей, тогда один из них объявляется первичным ключом, а остальные альтернативными. Потенциальные ключи служат средством идентификации объектов предметной области и единственным средством адресации в отношении на уровне кортежей. По этой причине они не могут содержать неизвестные значения. Это определяет правило целостности сущностей: атрибуты, входящие в состав некоторого потенциального ключа не могут принимать null -значения. Различные объекты предметной области всегда взаимосвязаны друг с другом. В реляционных базах данных такие взаимосвязи отражаются с помощью внешних ключей, связывающих несколько отношений. Различают взаимосвязи типа «один-ко-многим» и «много-ко-многим». В реляционных базах данных основными являются взаимосвязи типа «один-ко-многим». Взаимсвязи типа «много-ко-многим» реализуются использованием нескольких взаимосвязей типа «один-ко-многим». Отношение, входящее в связь со стороны «один», называют родительским отношением, а отношение, входящее со стороны «много», называется дочерним отношением. Механизм реализации взаимосвязи «один-ко-многим» состоит в том, что в дочернее отношение добавляются атрибуты, являющиеся ссылками на ключевые атрибуты родительского отношения. Эти атрибуты являются внешними ключами, определяющими, с какими кортежами родительского отношения связаны кортежи дочернего отношения. Внешний ключ, также как и потенциальный ключ, может быть простым и составным. Внешний ключ должен быть определен на тех же доменах, что и соответствующий первичный ключ родительского отношения. Внешний ключ, как правило, не обладает свойством уникальности, так как в дочернем отношении может быть несколько кортежей, ссылающихся на один и тот же кортеж родительского отношения. Если же внешний ключ уникален, то связь между отношениями имеет тип «один-к-одному». Так как внешние ключи служат ссылками на кортежи, то они не должны указывать на несуществующие объекты. Это определяет правило целостности внешних ключей: внешние ключи не должны быть несогласованными, то есть, для каждого значения внешнего ключа должно существовать соответствующее значение первичного ключа в родительском отношении. Ссылочная целостность может нарушиться в результате операций, изменяющих состояние базы данных – вставка, обновление и удаление кортежей в отношениях. Существует четыре типа таких операций: · обновление кортежа в родительском отношении; · удаление кортежа в родительском отношении; · вставка кортежа в дочернее отношение; · обновление кортежа в дочернем отношении. Существуют две основных стратегии поддержания ссылочной целостности: · RESTRICT (ОГРАНИЧИТЬ) – не разрешать выполнение операции, приводящей к нарушению ссылочной целостности. Это самая простая стратегия, требующая только проверки, имеются ли кортежи в дочернем отношении, связанные с некоторым кортежем в родительском отношении; · CASCADE (КАСКАДИРОВАТЬ) – разрешить выполнение требуемой операции, но внести при этом необходимые поправки в других отношениях так, чтобы не допустить нарушения ссылочной целостности и сохранить все имеющиеся связи. Изменения начинается в родительском отношении и каскадно выполняется в дочернем отношении. Существуют также дополнительные стратегии: · SET NULL (УСТАНОВИТЬ В NULL) – разрешить выполнение требуемой операции, но все возникающие некорректные значения внешних ключей изменять на null-значения. Эта стратегия имеет два недостатка. Во-первых, для неё требуется допустить использование null -значений. Во-вторых, кортежи дочернего отношения теряют всякую связь с кортежами родительского отношения. Установить, с каким кортежем родительского отношения были связаны кортежи дочернего отношения после выполнения операции уже нельзя; · SET DEFALT (УСТАНОВИТЬ ПО УМОЛЧАНИЮ) – разрешить выполнение требуемой операции, но все возникающие некорректные значения внешних ключей изменять на некоторое значение, принятое по умолчанию. Эта стратегия позволяет не пользоваться null -значениями, но в родительском отношении должен быть некий кортеж, потенциальный ключ которого принят как значение по умолчанию для внешних ключей. В качестве такого «кортежа по умолчанию» обычно принимают специальный кортеж, заполненный нулевыми значениями. Этот кортеж нельзя удалять из родительского отношения и в нем нельзя изменять значение потенциального ключа. При этом не все кортежи родительского отношения становятся равнозначными и требуются дополнительные действия для отслеживания этой неравнозначности. При такой стратегии, как и первом случае, кортежи дочернего отношения теряют связь с кортежами родительского отношения. Иногда в СУБД рассматривается ещё одна стратегия поддержания ссылочной целостности: IGNORE (ИГНОРИРОВАТЬ) – выполнять операции, не обращая внимания на нарушения ссылочной целостности. В этом случае вся ответственность за поддержание ссылочной целостности возлагается на пользователя.
Дата добавления: 2014-01-04; Просмотров: 1595; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |