Найти в Дзене
Astral Analyst Guild

ER-диаграмма как один из инструментов аналитика

Оглавление

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», обычно размещенными на концах связей.

-2

Нотация IE или нотация Мартина

Родоначальником методологии Information Engineering (информационного проектирования) был Клайв Финкельштейн (Clive Finkelstein), в дальнейшем ее усовершенствовали Джеймс Мартин (James Martin) и Чарльз Рихтер (Charles M. Richter). Также можно встретить название – «Воронья лапка» (Crow’s Foot) («Куриная лапка»).

Ее отличает указание мощности связей с помощью графических элементов, а не в виде буквенно-цифрового обозначений:

o – ноль;

| – один;

|| – один и только один (строго один). Обычно указывается со стороны родительской таблицы;

< – много. Элемент иногда называют «Вороньей (куриной) лапкой» (Crow’s Foot).

-3

Уровни ER-моделей

Выделяют три уровня ER-моделей: концептуальный, логический, физический.

  • Концептуальная ER-модель - это высокоуровневое представление сущностей. Она содержит наименьшее количество деталей и отражает общий объём модели, то есть количество сущностей и связей в ней.
  • Логическая ER-модель - это описание важных для предметной области сущностей, их атрибутов и связей между ними.
  • Физическая ER-модель - это описание того, как логическая ER-модель может быть разработана с помощью определённой технологии (СУБД).

На изображениях ниже представлены примеры логической и физической моделей моделей ER-диаграммы в нотации Crow's Foot.

  • Сущности изображаются в виде прямоугольников с названием. Сущность может быть представлена таблицей в реляционной базе данных.
  • Атрибуты сущности перечисляются в нижней части прямоугольника. Атрибуты сущностей в реляционной базе данных - поля таблицы.
  • Связь между сущностями изображается линией.
Логическая модель
Логическая модель
Физическая модель
Физическая модель

Для преобразования логической ER-модели в физическую необходимо:

  1. Преобразовать сущности в таблицы.
  2. Преобразовать атрибуты в поля с указанием типов и ограничений.
  3. Добавить первичные ключи.
  4. Добавить внешние ключи.
  5. Добавить системные таблицы и поля.

Тонкости применения нотаций

При выборе нотации аналитику стоит учитывать целевую аудиторию, которой будет презентоваться созданная диаграмма. Также необходимо помнить, что из-за большого количества простых графических элементов, в частности, атрибутов, диаграмма в нотации Чена может стать сложной для восприятия.

Логические ограничения

Так как детальная схема «Сущность-связь» используется для проектирования базы данных, то при подготовке макета необходимо учитывать существенные ограничения:

  • Только реляционные данные. Цель ER-диаграмм — показать связи и отношения между элементами, поэтому они отображают только реляционную структуру.
  • Только для структурированных данных. Данные должны быть четко разбиты на поля, столбцы и строки, иначе ER-диаграмма будет бесполезной. Только некоторые из частично структурированных данных будут пригодны для работы.

Рекомендации по шагам

  1. Определяем целевую аудиторию и контекст, в котором планируем использовать диаграммы.
  2. Стараемся сначала проектировать концептуальную модель и обсудить основные нюансы с заказчиком.
  3. После обсуждения концептуальной модели с командой разработки переходим к подготовке логической модели.
  4. Физическую модель (если она потребуется) лучше проектировать вместе с разработчиками.

Примеры применения нотаций

Нотацию Чена часто используют для концептуальных моделей, которые презентуют заказчику. Человеку, который далёк от аналитики данных, проще разобраться в понятных диаграммах со знакомыми символами.

Также концептуальную модель можно презентовать разработчикам при погружении их в контекст задачи.

Нотация Мартина используют для построения ER-моделей логического уровня, когда нужно описать в модели все атрибуты сущностей.

Инструментарий

Популярные сервисы plantuml и draw.io позволяют быстро нарисовать ER-диаграмму в нотации Мартина, используя шаблоны.

Диаграмму в нотации Чена можно нарисовать, например, с помощью сервиса online.visual-paradigm.

Автор: Анна Пушина

Редакторы: Татьяна Курсина, Анна Зайцева

Фото найдены в Сети