Скачиваний:
114
Добавлен:
30.04.2013
Размер:
735.74 Кб
Скачать

1.3. Действительные и недействительные связи

Не все связи, которые могут быть сконструированы по приве-

денным выше правилам, реально существуют или часто встречаются в

действительности. Примеры наиболее общих (часто встречающихся)

конструкции связей показаны на рис.1.6.

.

1. Базовые определения и концепции 13

─────────────────────────────────────────────────────────────────

 

┌─────────────┐ ┌─────────────┐

│ ├┐ │ │ многие к

│ ├┼───────── ─ ─ ─ ─ ┤   │

│ ├┘  │ │ одному

└─────────────┘ └─────────────┘

┌─────────────┐ ┌─────────────┐

│ ├┐ ┌┤ │ многие к

│ ├┼─ ─ ─ ─ ─ ─ ─ ─ ─┼┤   │

│ ├┘ └┤ │ многим

└─────────────┘ └─────────────┘

┌─────────────┐

│ ├┐ рекурсия "многие к одному" для иерархий

│ ├┼─ ─ ─┐

│ ├┘

└────────┬────┘ │

│ │

└ ─ ─ ─ ─ ─ ┘

   

Рис.1.6. Примеры наиболее общих связей

На следующем рисунке 1.7 показаны примеры недействительных

связей, т.е. соответствующие им отношения между сущностями реаль-

но не существуют.

 

┌─────────────┐ ┌─────────────┐ обязательная

│ ├┐ ┌┤ │

│ ├┼──────────────┼┤   │ связь типа

│ ├┘ └┤ │

└─────────────┘ └─────────────┘ "многие к многим"

┌─────────────┐

│ ├┐ рекурсия для

│ ├┼─────┐

│ ├┘ │ бесконечной иерархии

└────────┬────┘ │

│ │

└ ─ ─ ─ ─ ─ ┘

 

Рис.1.7. Примеры недействительных связей

Исчерпывающий список всех синтаксически возможных конструк-

ций связей, с указанием их действительного или невозможного су-

ществования, приведен в приложении 1.

.

Информационно-логическое моделирование.

14 Модель "Сущность-Связь"

─────────────────────────────────────────────────────────────────

1.4. Атрибуты

Атрибут - это любая деталь (подробность), которая служит для

того чтобы опознавать сущность, определять ее количественные ха-

рактеристики, выражать состояние. Иначе, атрибут - это любой се-

мантически важный описатель предмета.

Атрибут может быть текстом, числом, рисунком, фактурой по-

верхности, запахом и т.д. Для процессов преобразования данных на

ЭВМ ограничемся рассмотрением текстовых и числовых атрибутов.

Атрибут определяется своим именем, выраженным существитель-

ным в единственном числе, обязательностью и, возможно, примерами

значений.

На ER-диаграмме атрибут записывается в блоке сущности, кото-

рую он описывает, как показано на рис.1.8.

 

┌─────────────────────────┐

│ │

│     СУЩНОСТЬ-A │

│ │

│ │

│   атрибут-1 │

│ │

│   атрибут-2  │

│ │

└─────────────────────────┘

 

Рис.1.8. Графическое изображение сущности с атрибутами

На ER-диаграмме не обязательно показывать атрибуты сущнос-

тей, но добавления одного, двух атрибутов для сущностей в ходе

формирования ER-модели является полезным. Особенно это использу-

ется когда необходимо показать различие между сущностями со смыс-

лом "тип" и "экземпляр". В следующем примере атрибуты помогают

провести различие между такого рода сущностями:

 

┌──────────────────────┐ ┌──────────────┐

│ │ │ │

│ САМОЛЕТ │принадлежать │ ТИП САМОЛЕТА │

│ ├┐к │ │

│ регистрационный номер├┼──────────── ─ ─ ─ ─ ─ ─ ┤ код │

│ ├┘ классифика-│ │

│ дата изготовления │ тор для │ описание │

│ │ │ │

└──────────────────────┘ └──────────────┘

 

Рис.1.9.

1. Базовые определения и концепции 15

─────────────────────────────────────────────────────────────────

Следующие простые правила помогают создавать точную, полную

и гибкую модель данных. (См. также главу "Нормализация данных").

* Правило описания атрибутом одной сущности

Атрибут должен описывать сущность, рядом с которой он указан!

Это правило может показаться очевидным, но многие ошибки

связаны с определением атрибутов. Например, "номер места" - это

атрибут билета, самолета или места в самолете?

Ясно, что это атрибут сущности МЕСТО, но в реальной жизни мы

видим номер места и в билете на самолет, который на ER-диаграмме

представлен самостоятельной сущностью. Описание такой ситуации в

ER-модели осуществляется с помощью связи между сущностями

(рис.1.10).

 

┌──────────────────┐ ┌─────────────┐

│ │продан │ │

│ БИЛЕТ │ на │ МЕСТО │

│ ├────────── ─ ─ ─ ─ ┤ │

│ дата продажи │ указано│ номер │

│ время продажи │ в │ │

└──────────────────┘ └─────┬┬┬─────┘

└┼┘ для

иметь│

┌─────────────┐

│ │

│ САМОЛЕТ │

│ │

└─────────────┘

 

Рис.1.10. Корректное присоединение атрибута

