Все шпаргалки / Базы данных / 

Целостность

Целостность – система правил, используемая для связи записей в связной таблицеПоддержка целостности – предотвращение некорректного ввода данных в таблицахОграничения определяют св-ва объектов предметную область и их взаимосвязьЦелостность 1По отношению 2По ссылкам3Определяемая пользователемПо отношению - Ограничения только на допустимые значения отдельного отношенияСредством, позволяющим однозначно идентифицировать кортежи отношения, являются потенциальные ключи отношения. Потенциальный ключ отношения - это набор атрибутов отношения, обладающий свойствами уникальности и неизбыточности. Доступ к конкретному кортежу можно получить, лишь зная значение потенциального ключа для этого кортежа. Потенциальный ключ, состоящий из одного атрибута, называется простым. Потенциальный ключ, состоящий из нескольких атрибутов, называется составным. Отношения связываются друг с другом при помощи внешних ключей. Внешний ключ отношения - это набор атрибутов отношения, содержащий ссылки на потенциальный ключ другого (или того же самого) отношения. Отношение, содержащее потенциаль-ный ключ, на который ссылается некоторый внешний ключ, называется родительским отношением. Отношение, содержащее внешний ключ, называется дочерним отношени-ем. Внешний ключ не обязан обладать свойством уникальности. Поэтому, одному кортежу родительского отношения может соответствовать несколько кортежей дочернего отношения. Такой тип связи между отношениями называется "один-ко-многим". Связи типа "много-ко-многим" реализуются использованием нескольких отношений типа "один-ко-многим". В любой реляционной базе данных должны выполняться два ограничения: 1Целостность сущностей 2Целостность внешних ключей Правило целостности сущностей состоит в том, что атрибуты, входящие в состав некоторого потенциального ключа не могут принимать null-значений. Правило целостности внешних ключей состоит в том, что внешние ключи не должны ссылаться на отсутствующие в родительском отношении кортежи, т.е. внешние ключи должны быть корректны. Ссылочную целостность могут нарушить операции, изменяю-щие состояние базы данных. Такими операциями являются операции вставки, обновления и удаления кортежей. Для поддержания ссылочной целостности обычно используют-ся основные стратегии: 1RESTRICT (ОГРАНИЧИТЬ) - не разрешать выполнение операции, приводящей к нарушению ссылочной целостности. 2CASCADE (КАСКАДИРОВАТЬ) - разрешить выполнение требуемой операции, но внести каскадные изменения в другие отношения так, чтобы не допустить нарушения ссылочной целостности.3SET NULL (УСТАНОВИТЬ В NULL) - все некорректные значения внешних ключей изменять на null-значения. 4SET DEFAULT (УСТАНОВИТЬ ПО УМОЛЧАНИЮ) - все некорректные значения внешних ключей изменять на некоторое значение, принятое по умолчанию. Классификация ограничений целостности по способам реализацииКаждая система обладает своими средствами поддержки ограничений целостности. Различают два способа реализации: 1Декларативная поддержка ограничений целостности. 2Процедурная поддержка ограничений целостности. Декларативная поддержка ограничений целостности заключается в определении ограничений средствами языка определения данных. Обычно средства декларативной поддержки целостности определяют ограничения на значения доменов и атрибутов, целостность сущностей и ссылочную целостность. Процедурная поддержка ограничений целостности заключается в использовании триггеров и хранимых процедур. Если ограничение целостности реализовано в виде триггеров, то этот программный код является просто телом триггера. Если используется декларативное ограничение целостности, то возможны два подхода: 1. При декларировании (объявлении) ограничения текст ограничения хранится в виде некоторого объекта СУБД, а для реализации ограничения используются встроенные в СУБД функции, и тогда этот код представляет собой внутренние функции ядра СУБД. 2. При декларировании ограничения СУБД автоматически генерирует триггеры, выполняющие необходимые действия по проверке ограничений.