О чем речь? ER-диаграмма — инструмент для визуализации структуры данных и связей между ними. Ее используют в бизнес-аналитике для создания программного обеспечения и оформления документации.
На что обратить внимание? ER-диаграммы строятся в различных нотациях: UML, IDEF1X, «воронья лапка», Чена. Для создания необходимо разобраться с детализацией уровней и применяемыми символами.
В этой статье:
- Понятие ER-диаграммы
- Уровни ER-модели
- Символы ER-диаграммы
- Виды связей в ER-диаграмме
- Нотации ER-диаграмм
- Этапы построения ER-диаграммы
- Примеры использования ER-диаграмм
- Часто задаваемые вопросы о ER-диаграммах
-
Чек-лист: Как добиваться своих целей в переговорах с клиентамиСкачать бесплатно
Понятие ER-диаграммы
ER-диаграмма (от английского «entity-relationship diagram) представляет собой графическую схему, отражающую данные, входящие в систему, и их взаимосвязь. Построение схемы выполняется с помощью графических элементов. На рисунке указывают объекты и их характеристики, показывают типы связей между ними.
Диаграммы применяются на стадии проектирования перед написанием кода, чтобы понять логику работы с данными. ЕR-диаграмма основана на модели (концепции), описывающей данные посредством связей и атрибутов.
ER-модель | ER-диаграмма | |
Что это | Концепция, метод описания данных | Представление модели с помощью графических символов |
Где применяется | Теоретическое проектирование базы данных | Визуализация базы данных |
Результат | Описание сущностей, атрибутов и связей | Схема будущей базы данных |
Форма | Текст либо таблица | Графика |
С помощью ER-модели определяют существующие данные и их взаимосвязь. Диаграмма позволяет увидеть это наглядно, что помогает создать проект базы данных.
Читайте также!
Уровни ER-модели
В создании ER-моделей принимают участие разные специалисты, а между графиками существуют различия по степени детализации описания данных. Выделяют следующие уровни ER-моделей:
-
Концептуальный.
Первая ступень, на которой показывают, что включает в себя новая предметная область будущего проекта и какую работу нужно выполнить. Например, при разработке программного обеспечения для транспортной компании используют сущности «Груз», «Транспорт», «Накладная», «Маршрут».
Источник: shutterstock.com
Заказчику и системному аналитику модель такого уровня необходима для проверки, учтены ли все термины, требуемые для проекта. Обычно она создается самостоятельно рассматриваемым работником без привлечения технических специалистов.
-
Логический.
На данном уровне модели ЕR-диаграммы выполняют детализацию данных из концептуальной модели, для чего к сущностям присоединяют атрибуты, то есть характеристики. К примеру, проводят описание характеристик сущности «Транспорт»: модель и марка механизма, мощность двигателя, пробег, грузоподъемность.
Над моделью такого уровня также работает системный аналитик, но уже совместно с техническими специалистами, а именно разработчиком и архитектором баз данных. Когда модель готова, ее представляют команде разработки. Сотрудники проверяют, все ли учтено аналитиком, после чего согласовывают модель.
-
Физический.
На данном этапе описывается организация работы с данными: определяют тип базы, что в нее будет входить, место хранения информации. Например, решают, что будет использован реляционный тип базы данных и СУБД, чтобы с ней работать, указывают, какие таблицы должны быть в базе, и местом хранения выбирают внутренний сервер организации.
В разработке ER-модели физического уровня участвуют в основном разработчики и архитектор баз данных, а системный аналитик оказывает помощь там, где это нужно.
Символы ER-диаграммы
Неотъемлемым элементом процесса разработки моделей различных систем, в том числе баз данных разной сложности, являются диаграммы «сущность-связь» (ERD). Однако в используемых способах нотации и фигурах можно легко запутаться.
Чтобы вы могли самостоятельно моделировать базы данных и разбирались в элементах ER-диаграмм, мы создали для вас это руководство.
Концептуальная модель данных в общих чертах показывает, какие компоненты должен включать график. Такие ER-диаграммы можно использовать, чтобы создать логические модели, а также сформировать отношения общности между различными элементами. Символы, которые мы рассмотрим ниже, есть в библиотеках «Сущность-связь» для UML и «Фигуры по модели "сущность-связь"» на Lucidchart.
Символы ERD-сущностей
Термином «сущность» называют понятие либо объект, который несет важную информацию. В соответствии с грамматическими правилами, они обычно являются именами существительными («клиент», «промоакция», «товар», «помещение»). Далее рассмотрим самые часто встречающиеся типы сущностей, которые применяются в ER-диаграммах.
Символы ERD-связей
Такие связи применяются в схемах «сущность-связь», чтобы обозначить, каким образом два объекта взаимодействуют друг с другом. С точки зрения грамматики, обычно это глаголы («закрепить», установить», «назначить»). Они несут информацию, которая не может быть получена при использовании только типов сущностей.
Символы ERD-атрибутов
ERD-атрибуты применяются для характеристики сущностей, чтобы пользователи могли лучше понять, как устроены базы данных. Они несут сведения об объектах, которые указаны в концептуальной ER-диаграмме.
Символы физических ER-диаграмм
Физическая модель данных в ER-диаграмме является уровнем с наибольшей детализацией и отражает процесс внесения данных в базу. В модели «сущность-связь» показана полностью структура таблицы, в том числе типы информации, наименования и ограничения столбцов, первичные и внешние ключи, а также то, как схемы взаимосвязаны между собой.
Таблицы являются еще одним вариантом отображения сущностей. В такие схемы входят следующие основные элементы.
Поля — представляют собой части таблицы, где показаны атрибуты сущностей. Как правило, последние — это столбцы базы, созданной по принципу «сущность-связь».
В приведенном примере атрибутами сущности являются «процентная ставка» (InterestRate) и «сумма займа» (LoanAmount), находящиеся внутри полей.
Ключи — это метод категоризации атрибутов. С помощью ER-диаграмм легче моделировать базы данных, поскольку таблицы обеспечивают упорядоченность, повышают эффективность и скорость работы. Ключи нужны для того, чтобы связывать разные таблицы, составляющие базу, между собой.
-
Первичный ключ представляет собой атрибут либо их набор, которые идентифицируют один и тот же экземпляр сущности.
-
Внешний ключ каждый раз формируется в момент привязки атрибута к сущности за счет единичной либо множественной связи.
Например, кредит на конкретную машину может выдать только один банк, а значит в таблице Car, то есть «автомобиль», внешним ключом FinancedBy («кем выдан заем») будет основной ключ BankId, то есть «идентификатор банка». При этом данный параметр может являться внешним ключом одновременно для нескольких машин.
«Тип» представляет собой вид данных, находящихся в определенном поле таблицы. Кроме того, также может обозначаться и тип сущности, то есть описание ее элементов. Так, такими параметрами для «книги» будут «название», «автор», «дата издания».
Читайте также!
Виды связей в ER-диаграмме
При моделировании связей необходимо точно отражать бизнес-правила в структуре данных. Интегрированность информации, а также производительность запросов в дальнейшем зависят от правильного определения типа и кардинальности связи. Если на этом этапе будут допущены ошибки, в будущем в работе всей информационной системы возникнут серьезные проблемы.
При создании моделей ER-диаграмм используют три типа связей:
-
1 : 1 (один к одному) — экземпляр одной конкретной сущности связывается с одним экземпляром второй сущности (например, Работник — Место для работы).
-
1 : N (один к многим) — экземпляр одной конкретной сущности связывается с несколькими экземплярами второй сущности (например, Отдел — Работники).
-
M : N (многие ко многим) — много экземпляров одной конкретной сущности связываются со многими экземплярами второй сущности (например, Ученики — Уроки).
Источник: shutterstock.com
Кроме того, для связей характерна кардинальность, означающая, что должны быть точно указаны количественные ограничения:
-
Обязательное участие в связи — участвовать должен каждый экземпляр сущности (например, каждая заявка должна иметь заказчика).
-
Необязательное участие в связи — элемент может не принимать участия (например, клиент может не иметь заказов).
-
Количественные ограничения — должно быть обозначено наименьшее и наибольшее количество связей (например, куратор ведет от 3 до 6 учеников курса).
Нужно очень внимательно относиться к типу связей «многие ко многим», поскольку в реляционных базах данных для них нужно формировать промежуточные таблицы. Если такие связи смоделировать неверно, то в дальнейшем будут трудности со сложностью запросов и производительностью.
Пример: для крупного обучающего портала проект создавался с применением классической связи «многие ко многим» (ученики и курсы). Однако детальное изучение требований показало, что связь имеет более сложную структуру.
Ученик мог записаться на курс, но не приступить к обучению, или начать учиться и не закончить, или завершить все с определенным результатом. Для каждого из таких состояний нужны свои атрибуты: дата записи на курс, прогресс, сертификаты.
При использовании простой промежуточной таблицы «ученик-курс» для разных сценариев потребовалось бы формировать не оптимальные NULL-поля. Вместо этого создали проект кластера связанных сущностей «Запись», «Обучение», «Сертификаты», сопроводив каждую из них своими атрибутами.
Источник: shutterstock.com
Начальное проектирование от этого стало сложнее, однако получилась более гибкая система. Спустя год появилась необходимость в добавлении концепции «путей обучения», отражающей последовательность прохождения курсов. Созданная сложная структура позволила легко это сделать, а если бы применили примитивную M:N связь, проект пришлось бы полностью переделывать.
Для сложных систем нередко необходимо моделировать рекурсивные связи, предполагающие контакт сущности с самой собой. Это применимо в организационных структурах (руководитель-сотрудник), комментариях с ответами или иерархических категориях продукции. Данные связи проектировать нужно особенно тщательно, чтобы предотвратить образование бесконечных циклов и обеспечить эффективность при работе с данными.
Также важным элементом при создании ER-диаграмм является обработка наследования и подтипов. Используются следующие подходы:
-
Общая таблица для всей иерархии — все атрибуты подтипов входят в единую структуру.
-
Отдельные таблицы для разных подтипов — создаются различные таблицы, в которых дублируются общие атрибуты.
-
Таблица для суперкласса и подклассов — таблицы, связь которых обеспечивается через первичный ключ.
Конкретный подход выбирают в зависимости от того, как между собой соотносятся общие и специфические атрибуты, а также от требований к целостности данных и количества запросов к разным подтипам. Профессиональные проектировщики баз данных знают, как правильно моделировать сложные связи, в отличие от дилетантов.
Нотации ER-диаграмм
ER-диаграммы — это не просто схемы, а универсальный язык визуализации структуры данных. Какие основные нотации существуют и как выбрать подходящий вариант для проектирования базы данных?
Нотация П. Чена
Прямоугольники изображают множества сущностей, а ромбы — отношений. При участии первых в отношении связь обозначается линией. Пунктир говорит о том, что отношение является необязательным. Овалы обозначают атрибуты. Связь последних с сущностью или отношением показывают линией.
Crow’s Foot
Эту нотацию предложил Гордон Эверест, назвав ее «inverted arrow», что означает перевернутая стрелка. Сейчас ее чаще называют Crow’s Foot (в переводе «воронья лапка») или fork («вилка»).
В данной нотации прямоугольником с именем существительным обозначается сущность. Важно, чтобы в рамках одной модели имя такого элемента было уникальным. При этом это название не конкретного экземпляра типа, а всего типа. Под экземпляром сущности понимается ее определенный представитель.
Две сущности, которые участвуют в отношении, соединяются линией. Степень конца связи обозначается графически. Если она множественная, на конце ставится «вилка». Также схематичное изображение используют для обозначения модальности. На конце связи ставится кружок, если она является необязательной.
Увеличим продажи вашего бизнеса с помощью комплексного продвижения сайта. Наша команда экспертов разработает для вас индивидуальную стратегию, которая позволит в разы увеличить трафик, количество заявок и лидов, снизить стоимость привлечения клиентов и создать стабильный поток новых покупателей.
Наименование, как правило, указывают одним глаголом в настоящем времени. При этом используется изъявительное наклонение («принадлежит», «ведет» и т.д.). Также это может быть глагол с поясняющими словами («содержит в себе»).
Для всей связи может быть использовано единое наименование, либо по одному для каждого из концов связи. Если названия два, то левый конец связи обозначается над линией, а правый — под. Каждое имя ставится возле сущности, к которой относится.
Источник: shutterstock.com
Внутри прямоугольника, означающего сущность, указываются атрибуты. Они представлены единственным числом имен существительных, могут сопровождаться уточняющими словами. Среди атрибутов есть ключ сущности. Он представлен не избыточным набором атрибутов, совокупное значение которых для каждого экземпляра сущности является уникальным.
Нотация ER-диаграммы классов UML
Она используется при моделировании предметной области и структуры баз данных. Особенности применения:
-
Сущности и свойства обозначаются прямоугольником с секциями, аналогично нотации Мартина. Нижняя секция нередко пустует, поскольку она нужна для описания функций класса, но в некоторых случаях в ней находится определение индексов и триггеров баз данных со стереотипами.
<<index>>
и
<<trigger>>
-
Подмножество системы обозначений небольшое, поскольку виртуальные функции, статические поля, закрытое наследование, абстрактные классы, агрегация не имеют особого значения для предметной области.
-
Как правило, требуется отображение ограничений. С этой целью применяются стереотипы.
<<PK>>
(первичный ключ),
<<FK>>
(внешний ключ) и
<<PK, FK>>
Диаграмма классов находит широкое применение при объектно-ориентированном проектировании. Она создается с помощью различных инструментов. Нужно сказать, что это очень удобно, если с нотацией ER-диаграммы классов вы уже знакомы.
Как ER-модель, данная нотация применяется в инструментах, входящих в серию Rational от IBM. От предыдущих нотаций она отличается тем, что на нее разработан международный стандарт [UML_ISO_1, UML_ISO_2]. Некоторые моменты, такие как особенности наследования и применения агрегации на этих диаграммах, в данной статье не рассматриваются. Обычно в такой информации потребности нет, но, если она нужна, можно обратиться к статье [ER_Krivishein].
из разных ниш с ростом
от 89% до 1732%


