При построении инфологических моделей можно использовать язык ER-диаграмм (от англ. Entity-Relationship, т.е. сущность-связь).
В них сущности изображаются помеченными прямоугольниками, ассоциации помеченными ромбами или шестиугольниками, атрибуты помеченными овалами, а связи между ними ненаправленными ребрами, над которыми может проставляться степень связи (1 или буква, заменяющая слово много) и необходимое пояснение.
Между двумя сущностям, например, А и В возможны четыре вида связей.
Первый тип связь ОДИН-К-ОДНОМУ (1:1): в каждый момент времени каждому представителю (экземпляру) сущности А соответствует 1 или 0 представителей сущности В:
связь ОДИН-КО-МНОГИМ (1:М): одному представителю сущности А соответствуют 0, 1 или несколько представителей сущности В.
Если связь между сущностями МУЖЧИНЫ и ЖЕНЩИНЫ называется БРАК, то существует четыре возможныхпредставления такой связи:
В приведенных примерах для повышения иллюстративности рассматриваемых связей не показаны атрибуты сущностей и ассоциаций во всех ER-диаграммах. Так, ввод лишь нескольких основных атрибутов в описание брачных связей значительно усложнит ER-диаграмму (рис.
2.1,а). В связи с этим язык ER-диаграмм используется для построении небольших моделей и иллюстрации отдельных фрагментов больших. Чаще же применяется менее наглядный, но более содержательный язык инфологического моделирования (ЯИМ), в котором сущности и ассоциации представляются предложениями вида:
СУЩНОСТЬ (атрибут 1, атрибут 2 , ..., атрибут n) АССОЦИАЦИЯ [СУЩНОСТЬ S1, СУЩНОСТЬ S2, ...] (атрибут 1, атрибут 2, ..., атрибут n) где S степень связи, а атрибуты, входящие в ключ, должны быть отмечены с помощью подчеркивания.
Так, рассмотренный выше пример множества связей между сущностями, может быть описан на ЯИМ следующим образом:
Врач (Номер_врача, Фамилия, Имя, Отчество, Специальность) Пациент (Регистрационный_номер, Номер койки, Фамилия, Имя, Отчество, Адрес, Дата рождения, Пол) Лечащий_врач [Врач 1, Пациент M] (Номер_врача, Регистрационный_номер) Консультант [Врач M,Пациент N] (Номер_врача, Регистрационный_номер).
Для выявления связей между сущностями необходимо, как минимум, определить сами сущности. Но это не простая задача, так как в разных предметных областях один и тот же объект может быть сущностью, атрибутом или ассоциацией.
Проиллюстрируем такое утверждение на примерах, связанных с описанием брачных связей (см. пример 2.1).
Пример 2.2. Отдел записей актов гражданского состояния (ЗАГС) имеет дело не со всеми людьми, а только с теми, кто обратился с просьбой о регистрации брака, рождения или смерти. Поэтому в странах, где допускаются лишь традиционные браки, отделы ЗАГС могут размещать сведения о регистрируемых браках в единственной сущности:
Брак (Номер_свидетельства, Фамилия_мужа, Имя_мужа, Отчество_мужа, Дата_рождения_мужа, Фамилия_жены, ... , Дата_регистрации, Место_регистрации, ...), ER-диаграмма которой приведена на рис. 2.1,б.
Пример 2.3. Теперь рассмотрим ситуацию, когда отдел ЗАГС расположен в стране, допускающей многоженство.
Если для регистрации браков использовать сущность Брак примера 2.2, то будут дублироваться сведения о мужьях, имеющих несколько жен (см. табл. 2.1).
Таблица 2.1
Номер свидетельстваФамилия мужа...Фамилия жены...Дата регистрации
| 1-ЮБ 154745 | Петухов | ... | Курочкина | ... | 06/03/1991 |
| 1-ЮБ 163489 | Петухов | ... | Пеструшкина | ... | 11/08/1991 |
| 1-ЮБ 169887 | Петухов | ... | Рябова | ... | 12/12/1992 |
| 1-ЮБ 169878 | Селезнев | ... | Уточкина | ... | 12/12/1992 |
| 1-ЮБ 154746 | Парасюк | ... | Свинюшкина | ... | 06/03/1991 |
| 1-ЮБ 169879 | Парасюк | ... | Хаврония | ... | 12/12/1992 |
| ... | ... | ... | ... | ... | ... |
Дублирование можно исключить созданием дополнительной сущности Мужья
Мужья (Код_М, Фамилия, Имя, Отчество, Дата рождения, Место рождения) и заменой сущности Брак характеристикой (см. п. 2.3) со ссылкой на соответствующее описание в сущности Мужья.
Брак (Номер свидетельства, Код_М, Фамилия жены, ..., Дата регистрации, ...){Мужья}. ER-диаграмма связи этих сущностей показана на рис.
2.1,в, а пример их экземпляров в табл. 2.2 и 2.3.
Таблица 2.2
Код_МФамилияИмяОтчествоГод/р.Место рожд.
| 111 | Петухов | Альфред | Остапович | 1971 | г. Цапелька |
| 112 | Селезнев | Вавила | Абрамович | 1973 | г. Гусев |
| 113 | Парасюк | Гораций | Федулович | 1972 | г. Свиньин |
| ... | ... | ... | ... | ... | ... |
Таблица 2.3
Номер свидетельстваКод_МФамилия женыИмя женыДата регистрации...
| 1-ЮБ 154745 | 111 | Курочкина | Августина | 06/03/1991 | ... |
| 1-ЮБ 163489 | 111 | Пеструшкина | Мариана | 11/08/1991 | ... |
| 1-ЮБ 169877 | 111 | Рябова | Милана | 12/12/1992 | ... |
| 1-ЮБ 169878 | 112 | Уточкина | Вероника | 12/12/1992 | ... |
| 1-ЮБ 154746 | 113 | Свинюшкина | Эльвира | 06/03/1991 | ... |
| 1_ЮБ 169879 | 113 | Хаврония | Руфина | 12/12/1992 | ... |
| ... | ... | ... | ... | ... | ... |
Пример 2.4. Наконец, рассмотрим случай, когда какой-либо организации потребовались данные о наличии в ней семейных пар, а для хранения сведений о сотрудниках уже имеется сущность
Сотрудники (Табельный_номер, Фамилия, Имя, ...). Использование, рассмотренной в примере 2.2, сущности Брак нецелесообразно: в Сотрудники уже есть фамилии, имена, отчества супругов. Поэтому создадим ассоциацию
Брак [Сотрудник 1, Сотрудник 1] (Табельный_номер_мужа, Табельный_номер_жены, ...), связывающую между собой определенные экземпляры сущности Сотрудники (рис. 2.1,г).
В заключение отметим, что ER-диаграмма рис. 2.1,а описывает структуру размещения данных о браках в отделах ЗАГС стран, допускающих групповые браки, а ER-диаграммы примера 2.1, описания любых видов браков в организациях, где есть сущности мужчины и женщины, включающие холостых и незамужних.
Что же такое связь? В ER-диаграммах это линия, соединяющая геометрические фигуры, изображающие сущности, атрибуты, ассоциации и другие информационные объекты. В тексте же этот термин используется для указания на взаимозависимость сущностей.
Если эта взаимозависимость имеет атрибуты, то она называется ассоциацией.