Как правило, большинство сущностей может иметь от двух до

восьми атрибутов. Если сущность имеет больше восьми атрибутов, то

вероятно, что это упущенные связи и/или сущности.

* Правило формирования имен атрибутов

Не следует использовать имя сущности как часть имени атрибу-

та. Это излишне, так как атрибут описывает только одну сущность.

В приведенном выше примере, сочетание "номер места" помогло нам

идентифицировать упущенную сущность с именем МЕСТО, которая опи-

сывается атрибутом "номер" и, возможно, другими атрибутами, таки-

ми как "класс".

Информационно-логическое моделирование.

16 Модель "Сущность-Связь"

─────────────────────────────────────────────────────────────────

При чтении атрибутов, именованных таким способом, можно ис-

пользовать следующую форму:

Имя Атрибута Имя Сущности в родительном падеже.

Например, номер места; регистрационный номер самолета.

* Перемещение повторяющихся атрибутов

(Первая нормальная форма)

Сущность в любое время может иметь только одно значение для

атрибута. Если одновременное наличие множества значений является

реальным, то необходимо создать новую сущность, которая содержала

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

ностью. Для наглядного изображения этого правила, воспользуемся

примером с местами в самолете еще раз.

 

┌──────────────────────┐

│ │

│ САМОЛЕТ │

│ │

│ регистрационный номер│

│ │

│ дата изготовления │

│ │

│ место 1 │

│ │

│ место 2 │

│ │

│ ... │

│ │

│ место 99 │

│ │

└──────────────────────┘

 

Рис.1.11. Повторяющиеся атрибуты указывают на

упущенную сущность

Применив выше изложенное правило, получим следующую диаграм-

му:

 

┌─────────────┐ ┌──────────────────────┐

│ │ │ │

│ МЕСТО ├┐ │ САМОЛЕТ │

│ ├┼──────── ─ ─ ─ ─ ┤ регистрационный номер│

│ номер ├┘ │ дата изготовления │

│ │ │ │

└─────────────┘ └──────────────────────┘

 

Рис.1.12. Добавление упущенной сущности

1. Базовые определения и концепции 17

─────────────────────────────────────────────────────────────────

Это правило называют "Первой нормальной формой". Более под-

робное описание приведено в главе "Нормализация данных", где опи-

саны также правила приведения ER-модели ко второй и третьей нор-

мальным формам.

* Единственное число имени атрибута

Имя атрибута должно представляться существительным в

единственном числе. Множественное число имени часто указывает на

проблему повторяющихся атрибутов, описанную выше. Такими ошибоч-

ными атрибутами для сущности САМОЛЕТ могут быть места или члены

экипажа. Все они являются упущенными сущностями со своими атрибу-

тами.

* Не является ли атрибут упущенной сущностью?

Атрибут становится сущностью, если он является агрегатом

других семантически важных данных.

В предыдущем примере в качестве атрибута сущности САМОЛЕТ

использовался "регистрационный номер". Вообще говоря, регистрация

самолетов представляет целую подсистему на авиалиниях, данные о

которой могут быть необходимы для разрабатываемой системы. Так

например, может потребоваться "дата регистрации", "где был заре-

гистрирован самолет", "была ли перерегистрация самолета?" и т.д.

Тогда ER-диаграмма преобразуется к форме подобной на рис.1.13.

 

┌──────────────────┐ ┌─────────────┐

│ │произведена │ │

│ РЕГИСТРАЦИЯ ├┐ │ МЕСТО │

│ ├┼───────── ─ ─ ─ ─ ┤ │

│ дата ├┘ источник│ РЕГИСТРАЦИИ │

│ номер │ │ │

│ тип │ └─────────────┘

└───────┬┬┬────────┘

└┼┘для

идентифициро-│

ваться по

┌────────┴─────────┐

│ │

│ САМОЛЕТ │

│ │

│ дата изготовления│

│ │

└──────────────────┘

 

Рис.1.13. Выделение атрибута в сущность

Однако необходимо остерегаться излишней детализации. В пре-

Информационно-логическое моделирование.

18 Модель "Сущность-Связь"

─────────────────────────────────────────────────────────────────

дыдущем примере, если система регистрации не представляет интере-

са, то надо вернуться к первоначальной модели, возможно, улучшив

ее понимание путем добавления прилагательного "текущий" к регист-

рационному номеру.

 

┌───────────────────────────────────┐

│ │

│ САМОЛЕТ │

│ │

│ текущий регистрационный номер │

│ │

│ дата изготовления │

│ │

└───────────────────────────────────┘

 

Рис.1.14

* Обязательные и необязательные атрибуты

Некоторые атрибуты могут иметь значения только в течение не-

которого промежутка времени, или значения их не всегда известны,

в этом случае, атрибуты считаются необязательными (optional

attributes). На ER-диаграмме необязательный атрибут помечается

знаком "о" перед именем атрибута.

Если значения атрибутов всегда известны, то такие атрибуты

считаются обязательными (mandatory attributes). На ER-диаграмме

обязательный атрибут помечается знаком "*" перед именем атрибута.

 

┌──────────────────┐

│ │

│ ПОЛЕТ │

│ │

│ * дата вылета │

│ │

│ о время вылета │

│ │

└──────────────────┘

 

Рис.1.15. Изображение обязательности атрибутов