ER-диаграмма (диаграмма «сущность — связь», Entity-Relationship Diagram) — это визуальная схема структуры данных системы: показывает объекты (сущности), их свойства (атрибуты) и отношения (связи). Концепцию разработал Питер Чен (Peter Pin-Shan Chen) в 1976 году. Применяется при проектировании реляционных баз данных, в системном анализе и разработке программного обеспечения — ещё до написания первой строки кода.
В статье разбираем три компонента ER-диаграммы, три уровня ER-модели, нотации Чена и Crow’s Foot, алгоритм из пяти шагов, пример для интернет-магазина и онлайн-инструменты — включая генерацию через ИИ (искусственный интеллект).
Учитесь бесплатно за счёт государства
Экономия до 100 000 ₽ на любой программе
ER-диаграмма появляется до разработки: команда сначала рисует схему и договаривается о терминах — и только потом пишет код. Это помогает выявить противоречия между требованиями заказчика и тем, что задумал разработчик.
Важно разграничить понятия: ER-модель и ER-диаграмма — не синонимы. ER-модель — логическое описание данных: какие объекты существуют, какими свойствами обладают, как связаны. ER-диаграмма — способ нарисовать эту логику понятно для всей команды. Модель — это содержание, диаграмма — его визуализация.
Питер Чен сформулировал подход в статье «The Entity-Relationship Model: Toward a Unified View of Data» (1976). С тех пор er диаграмма стала стандартом в проектировании баз данных по всему миру.
Несколько ограничений: ER-диаграмма не описывает бизнес-процессы (для этого существуют BPMN или UML Activity) и плохо ложится на NoSQL-базы, где жёсткой реляционной схемы нет.
Любая диаграмма «сущность — связь» строится из трёх элементов. Разберём каждый на примере интернет-магазина — он пройдёт через все разделы статьи.
Сущность — объект предметной области, информация о котором хранится в системе. В реляционной базе данных каждая сущность превращается в отдельную таблицу.
Для интернет-магазина сущности — это Клиент, Заказ, Продукт. Каждый конкретный клиент — экземпляр сущности: например, «Клиент №5, Иван Петров». Чтобы отличить один экземпляр от другого, у каждой сущности обязателен первичный ключ (PK) — уникальный идентификатор записи. Без первичного ключа сущность не может существовать в реляционной модели данных.
Атрибут — конкретное свойство сущности. У сущности «Клиент» атрибуты: имя, email, дата рождения, адрес доставки. Атрибуты делятся на шесть типов:
| Тип атрибута |
Описание |
Пример |
|---|---|---|
| Простой | Нельзя разбить на части | email клиента |
| Составной | Состоит из нескольких элементов | адрес = улица + дом + город |
| Однозначный | Одно значение на экземпляр | дата рождения |
| Многозначный | Несколько значений | список телефонов |
| Хранимый | Сохраняется в базе напрямую | дата рождения |
| Производный | Вычисляется из других атрибутов | возраст (из даты рождения) |
Таблица. Шесть типов атрибутов ER-диаграммы с примерами для сущности «Клиент».
Первичный ключ (PK) уникально идентифицирует каждую запись в таблице. Внешний ключ (FK) ссылается на первичный ключ другой сущности — так устанавливается связь между таблицами. Например, атрибут ID_клиента в таблице Заказ — это внешний ключ, ссылающийся на PK таблицы Клиент.
Связь описывает, как сущности взаимодействуют. Формулируется глагольной фразой: «клиент размещает заказ», «заказ содержит продукты».
У каждой связи два свойства: кардинальность (мощность связи) — сколько экземпляров одной сущности связано с экземплярами другой — и опциональность — обязательна ли связь. Например, заказ обязан принадлежать клиенту, но у клиента может не быть ни одного заказа.
| Тип связи |
Обозначение |
Пример |
Промежуточная таблица |
|---|---|---|---|
| Один к одному | 1:1 | Сотрудник — Трудовой договор | Не нужна |
| Один ко многим | 1:N | Клиент — Заказы | Не нужна |
| Многие ко многим | M:N | Заказ — Продукты | Нужна |
Таблица. Типы связей в ER-диаграмме с примерами и указанием, когда требуется промежуточная таблица.
Отдельный случай — идентифицирующая связь: дочерняя сущность не существует без родительской. Классический пример — «Кабинет» идентифицируется только в рамках «Филиала»: без указания филиала кабинет №5 не определён однозначно.
ER-модель строится поэтапно: детализация растёт от общего понимания предметной области к конкретной технической реализации. Каждый уровень решает свою задачу и создаётся разными участниками проекта.
Создают системный аналитик совместно с заказчиком. Цель — согласовать терминологию: убедиться, что команда и клиент говорят об одних и тех же объектах. Детализация минимальная: просто список сущностей без атрибутов и ключей. Результат — зафиксированный глоссарий предметной области, согласованный с заказчиком до начала разработки.
К работе подключаются архитектор базы данных и разработчики. Добавляются атрибуты, первичные и внешние ключи, типы связей. Логическая модель — это уже полноценная предметная область в терминах данных. Готовую схему презентуют всей команде разработки: она становится общим языком для дальнейшего проектирования.
Архитектор базы данных и разработчики переводят логику в технические решения: SQL-таблицы, типы данных, индексы, ограничения. Детализация максимальная — физическая модель становится основой для DDL-кода (Data Definition Language, языка определения данных). Системный аналитик на этом этапе выступает консультантом.
Нотация — графический язык ER-диаграммы: набор символов и правил, по которым рисуются сущности, атрибуты и связи. Существует три основных варианта. От выбора нотации зависит читаемость схемы и совместимость с инструментами команды.
Питер Чен разработал свою нотацию одновременно с самой концепцией ER-моделирования. Символы нотации Чена:
| Элемент |
Нотация Чена |
Нотация Crow’s Foot |
|---|---|---|
| Сущность | Прямоугольник | Прямоугольник с атрибутами внутри |
| Атрибут | Овал, соединённый линией | Строка внутри прямоугольника |
| Связь | Ромб | Линия между прямоугольниками |
| Первичный ключ | Подчёркнутый овал | Строка в выделенной зоне PK |
| Кардинальность | Цифры на линиях (1, N, M) | «Вороньи лапки» и черты на концах |
Нотация Чена хорошо подходит для академических работ и обучения: символы наглядные и сразу объясняют смысл каждого элемента. Ограничение — при большом числе атрибутов овалы разрастаются и схема становится трудночитаемой.
Нотацию разработал Гордон Эверест и популяризировал Ричард Мартин — отсюда второе название «нотация Мартина». Отличительный символ — «вороньи лапки»: три коротких отрезка на конце линии обозначают множественную сторону связи, одна черта — единственную, кружок — необязательную связь.
Главное преимущество перед нотацией Чена: атрибуты записываются строками внутри прямоугольника сущности, а не отдельными овалами вокруг неё. Схема выходит компактнее и читается легче при большом числе полей. Crow’s Foot — де-факто стандарт в draw.io, dbdiagram.io и Lucidchart.
ER-диаграмма и диаграмма классов UML используют похожие прямоугольники, но решают принципиально разные задачи.
| Параметр |
ER-диаграмма |
UML-диаграмма классов |
|---|---|---|
| Фокус | Структура данных | Структура объектов и поведение |
| Контекст | Проектирование БД | Объектно-ориентированная разработка |
| Атрибуты | Свойства сущностей | Поля + методы класса |
| Связи | Кардинальность: 1:1, 1:N, M:N | Ассоциация, агрегация, наследование |
| Нотации | Чен, Crow’s Foot, IDEF1X | UML 2.x |
| Результат | Схема данных для SQL | Архитектура ПО для разработчиков |
Итог: ER-диаграмма — для проектирования реляционных баз данных. Диаграмма классов UML — для объектно-ориентированного проектирования программного обеспечения, когда важно описать не только данные, но и поведение объектов.

