ER-диаграмма (Entity-Relationship Diagram)
ER-диаграмма (Entity-Relationship Diagram, ERD) — диаграмма "сущность-связь", которая применяется для:
- проектирования БД, описания процессов и бизнес-логики
- моделирования структуры данных и их связей в системах или приложениях
- документирования требований
Составляющие элементы ERD
- Сущности — объекты (например, пользователь, заказ)
- Атрибуты — характеристики сущностей (имя, дата заказа)
- Связи — отображают, как сущности связаны друг с другом (пользователь делает заказ)
Типы связей между сущностями
- Один-к-одному (1:1): каждая запись в одной сущности соответствует одной записи в другой
- Один-ко-многим (1:M): одна запись в сущности соответствует нескольким записям в другой
- Многие-ко-многим (M:M): каждая запись в одной сущности связана с несколькими записями в другой, и наоборот
Пример ERD для интернет-магазина
Сущности: пользователь, заказ, товар
Атрибуты:
- пользователь: ID, имя, email
- заказ: ID заказа, дата, сумма
- товар: ID товара, название, цена
Связи:
- пользователь делает заказ (один пользователь может сделать много заказов — связь "один ко многим")
- заказ содержит товары (один заказ может включать много товаров — связь "многие ко многим")
Уровни ER-диаграмм
ER-диаграммы делятся на 3 уровня в зависимости от уровня детализации:
- Концептуальный: описывает общую структуру данных без технических деталей. Показывает, какие сущности и связи существуют. Применяется на стадии сбора требований и анализа для обсуждения с бизнесом и заказчиками.
- Логический: уточняет атрибуты сущностей и типы связей. Детализирует модель, но не привязан к конкретной СУБД. Используется на этапе уточнения требований и согласования структуры данных.
- Физический: описывает, как данные будут реализованы в БД, с учётом таблиц, индексов, первичных и внешних ключей. Используется на этапе реализации и разработки БД.
Нотации ERD
ER-диаграмма — визуальная модель или схема, а нотации — методы, с помощью которых она строится.
- Нотация IDEF1X: фундаментальная, используется для физического уровня, ориентирована на стандарты реляционных БД. Редко используется на практике
- сущности: прямоугольники с именем сущности
- связи: линии с символами "лапками" для связи один-ко-многим, "палка" для связи один-к-одному
- атрибуты: внутри прямоугольников сущностей
- Нотация Чена: классическая нотация, часто используется для концептуальных моделей
- сущности: прямоугольники
- связи: ромбы, соединены линиями с сущностями
- атрибуты: овалы, соединены линиями с сущностями
- Нотация Мартина ("воронья лапка"): компактнее нотации Чена, используется для логического уровня, когда нужно описать все атрибуты сущностей
- сущности: прямоугольники с атрибутами внутри
- связи: линии с "лапками вороны" для связи один-ко-многим и палочкой для связи один-к-одному
- атрибуты: внутри сущностей, первичные ключи выделены отдельной строкой
Отличия от других инструментов
- UML-диаграммы классов: нужны для моделирования объектов и их поведения в объектно-ориентированном программировании, а не для реляционных БД
- UML отражают методы (функции) классов
- ERD показывают только структуру данных и их взаимосвязи
- Data Flow Diagram (DFD): фокус на потоках данных между процессами и системами, а не на структуре самих данных
- DFD описывает, как данные перемещаются и обрабатываются
- ERD отображают данные в статичном виде их сущности и связи
- BPMN: моделируют бизнес-процессы и последовательность действий, а не данные
- BPMN отображает шаги процесса и участников
- ERD — только структуру данных и их отношения внутри системы
Инструменты для ERD
- Draw.io (онлайн, бесплатный) — есть интеграция с облачными сервисами
- Lucidchart ER (онлайн, бесплатный тариф с ограничениями) — поддерживает совместную работу
- DBeaver (Community Edition) (оффлайн, бесплатный) — для работы с БД, поддерживает авто-создание ERD
- drawSQL (онлайн, бесплатный тариф с ограничениями) — можно моделировать структуру БД
- Miro (онлайн, бесплатный тариф с ограничениями) — есть доска для команды
Подборка материалов по теме ER-диаграмм
- Сущности и связи: как и дл я чего системные аналитики создают ER‑диаграммы
- Что такое ER-диаграмма и как ее создать?
- Проектирование ER-диаграммы
- Что выбрать для проектирования БД: сравнение UML-диаграммы классов и ER-диаграммы
- Модель диаграммы Entity Relations (ER) с примером СУБД
- Пример построения ER-модели и SQL-запросов к ней
- Учимся проектированию Entity Relationship-диаграмм
- Как создать ER-диаграмму
- Методика построения ER-диаграммы для базы данных
- Диаграммы «сущность – связь» (ERD). Типы отношений. Построение схемы базы данных на основе ERD диаграмм
- Нотация Мартина (Crow's Foot)
- Методология Питера Чена
- Нотация Мартина для ER-диаграмм
- Методика IDEF1X
- Нотация IDEF1
Инструменты
- SmartDraw ER (онлайн/оффлайн, пробная версия) — редактор диаграмм, богатый набор шаблонов
- Microsoft Visio (оффлайн, пробная версия) — для профессиональных диаграмм
- Miro (онлайн, бесплатный тариф с ограничениями) — доска для командной работы, позволяет создавать любые диаграммы
- EdrawMax (онлайн/оффлайн, пробная версия) — редактор диаграмм, поддерживает несколько нотаций ER
- DbSchema (онлайн/оффлайн, пробная версия) — для визуального проектирования БД с поддержкой ERD и интеграции с СУБД
Видео
- Что такое ERD за 9 минут
- Топ 10 инструментов для построения ERD
- Типы связей в базах данных
- ER-диаграммы в нотации Питера Чена
- Модель сущность связь, ER диаграмма
- Курс «Системный аналитик» | Урок 10: Данные, ER-диаграмма
- Модуль 9. Создаем ER-диаграмму
- Реляционная модель данных, ER диаграмма. Базы данных