Нотация IDEF1X
Есть множество вариантов, схожих с названными выше и отличающихся только системой обозначений. Новых возможностей они, как правило, не несут, поэтому говорить о них не будем. Скажем только о IDEF1X, поскольку на нее создан международный стандарт [IDEF1X_ISO]. Информацию о том, как данный стандарт применять, можно посмотреть в [Anisimov_IDEF1X].
Стоит отметить, что символы и типы связей, используемые в нотации IDEF1X, не поддерживаются многими инструментами. Полностью настроен под моделирование баз данных с использованием IDEF1X инструмент ERwin Data Modeler, при этом он имеет проприетарную лицензию, и работать с ним можно только в Windows.
Самые удобные инструменты предусмотрены в нотациях Мартина или UML. Для моделирования стоит выбирать между этими двумя наборами. Если стандартизация имеет значение, можно предпочесть UML, поскольку для нее, в отличие от нотации Мартина, есть нормативы.
Этапы построения ER-диаграммы
От выделения сущностей до определения связей — создание ER-диаграммы подчиняется четкой логике. Разберём поэтапную методологию, которая поможет избежать ошибок в проектировании.
Определение объектов
На этом этапе, который у всех выглядит по-разному, нужно установить все используемые в базе данных или процессе объекты. Если вы разрабатываете ER-диаграмму базы данных или фрагмента ПО, нужно определить все основные элементы программного обеспечения.
Источник: shutterstock.com
Если же акцент делается на процесс или бизнес-структуру, необходимо определить бизнес-элементы и роли. То есть нужные объекты вы должны выделить самостоятельно с учетом того, какую модель будете создавать. Примеры компонентов, используемых на ER-диаграммах:
-
Лицо — заказчик, работник, ученик, пациент.
-
Объекты — оборудование, продукты, автомобили.
-
События — привлечение пользователей, проведение сделки, продление контракта.
На этом этапе нет необходимости сосредотачиваться на расстановке элементов в конкретной последовательности. Это можно сделать на шаге определения взаимосвязей, а здесь лучше уделить внимание полному охвату всех объектов, чтобы создать максимально точную диаграмму.
Добавление атрибутов
На этом этапе присоединяют атрибуты, характеризующие объекты. Например, объектом является вкус продукта. Тогда атрибутами будут Название вкуса — Вкусовой код — Идентификатор вкуса. Эта информация делает описание более детальным. Атрибуты важны для любой диаграммы, будь то базы данных, бизнес-процесса или другая. За счет обозначения основных свойств объекта элементы выводят на первый план диаграммы основную информацию.
Читайте также!
Установление взаимосвязи между объектами
После определения объектов и их атрибутов нужно отобразить, как они связаны между собой. Компоненты соединяются стрелками или линиями, показывающими отношения между ними. Не все компоненты могут быть связаны, что является нормой.
После соединения линиями элементов, связанных друг с другом, нужно описать типы взаимосвязей с помощью меток. Допустим, есть объекты «Заказ» и «Клиент». Линию, которая их соединяет, можно пометить надписью «Размещает», которая говорит о взаимосвязи объектов с помощью конкретного действия (клиент размещает заказ).
Эта, казалось бы, небольшая деталь помогает понять, каким образом взаимосвязаны данные элементы.
Определение показателей мощности связей
Применение таких показателей — это еще один метод предоставления дополнительных сведений. Мощность зависит от количественных атрибутов связей, показывающих, какой объем данных или информации перемещается от объекта к объекту.
Рассматриваемые показатели на диаграмме обозначаются на каждой линии или стрелке, соединяющей объекты, небольшими символами. В зависимости от количества информации и направления ее перемещения элементы будут разными.
Чтобы ER-диаграмма была компактной и максимально понятной, учитывают число компонентов для связи. Благодаря этому вы сможете показать, сколько информации и в каком направлении передается между объектами. В результате всем читающим диаграмму сразу будет видно, как происходит движение потоков в системе или базе данных.
Представление созданной ER-диаграммы
После завершения работы над диаграммой ее окончательный вариант показывают всем заинтересованным лицам, чтобы члены команды, акционеры, инвесторы могли что-то уточнить или оставить отзыв.
Источник: shutterstock.com
Благодаря разработке подобных схем члены команды могут совместно работать над проектом. Покажите диаграмму участникам, и они получат возможность комментировать прямо на доске.
Обновление и выполнение итераций
Постепенно первоначально созданная концептуальная модель будет изменяться. Это связано с необходимостью введения новых элементов в базы данных, обновления ПО, утратой актуальности структуры команды.
Чтобы ER-диаграмма не устаревала, периодически нужно делать обновления. Как только что-то меняется, возвращайтесь на доску и фиксируйте преобразования.
И даже если кажется, что никаких изменений не было, нужно регулярно возвращаться к диаграмме и смотреть, актуальна ли она. Чем чаще вы будете это делать, тем более точно процессы или базы данных будут отражены на схеме.
Примеры использования ER-диаграмм
За счет четкого структурирования данных и отображения связей между сущностями диаграммы пользуются популярностью во многих областях. Рассмотрим типичные примеры использования ER-диаграмм в создании проектов процессов и систем.
Область | Описание применения |
Базы данных | ER-модели способствуют выделению основных entity, их свойств и взаимосвязей. Благодаря этому можно разработать оптимальную структуру, чтобы хранить информацию и работать с ней. Пример: разработка базы данных для интернет-магазина, где в качестве сущностей выступают «Клиент», «Заказ», «Продукт», а процесс совершения покупки определяется их взаимосвязями. |
Информационные системы | При разработке информационных систем с помощью ER-моделей визуализируют архитектуру, чтобы показать, каким образом разные компоненты связаны друг с другом. Например, система управления обучающими курсами содержит сущности «Ученик», «Преподаватель», «Урок». Каждую сущность сопровождают определенные атрибуты. Также модель показывает взаимосвязь элементов в структуре процесса обучения. |
Бизнес-процессы | При описании бизнес-процессов моделирование помогает определить и изучить основные компоненты и стадии процесса. Например, разработка логистической компании связана с моделированием сущностей «Груз», «Склад», «Транспорт», позволяющих разработать оптимальные пути доставки грузов и предусмотреть их хранение. |
Разработка приложений | В создании эффективных программ с четкой структурой моделирование объектов и взаимосвязей имеет важное значение. Пример: сущности в создании проекта финансового приложения – это «Пользователь», «Транзакция», «Счет». К ним добавляются атрибуты и устанавливаются взаимосвязи, благодаря чему обеспечивается функциональность денежных трансферов. |