Вернёмся к интернет-магазину. Модель данных состоит из четырёх сущностей.
Связи между сущностями:
Именно так устроено большинство реальных систем: прямой связи «многие ко многим» в реляционной базе не существует — её всегда разбивают на две связи «один ко многим» через промежуточную сущность.

Создание ER-диаграммы — итерационный процесс: схема уточняется по ходу работы с заказчиком и командой. Базовый алгоритм состоит из пяти шагов.
Шаг 1. Определить сущности. Проведите интервью с заказчиком, изучите документацию. Выделите ключевые существительные — «клиент», «заказ», «склад» — они становятся кандидатами в сущности.
Шаг 2. Описать атрибуты. Для каждой сущности перечислите свойства и назначьте первичный ключ. Проверьте: нет ли атрибутов, которые лучше вынести в отдельную сущность.
Шаг 3. Установить связи. Определите, как сущности взаимодействуют. Формулируйте глагольными фразами: «клиент размещает заказ», «заказ содержит продукты».
Шаг 4. Определить кардинальность и опциональность. Для каждой связи ответьте: сколько экземпляров участвует с каждой стороны? Обязательна ли связь для существования сущности?
Хотите сменить профессию или повысить квалификацию?
Федеральный проект «Активные меры содействия занятости» даёт возможность пройти обучение бесплатно за счёт государства
Шаг 5. Проверить через нормализацию. Убедитесь в отсутствии дублирующихся данных и косвенных зависимостей. Готовая схема передаётся архитектору базы данных для разработки физической модели.

