Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Определение ограничений целостности






Ограничения целостности данных вводятся с целью предотвратить появление в базе противоречивых данных. Ниже рассматриваются пять типов ограничений целостности данных.

Обязательные данные

Некоторые атрибуты всегда должны содержать одно из допустимых значений. Другими словами, эти атрибуты не могут иметь пустого значения. Эти ограничения должны фиксироваться при занесении сведений об атрибуте в словарь данных.

Ограничения для доменов атрибутов

Каждый атрибут имеет домен, представляющий собой набор его допустимых значений.

Целостность сущностей

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

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

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

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

Рассмотрим следующие случаи, которые могут возникнуть при обработке данных, моделируемых связью типа 1: *.

Случай 1. Вставка новой строки в дочернее отношение

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

Случай 2. Удаление строки из дочернего отношения

При удалении строки из дочернего отношения никаких нарушений ссылочной целостности не происходит.

Случай 3. Обновление внешнего ключа в строке дочернего отношения

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

Случай 4. Вставка строки в родительское отношение

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

Случай 5. Удаление строки из родительского отношения

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

§ NO ACTION. Удаление строки из родительского отношения запрещается, если в дочернем отношении существует хотя бы одна ссылающаяся на нее строка.

§ CASCADE. Удаление строки родительского отношения автоматически распространяется на все дочерние отношения.

§ SET NULL. При удалении строки из родительского отношения, во всех ссылающихся на нее строках дочернего отношения, в атрибут внешнего ключа автоматически записывается пустое значение.

§ SET DEFAULT. При удалении строки из родительского отношения в атрибут внешнего ключа всех ссылающихся на нее строк дочернего отношения автоматически помещается значение, указанное для этого атрибута как значение по умолчанию.

§ NO CHECK. При удалении строки из родительского отношения никаких действий по поддержанию ссылочной целостности данных не предпринимается.

Случай 6. Обновление первичного ключа в строке родительского отношения

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

Ограничения предметной области

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


 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.