Часто задаваемые вопросы о ER-диаграмме
Грамотно спроектированная модель — это основа для эффективной работы всей информационной системы, способной адаптироваться при изменении условий и требований бизнеса.
Есть ли единый стандарт?
Для ER-моделей существуют разные нотации, а единого стандарта, содержащего общую систему обозначений, нет.
На какие ограничения нужно обратить внимание?
При разработке диаграммы следует учесть следующие ограничения:
-
Только реляционные данные. Так как диаграммы создаются с целью установления связей и отношений элементов, они отображают исключительно реляционную структуру.
-
Информация должна быть структурирована. Чтобы диаграмма была полезной, все данные должны быть разделены по столбцам, строкам и полям. Исключение составляют некоторые частично структурированные сведения, которые также полезны в работе.
Какие инструменты можно применять для создания диаграмм?
Быстро создать ER-диаграмму в соответствии с нотацией Мартина можно с помощью сервисов draw.io и plantuml, предлагающих шаблоны для работы.
Также онлайн ER-диаграмму в нотации Чена можно сделать, воспользовавшись сервисом online.visual-paradigm.
ER-диаграммы представляют собой не только инструмент для работы над проектами, но и хороший способ коммуникации между всеми, кто участвует в разработке информационных систем. Зная, как создавать схемы, можно легко получать масштабируемые, гибкие и эффективные структуры данных на основе абстрактных бизнес-требований.