ER-модель — это модель информационных данных, которая позволяет описать концептуальные схемы необходимой предметной области.
Введение
Модель ER (Entity-Relationship, то есть, сущность-связь) используется, для того чтобы моделировать предметную область и логическую структуру базы данных. ER-модель служит для описания сущностей и отношения между ними с применением возможностей графической нотации. Сущности могут содержать атрибуты, то есть, свойства. К примеру, если пользователь разрабатывает систему для спортивного клуба, тогда:
- В качестве сущностей могут выступать тренер, спортсмен, учебная группа, тренировка, норматив, расписание занятий.
- Атрибутами сущности «Тренер» могут считаться ФИО, вид спорта, разряд, стаж.
- Среди сущностей «Учебная группа» и «Спортсмен» может быть отношение типа «Обучается в».
Проблемы, связанные с проектированием ER-модели, могут возникнуть по следующим причинам:
- Известен ряд нотаций, но не существует единого стандарта (системы обозначений) для ER-модели.
- Раньше наиболее часто встречалась нотация Чена, но по мнению специалистов она является самым неудобным способом, а также трудно найти нормальные инструменты для формирования диаграмм в данной нотации.
- Существуют также нотация Бахмана, нотация min-max и ряд других, которые используются очень редко и на них нет стандарта.
- Нотация IDEF1X, нотация диаграммы классов UML, нотация Мартина (вороньи лапки). Данные нотации применяются достаточно часто, к тому же имеются инструментальные наборы, в которых их удобно выстраивать.
Для разных систем управления базами данных (СУБД) существуют инструменты, которые позволяют формировать схему базы данных. К примеру, это может быть MS Access или MS SQL Management Studio. В итоге может получиться что-либо похожее на ER-диаграмму, то есть, с чисто формальных позиций пользователь может получить графическое отображение, которое описывает сущности и отношения, однако такие диаграммы не будут соответствовать ни одной из перечисленных нотаций.
ER-модель в качестве модели информационных данных
Сначала рассмотрим основные возможности нотации Чена. Примером данной нотации может служить ER-диаграмма базы кинотеатра, приведенная на рисунке ниже.
Рисунок 1. ER-диаграмма базы кинотеатра. Автор24 — интернет-биржа студенческих работ
В данной нотации сущность отображена прямоугольником, ее атрибуты представлены овалами, а отношения между сущностями изображены в виде ромбов. Имена главных атрибутов должны подчеркиваться. На дугах следует указать арности (кратности) связей, а также набор ограничений типа «⩽ 30». К примеру, при помощи ограничений можно указать, что в учебных группах не может быть больше тридцати спортсменов. В общем, понять то, что изображено на диаграмме конечно можно, если ее внимательно читать, следует отметить следующие недостатки:
- Процесс изучения диаграммы является достаточно утомительным, поскольку диаграмма содержит очень большое количество компонентов.
- Диаграмма может быстро выйти за пределы листа А4, проблема может возникнуть уже в небольшом по объему проекте.
- Неясно в какой форме и где именно следует прописывать типы атрибутов.
- Трудно отыскать более специализированные инструменты, чем Visio (для Windows) и yEd (кроссплатформенный) для ее формирования.
Более подробное описание данной нотации имеется в $[$ER_ivanova$]$.
Далее рассмотрим нотацию Мартина (вороньи лапки), в которой атрибуты сущностей могут быть записаны прямо внутри символа прямоугольника, призванного обозначить сущность. Это позволяет сделать диаграмму существенно более компактной. Отношения здесь не отображаются в виде ромбов, а должны записываться как текст над стрелкой. Данная нотация предполагает следующие виды концов стрелок, которые задают арность отношения:
Рисунок 2. Виды концов стрелок. Автор24 — интернет-биржа студенческих работ
Отсюда следует, что если в отношении участвуют нуль сущностей, то на соответствующем конце стрелки должен быть изображен круг. Эти обозначения используются в различных программах редактирования диаграмм, включая yEd и plantuml.
В качестве примера можно рассмотреть диаграмму, которая является аналогичной, используемой в нотации Чена.
Рисунок 3. Диаграмма. Автор24 — интернет-биржа студенческих работ
Основные поля на диаграмме помещены в верхнюю секцию прямоугольника, видно, что у Билета применяется составной ключ. Помимо этого, данная нотация позволяет описывать типы полей.
Далее рассмотрим нотацию диаграммы классов UML и нотацию Мартина. Нотация Мартина по многим признакам является похожей на нотацию диаграммы классов UML. Тем не менее ее использование для моделирования предметной области и структуры базы данных обладает рядом особенностей:
- Сущности и их свойства изображаются точно также как в нотации Мартина (прямоугольник с секциями). Нижняя (третья) секция символа класса часть должна оставаться, поскольку она служит для записи функций класса. Тем не менее иногда в нее могут помещать описание индексов и триггеров базы данных со стереотипами ∠∠index>> и ∠∠trigger>>.
- Применяется достаточно небольшое подмножество системы обозначений, поскольку для предметной области нет особого смысла в виртуальных функциях, абстрактных классах, статических полях, агрегации, закрытом наследовании.
- Как правило, появляется потребность отображать ограничения, для этого следует применять стереотипы ∠∠PK>> (первичный ключ), ∠∠FK>> (внешний ключ) и ∠∠PK, FK>>.
На рисунке ниже изображена данная диаграмма.
Рисунок 4. Диаграмма. Автор24 — интернет-биржа студенческих работ
Диаграмма классов часто применяется при объектно-ориентированном проектировании и для ее формирования известно много инструментов. Это считается достаточно удобным, когда пользователь занят изучением программирования и уже успел познакомиться с нотацией диаграммы классов. В качестве ER-модели данная нотация используется, к примеру, в инструментах серии Rational от IBM.
Основное отличие данной нотации от предыдущих заключается в том, что на нее имеется международный стандарт $[$UML_ISO_1, UML_ISO_2$]$. Существует еще много других нотаций, отличающихся от приведенных выше системой обозначений и только в редких случаях способных предоставить какие-либо новые возможности.