- •1. Базовые определения и соглашения
- •1.1. Определение и описание сущности
- •1.2. Определение и описание связи
- •1.3. Действительные и недействительные связи
- •1.4. Атрибуты
- •1.5. Уникальный (ключевой) идентификатор
- •1.6. Правила оформления er-диаграммы
- •1.7. Резюме
- •2. Дополнительные определения и соглашения
- •2.1. Подтипы сущностей
- •2. Дополнительные определения и соглашения 25
- •2. Дополнительные определения и соглашения 27
- •2.2. Дополнительные соглашения для сущностей
- •2. Дополнительные определения и соглашения 29
- •2.3. Исключающая дуга
- •2. Дополнительные определения и соглашения 31
- •2. Дополнительные определения и соглашения 33
- •2.4. Дополнительные соглашения для связей
- •2. Дополнительные определения и соглашения 35
- •2.5. Домены
- •2. Дополнительные определения и соглашения 37
- •2.6. Резюме
- •3. Классические структуры и общие образцы
- •3.1. Классические иерархические структуры
- •3. Классические структуры и общие образцы 39
- •3. Классические структуры и общие образцы 41
- •3. Классические структуры и общие образцы 43
- •3. Классические структуры и общие образцы 45
- •3.2. Сетевые структуры
- •3. Классические структуры и общие образцы 47
- •3.3. Изменения во времени
- •3. Классические структуры и общие образцы 49
- •3.4. Накладная на материалы
- •3. Классические структуры и общие образцы 51
- •3.5. Классификации и категории
- •3. Классические структуры и общие образцы 53
- •3.6. Типы сущности
- •3. Классические структуры и общие образцы 55
- •3.7. Общая модель для Заказов
- •3. Классические структуры и общие образцы 57
- •3.8. Общая модель для ролей и работ
- •3. Классические структуры и общие образцы 59
- •3.9. Продукция
- •3. Классические структуры и общие образцы 61
- •3. Классические структуры и общие образцы 63
- •3. Классические структуры и общие образцы 65
- •4. Нормализация данных 67
- •4. Нормализация данных
- •4. Нормализация данных 69
- •4. Нормализация данных 71
- •5. Оценка качества модели "Сущность-Связь" 73
- •5.1. Качество er-модели в конце этапа стратегии
- •5. Оценка качества модели "Сущность-Связь" 75
- •5. Оценка качества модели "Сущность-Связь" 77
- •5.2. Качество er-модели в конце этапа анализа
- •5. Оценка качества модели "Сущность-Связь" 79
- •5. Оценка качества модели "Сущность-Связь" 81
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. Изображение обязательности атрибутов
