Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диго С.М. Базы данных проектирование и использование.doc
Скачиваний:
723
Добавлен:
14.05.2016
Размер:
12.04 Mб
Скачать

4.2. Er-модели и ограничения целостности

Некоторые ограничения целостности видны из описания предмет­ной области в виде ER-модели.

1. Ограничение на уникальность - уникальные идентификаторы объектов являются ключами таблиц, соответствующих этим объек­там. Если идентификаторов несколько, то для СУБД, поддерживающих концепцию ключа, нужно определить первичный ключ (Primary Key) и вероятные ключи (Alternate Key, Unique).

2. Между уникальным идентификатором объекта и полями, соот­ветствующими единичным свойствам объекта, существует функцио­нальная зависимость.

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

Тип связи между объектами (1:1, 1:М, М:М) определяет, что бу­дет первичным, а что - внешним ключом в этих связях. Если отноше­ние между объектами 1:М, то очевидно, что первичным будет ключ основной таблицы (объект, который стоит со стороны единичной свя­зи), внешним - соответствующее ему поле в таблице, отображающей объект, стоящий на стороне множественной связи.

В случае, если связь 1:1, объекты относительно связи являются равноправными, и для определения, какой из файлов БД будет играть ведущую роль, необходимо рассматривать дополнительные характе­ристики. Например, если класс членства с одной стороны связи нео­бязательный, а с другой - обязательный, то идентификатор объекта, имеющего необязательный класс членства, помещается в таблицу, соответствующую объекту с обязательным классом членства, и имен­но он будет внешним ключом.

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

4. Если при наличии связи типа 1:М класс членства в связи - нео­бязательный для объектов, стоящих со стороны множественной свя­зи, то могут быть «пустые» значения внешнего ключа. В противном случае они должны иметь ограничение целостности «NON NULL».

5. Класс членства объектов в связи оказывает влияние не только на выбор варианта построения логической структуры, но и на зада­ние ограничений целостности. Причем ограничение целостности бу­дет определяться как классом членства, так и выбранным вариантом отображения этой связи в БД. Так, если объекты связаны отношени­ем 1:М, класс принадлежности n-связной сущности является необя­зательным и для отображения связи создается третье отношение, ко­торое содержит ключи каждой из связанных сущностей, то между связующим файлом и основными файлами будет ограничение цело­стности по связи, а значения каждого из полей связующего файла не должны быть пустыми. Если же дополнительная таблица не создается, то значение поля связи, включенного в таблицу, соответствующую объекту, стоящему со стороны множественной связи, либо должно совпадать с одним из значений ключевого поля связанного объекта, либо может быть пустым. Если класс членства обязательный, то поле связи не может иметь пустого значения.

6. При наличии связи 1:1 следует проверять количество элемен­тов в связи.

7. Для статических свойств объектов можно предусматривать зап­рет на обновление.

8. Если свойство - условное, то соответствующий атрибут может иметь пустые значения.