ER-диаграмма (англ. Entity-Relationship Diagram) - разновидность блок-схемы, на которой отражаются физические (соответствующие объектам реального мира) либо абстрактные сущности информационной системы, их атрибуты и взаимосвязи между ними.
- Сущность (entity) – предмет, который может быть идентифицирован некоторым способом, отличающим его от других предметов.
- Множество сущностей - набор однородных сущностей.
- Атрибут (attribute) – свойство сущности (как, правило, атомарное).
- Связь (relationship) – ассоциация, устанавливаемая между сущностями.
- Степень связи – количество связанных сущностей.
ER-диаграммы существенно упрощают решение следующих задач:
- проектирование/отладка базы данных;
- реорганизация бизнес-процессов;
- исследование новой предметной области;
- быстрое погружение в предметную область новых сотрудников и т.д.
Существуют различные распространенные нотации (графические модели) ER-диаграмм:
- Нотация Р. Баркера (Barker Notation);
- Нотации IDEF1 и IDEF1X (Integration Definition for Information Modeling);
- Нотация Ч. Бахмана;
- Нотация Ж.-Р. Абриаля (мин-макс);
- Нотация Питера Чена;
- Нотация Мартина.
Рассмотрим две самые популярные: первая больше похожа на блок-схему, а вторая схожа с UML-диаграммой классов.
Нотация Питера Чена
Основополагающей считается визуализация ERD в нотации Питера Чена, описанная в книге 1976 года ((Peter Chen) «The Entity Relationship Model - Toward A Unified View of Data» («Модель сущность-связь – Унифицированное представление данных»)).
Графические элементы
Множества сущностей изображаются в виде прямоугольников, множества отношений - в виде ромбов.
Если сущность участвует в отношении, она связана с другой сущностью линией. Если отношение не является обязательным, то линия пунктирная.
Атрибуты изображаются в виде овалов и связываются линией с одним отношением или с одной сущностью.
Мощность связи (степень связи, кардинальность) представляется символами «1», «N» или «M», обычно размещенными на концах связей.
Нотация IE или нотация Мартина
Родоначальником методологии Information Engineering (информационного проектирования) был Клайв Финкельштейн (Clive Finkelstein), в дальнейшем ее усовершенствовали Джеймс Мартин (James Martin) и Чарльз Рихтер (Charles M. Richter). Также можно встретить название – «Воронья лапка» (Crow’s Foot) («Куриная лапка»).
Ее отличает указание мощности связей с помощью графических элементов, а не в виде буквенно-цифрового обозначений:
o – ноль;
| – один;
|| – один и только один (строго один). Обычно указывается со стороны родительской таблицы;
< – много. Элемент иногда называют «Вороньей (куриной) лапкой» (Crow’s Foot).
Уровни ER-моделей
Выделяют три уровня ER-моделей: концептуальный, логический, физический.
- Концептуальная ER-модель - это высокоуровневое представление сущностей. Она содержит наименьшее количество деталей и отражает общий объём модели, то есть количество сущностей и связей в ней.
- Логическая ER-модель - это описание важных для предметной области сущностей, их атрибутов и связей между ними.
- Физическая ER-модель - это описание того, как логическая ER-модель может быть разработана с помощью определённой технологии (СУБД).
На изображениях ниже представлены примеры логической и физической моделей моделей ER-диаграммы в нотации Crow's Foot.
- Сущности изображаются в виде прямоугольников с названием. Сущность может быть представлена таблицей в реляционной базе данных.
- Атрибуты сущности перечисляются в нижней части прямоугольника. Атрибуты сущностей в реляционной базе данных - поля таблицы.
- Связь между сущностями изображается линией.
Для преобразования логической ER-модели в физическую необходимо:
- Преобразовать сущности в таблицы.
- Преобразовать атрибуты в поля с указанием типов и ограничений.
- Добавить первичные ключи.
- Добавить внешние ключи.
- Добавить системные таблицы и поля.
Тонкости применения нотаций
При выборе нотации аналитику стоит учитывать целевую аудиторию, которой будет презентоваться созданная диаграмма. Также необходимо помнить, что из-за большого количества простых графических элементов, в частности, атрибутов, диаграмма в нотации Чена может стать сложной для восприятия.
Логические ограничения
Так как детальная схема «Сущность-связь» используется для проектирования базы данных, то при подготовке макета необходимо учитывать существенные ограничения:
- Только реляционные данные. Цель ER-диаграмм — показать связи и отношения между элементами, поэтому они отображают только реляционную структуру.
- Только для структурированных данных. Данные должны быть четко разбиты на поля, столбцы и строки, иначе ER-диаграмма будет бесполезной. Только некоторые из частично структурированных данных будут пригодны для работы.
Рекомендации по шагам
- Определяем целевую аудиторию и контекст, в котором планируем использовать диаграммы.
- Стараемся сначала проектировать концептуальную модель и обсудить основные нюансы с заказчиком.
- После обсуждения концептуальной модели с командой разработки переходим к подготовке логической модели.
- Физическую модель (если она потребуется) лучше проектировать вместе с разработчиками.
Примеры применения нотаций
Нотацию Чена часто используют для концептуальных моделей, которые презентуют заказчику. Человеку, который далёк от аналитики данных, проще разобраться в понятных диаграммах со знакомыми символами.
Также концептуальную модель можно презентовать разработчикам при погружении их в контекст задачи.
Нотация Мартина используют для построения ER-моделей логического уровня, когда нужно описать в модели все атрибуты сущностей.
Инструментарий
Популярные сервисы plantuml и draw.io позволяют быстро нарисовать ER-диаграмму в нотации Мартина, используя шаблоны.
Диаграмму в нотации Чена можно нарисовать, например, с помощью сервиса online.visual-paradigm.
Автор: Анна Пушина
Редакторы: Татьяна Курсина, Анна Зайцева
Фото найдены в Сети