Для построения инфологических моделей часто используется язык ER-диаграмм (Entity-Relationship – сущность-связь). Данный язык предложил сотрудник корпорации IBM Питер Чен в 1976 г.
Он предложил изображать сущности в виде помеченных прямоугольников, связи – помеченных ромбов, атрибуты – помеченных овалов. Над линиями, которые соединяют прямоугольники, можно проставлять степень связи (1 или М, которая заменяет слово «много») и нужное пояснение (рисунок 1).
Характеристика связей
Между двумя сущностями может быть 4 типа связей.
Связь «один-к-одному» (1:1): в любой момент времени ни одного или один представитель сущности Б соответствует каждому экземпляру (представителю) сущности А.
К примеру, студент может не получать стипендию, получить повышенную или обычную стипендию (рисунок 2, а).
Связь «один-ко-многим» (1:М): одному представителю сущности А может соответствовать ни одного, один или более представителей сущности Б.
К примеру, в квартире может не проживать ни один человек, проживать один или больше человек (рисунок 2, б).
Между сущностями могут существовать связи в двух направлениях, поэтому существуют еще 2 типа связи «многие-ко-многим» (М:М) и «многие-к-одному» (М:1).
Пусть между сущностями ЖЕНЩИНЫ и МУЖЧИНЫ существует связь БРАК. Тогда возможны 4 представления этой связи (рисунок 3):
Кроме рассмотренных существуют и более сложные связи:
- много связей между теми же сущностями (рисунок 4, а): у пациента может быть один врач и несколько врачей-консультантов; у врача может быть несколько пациентов и он может быть консультантом одновременно нескольких других пациентов;
- тренарные связи (рисунок 4, б): врач может выписать назначение нескольким пациентам на несколько анализов, анализ могут назначить несколько врачей нескольким пациентам и пациенту могут назначить несколько анализов несколько врачей;
- связи более высоких порядков.
На сегодняшний день существует много удобных графических нотаций описания ER-диаграмм, которые поддерживаются редакторами деловой графики и CASE-средствами разработки ИС.
Зачастую используют нотации, в которых сущность изображают в виде прямоугольника, а имя сущности располагается в верхней его части (рисунок 5, а). В прямоугольнике перечисляются атрибуты сущности. Ключевые атрибуты располагаются сверху и отделяются от остальных горизонтальной чертой.
Связь между двумя сущностями изображают пунктирной линией (рисунок 5, б).
Условные графические обозначения на концах линий обозначают количество связей: одна – вертикальная черта, ни одной или необязательная – кружок, много – «воронья лапа».
При вхождении ключа одной сущности в ключ другой сущности связь между ними изображается сплошной, а не пунктирной линией (рисунок 6, а). Зачастую встречается достаточно специфический вид связи: рекурсивная связь «Свиное ухо» между атрибутами одной сущности «Один-ко-многим», которая используется для описания иерархий с любым количеством уровней. Пример такой связи для сущности ОТДЕЛЫ приведен на рисунке 6, б.
Подобную связь можно проследить по таблице 1, в которой представлены несколько столбцов и строк таблицы Н_ОТДЕЛЫ.
В рассмотренном примере три уровня иерархии, но при использовании данного описания число этих уровней ограничивается лишь предметной областью.