Целостность сущностей
Ограничения для доменов атрибутов
Обязательные данные
Этап 2.6. Определение требований поддержки целостности данных
Цель - Определение ограничений, налагаемых в представлениях пользователей требованием сохранения целостности данных.
Ограничения целостности данных представляют собой такие ограничения, которые вводятся с целью предотвратить помещение в базу противоречивых данных. Отметим, что, хотя в конкретных СУБД функции контроля целостности могут как поддерживаться, так и не поддерживаться, в данном случае это не будет нас интересовать. На этом этапе мы занимаемся проектированием только на верхнем уровне, где рассмотрение вопросов целостности данных является обязательным условием, не связанным с конкретными аспектами реализации. Полное и точное отражение представления пользователя мы сможем получить только после определения ограничений, необходимых с точки зрения сохранения целостности данных. При необходимости на основе локальной логической модели можно даже создать предварительный физический проект базы данных, который впоследствии может послужить прототипом системы для данного конкретного пользователя.
Здесь мы обсудим пять типов ограничений целостности данных:
· обязательные данные;
· ограничения для доменов атрибутов;
· целостность сущностей;
· ссылочная целостность;
· требования данного предприятия.
Некоторые атрибуты всегда должны содержать одно из допустимых значений. Другими словами, эти атрибуты не могут иметь пустого значения. Так, каждый работник должен занимать ту или иную должность (например, "руководителя" или "референта").
Эти ограничения должны фиксироваться при занесении сведений об атрибуте в словарь данных (этап 1.3).
Каждый атрибут имеет домен, представляющий собой набор его допустимыхзначений. Например, атрибут "пол" может содержать одноиз двух допустимых значений — "М" или "Ж", поэтому его домен состоит из двух символьных строк длиной в один символ, содержащих указанные значения.
Данные ограничения устанавливаются при определении доменов атрибутов, присутствующих в модели данных (этап 1.4).
Первичный ключ любой сущности не может содержать пустого значения. Например, каждая строка отношения Staff должна содержать уникальное значение атрибута первичного ключа; в данном случае это — атрибут Staf_No.
Подобные ограничения должны учитываться при определении первичных ключей для сущностей каждого типа (этап 1.5).