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

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

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

Этап 2.6. Определение требований поддержки целостности данных

Цель - Определение ограничений, налагаемых в представлениях пользовате­лей требованием сохранения целостности данных.

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

Здесь мы обсудим пять типов ограничений целостности данных:

· обязательные данные;

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

· целостность сущностей;

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

· требования данного предприятия.

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

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

Каждый атрибут имеет домен, представляющий собой набор его допустимыхзна­чений. Например, атрибут "пол" может содержать одноиз двух допустимых значе­ний — "М" или "Ж", поэтому его домен состоит из двух символьных строк длиной в один символ, содержащих указанные значения.

Данные ограничения устанавливаются при определении доменов атрибутов, при­сутствующих в модели данных (этап 1.4).

Первичный ключ любой сущности не может содержать пустого значения. Напри­мер, каждая строка отношения Staff должна содержать уникальное значение атри­бута первичного ключа; в данном случае это — атрибут Staf_No.

Подобные ограничения должны учитываться при определении первичных ключей для сущностей каждого типа (этап 1.5).