Нормализация — процесс устранения избыточности данных и косвенных зависимостей. ER-диаграмма помогает выявить нарушения нормальных форм ещё до начала разработки.
Классический пример нарушения третьей нормальной формы (3НФ): атрибут «город_клиента» размещён в таблице Заказ. Но город зависит не от ID_заказа, а от ID_клиента — это косвенная зависимость. Решение: перенести атрибут в сущность Клиент.
Что проверять в ER-схеме:
Целостность данных — главная причина проверять нормальные формы на этапе проектирования ER-модели, а не после написания кода.
Если база уже существует или есть готовый DDL-код, ER-диаграмму можно получить автоматически без ручного рисования.
Пример DDL-кода для двух таблиц:
CREATE TABLE client (
id INT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
);
CREATE TABLE orders (
id INT PRIMARY KEY,
date DATE,
client_id INT,
FOREIGN KEY (client_id) REFERENCES client(id)
);
Три шага для получения ER-диаграммы по SQL-коду онлайн:
Альтернатива — DBeaver: подключается к существующей реляционной базе данных и генерирует ER-схему без написания кода вручную.
Создать ER-диаграмму онлайн можно в браузере без установки программ. Инструменты для визуализации данных различаются по функциональности: одни подходят для быстрого наброска, другие — для доменного моделирования или командной работы.
| Инструмент |
Бесплатно |
SQL-импорт |
AI |
Для чего |
|---|---|---|---|---|
| draw.io | ✓ | — | — | Быстрое создание любых диаграмм |
| dbdiagram.io | ✓ | ✓ | ✓ | ER из SQL-кода и AI-описания |
| Lucidchart | Частично | ✓ | — | Командная работа и интеграции |
| ERDPlus | ✓ | — | — | Обучение и академические проекты |
| PlantUML | ✓ | — | — | Диаграммы из текстового кода |
Для быстрого старта без SQL-кода подойдёт draw.io — интуитивный редактор с готовыми шаблонами ER-диаграмм. Если нужно сгенерировать схему из существующей базы или DDL — dbdiagram.io.
Два популярных инструмента поддерживают генерацию с помощью ИИ.
dbdiagram.io AI: опишите структуру базы данных текстом в чате — инструмент автоматически построит схему с сущностями, атрибутами и связями без ручного рисования.
ChatGPT + PlantUML: опишите базу в промпте и попросите сгенерировать PlantUML-код. Вставьте готовый код на plantuml.com — диаграмма отрисуется автоматически. Подход удобен, когда результат нужно встроить в техническую документацию или экспортировать в разных форматах.
Microsoft Access содержит встроенный инструмент для визуализации связей между таблицами — «Схема данных».
Шаги:
Схема данных в Access — удобный вариант для учебных проектов, систем учёта малого бизнеса и ситуаций, когда отдельный инструмент для моделирования данных избыточен.
Хотите освоить системный анализ и проектирование баз данных с нуля? В рамках федерального проекта «Активные меры содействия занятости» ТГУ предлагает программу «Специалист по аналитике и базам данных в информационных системах» — бесплатно, за счёт государства, в онлайн-формате. Смотрите каталог доступных программ.
ER-модель — логическое описание структуры данных: какие объекты существуют, какими свойствами обладают, как связаны. ER-диаграмма — графическая визуализация этой модели. Коротко: модель — содержание, диаграмма — способ нарисовать его понятно для всей команды.
Три основных нотации: нотация Чена (1976, академическая — ромбы для связей, овалы для атрибутов), нотация Crow’s Foot / Мартина (профессиональный стандарт, «вороньи лапки» для кратности) и диаграмма классов UML (разработка программного обеспечения, описывает данные вместе с методами объектов).
Кардинальность — количество экземпляров одной сущности, которые могут быть связаны с экземплярами другой. Значения: 1 (единственный), N (множественный), M (множественный с обеих сторон). В нотации Crow’s Foot кардинальность обозначается «вороньими лапками» и чертами на концах линий связи.
Через промежуточную таблицу. Для связи Заказ M:N Продукт создаётся сущность order_product с атрибутами ID_заказа (FK) и ID_продукта (FK). Это позволяет одному заказу содержать несколько продуктов, а одному продукту фигурировать в разных заказах одновременно.
Нет. ER-диаграмма — инструмент моделирования, а не программирования. Достаточно аналитических навыков: выделить сущности, описать атрибуты, установить связи. Знание SQL помогает при работе с логической и физической моделью, но для концептуального уровня оно необязательно.
При простых системах с одной-двумя сущностями — например, программа электронной очереди с полями «номер окна» и «номер талона». Также ER-диаграмма ограниченно применима к NoSQL-базам данных: там структура документов не вписывается в реляционную модель.
Да, в связке с PlantUML: опишите структуру базы данных в промпте, попросите ChatGPT написать PlantUML-код, вставьте его на plantuml.com — получите диаграмму. Более удобный вариант — dbdiagram.io со встроенным AI-чатом: описываете базу текстом, схема строится автоматически.
Выполните нормализацию: убедитесь, что нет лишних сущностей, дублирующихся данных и косвенных зависимостей. Если атрибут зависит не от первичного ключа своей таблицы, а от другого атрибута — нарушена третья нормальная форма, атрибут нужно вынести в отдельную сущность.
Подайте заявку —
забронируйте место в группе
45 000 мест на 2026 год. Бесплатное обучение по федеральному проекту «Активные меры содействия занятости»