Медиаблог /

Что такое ER-диаграмма: компоненты, нотации Чена и Crow’s Foot и примеры

27 августа 2026

Что такое ER-диаграмма: компоненты, нотации Чена и Crow’s Foot и примеры

ER-диаграмма (диаграмма «сущность — связь», Entity-Relationship Diagram) — это визуальная схема структуры данных системы: показывает объекты (сущности), их свойства (атрибуты) и отношения (связи). Концепцию разработал Питер Чен (Peter Pin-Shan Chen) в 1976 году. Применяется при проектировании реляционных баз данных, в системном анализе и разработке программного обеспечения — ещё до написания первой строки кода.

ER-диаграмма с прямоугольниками сущностей, ромбами связей и овалами атрибутов

В статье разбираем три компонента ER-диаграммы, три уровня ER-модели, нотации Чена и Crow’s Foot, алгоритм из пяти шагов, пример для интернет-магазина и онлайн-инструменты — включая генерацию через ИИ (искусственный интеллект).

image

Учитесь бесплатно за счёт государства

Экономия до 100 000 ₽ на любой программе

Выбрать курс

Что такое ER-диаграмма простыми словами

ER-диаграмма появляется до разработки: команда сначала рисует схему и договаривается о терминах — и только потом пишет код. Это помогает выявить противоречия между требованиями заказчика и тем, что задумал разработчик.

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

Питер Чен сформулировал подход в статье «The Entity-Relationship Model: Toward a Unified View of Data» (1976). С тех пор er диаграмма стала стандартом в проектировании баз данных по всему миру.

Несколько ограничений: ER-диаграмма не описывает бизнес-процессы (для этого существуют BPMN или UML Activity) и плохо ложится на NoSQL-базы, где жёсткой реляционной схемы нет.

Из чего состоит ER-диаграмма: сущности, атрибуты, связи

Любая диаграмма «сущность — связь» строится из трёх элементов. Разберём каждый на примере интернет-магазина — он пройдёт через все разделы статьи.

Сущности и экземпляры

Сущность — объект предметной области, информация о котором хранится в системе. В реляционной базе данных каждая сущность превращается в отдельную таблицу.

Для интернет-магазина сущности — это Клиент, Заказ, Продукт. Каждый конкретный клиент — экземпляр сущности: например, «Клиент №5, Иван Петров». Чтобы отличить один экземпляр от другого, у каждой сущности обязателен первичный ключ (PK) — уникальный идентификатор записи. Без первичного ключа сущность не может существовать в реляционной модели данных.

Атрибуты и их типы

Атрибут — конкретное свойство сущности. У сущности «Клиент» атрибуты: имя, email, дата рождения, адрес доставки. Атрибуты делятся на шесть типов:

Тип атрибута
Описание
Пример
Простой Нельзя разбить на части email клиента
Составной Состоит из нескольких элементов адрес = улица + дом + город
Однозначный Одно значение на экземпляр дата рождения
Многозначный Несколько значений список телефонов
Хранимый Сохраняется в базе напрямую дата рождения
Производный Вычисляется из других атрибутов возраст (из даты рождения)

Таблица. Шесть типов атрибутов ER-диаграммы с примерами для сущности «Клиент».

Первичный ключ (PK) уникально идентифицирует каждую запись в таблице. Внешний ключ (FK) ссылается на первичный ключ другой сущности — так устанавливается связь между таблицами. Например, атрибут ID_клиента в таблице Заказ — это внешний ключ, ссылающийся на PK таблицы Клиент.

Типы связей и кардинальность

Связь описывает, как сущности взаимодействуют. Формулируется глагольной фразой: «клиент размещает заказ», «заказ содержит продукты».

У каждой связи два свойства: кардинальность (мощность связи) — сколько экземпляров одной сущности связано с экземплярами другой — и опциональность — обязательна ли связь. Например, заказ обязан принадлежать клиенту, но у клиента может не быть ни одного заказа.

Тип связи
Обозначение
Пример
Промежуточная таблица
Один к одному 1:1 Сотрудник — Трудовой договор Не нужна
Один ко многим 1:N Клиент — Заказы Не нужна
Многие ко многим M:N Заказ — Продукты Нужна

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

Отдельный случай — идентифицирующая связь: дочерняя сущность не существует без родительской. Классический пример — «Кабинет» идентифицируется только в рамках «Филиала»: без указания филиала кабинет №5 не определён однозначно.

Три уровня ER-модели

ER-модель строится поэтапно: детализация растёт от общего понимания предметной области к конкретной технической реализации. Каждый уровень решает свою задачу и создаётся разными участниками проекта.

Концептуальная модель

Создают системный аналитик совместно с заказчиком. Цель — согласовать терминологию: убедиться, что команда и клиент говорят об одних и тех же объектах. Детализация минимальная: просто список сущностей без атрибутов и ключей. Результат — зафиксированный глоссарий предметной области, согласованный с заказчиком до начала разработки.

Логическая модель

К работе подключаются архитектор базы данных и разработчики. Добавляются атрибуты, первичные и внешние ключи, типы связей. Логическая модель — это уже полноценная предметная область в терминах данных. Готовую схему презентуют всей команде разработки: она становится общим языком для дальнейшего проектирования.

Физическая модель

Архитектор базы данных и разработчики переводят логику в технические решения: SQL-таблицы, типы данных, индексы, ограничения. Детализация максимальная — физическая модель становится основой для DDL-кода (Data Definition Language, языка определения данных). Системный аналитик на этом этапе выступает консультантом.

Нотации ER-диаграмм: как читать и выбрать подходящую

Нотация — графический язык ER-диаграммы: набор символов и правил, по которым рисуются сущности, атрибуты и связи. Существует три основных варианта. От выбора нотации зависит читаемость схемы и совместимость с инструментами команды.

Нотация Чена — классика для обучения

Питер Чен разработал свою нотацию одновременно с самой концепцией ER-моделирования. Символы нотации Чена:

  • Прямоугольник — сущность
  • Овал — атрибут (соединяется линией с сущностью)
  • Ромб — связь между сущностями
  • Подчёркнутый овал — первичный ключ
Элемент
Нотация Чена
Нотация Crow’s Foot
Сущность Прямоугольник Прямоугольник с атрибутами внутри
Атрибут Овал, соединённый линией Строка внутри прямоугольника
Связь Ромб Линия между прямоугольниками
Первичный ключ Подчёркнутый овал Строка в выделенной зоне PK
Кардинальность Цифры на линиях (1, N, M) «Вороньи лапки» и черты на концах

Нотация Чена хорошо подходит для академических работ и обучения: символы наглядные и сразу объясняют смысл каждого элемента. Ограничение — при большом числе атрибутов овалы разрастаются и схема становится трудночитаемой.

Нотация Crow’s Foot — стандарт в профессиональных инструментах

Нотацию разработал Гордон Эверест и популяризировал Ричард Мартин — отсюда второе название «нотация Мартина». Отличительный символ — «вороньи лапки»: три коротких отрезка на конце линии обозначают множественную сторону связи, одна черта — единственную, кружок — необязательную связь.

Главное преимущество перед нотацией Чена: атрибуты записываются строками внутри прямоугольника сущности, а не отдельными овалами вокруг неё. Схема выходит компактнее и читается легче при большом числе полей. Crow’s Foot — де-факто стандарт в draw.io, dbdiagram.io и Lucidchart.

ER-диаграмма vs UML: в чём разница

ER-диаграмма и диаграмма классов UML используют похожие прямоугольники, но решают принципиально разные задачи.

Параметр
ER-диаграмма
UML-диаграмма классов
Фокус Структура данных Структура объектов и поведение
Контекст Проектирование БД Объектно-ориентированная разработка
Атрибуты Свойства сущностей Поля + методы класса
Связи Кардинальность: 1:1, 1:N, M:N Ассоциация, агрегация, наследование
Нотации Чен, Crow’s Foot, IDEF1X UML 2.x
Результат Схема данных для SQL Архитектура ПО для разработчиков

Итог: ER-диаграмма — для проектирования реляционных баз данных. Диаграмма классов UML — для объектно-ориентированного проектирования программного обеспечения, когда важно описать не только данные, но и поведение объектов.

Пример ER-диаграммы для базы данных интернет-магазина

ER-диаграмма интернет-магазина в нотации Crow's Foot: Клиент, Заказ, Товар

Вернёмся к интернет-магазину. Модель данных состоит из четырёх сущностей.

  • Клиент — ID_клиента (PK), имя, email
  • Заказ — ID_заказа (PK), дата, ID_клиента (FK)
  • Продукт — ID_продукта (PK), название, цена
  • order_product — промежуточная таблица: ID_заказа (FK) + ID_продукта (FK)

Связи между сущностями:

  • Клиент 1:N Заказ — один клиент размещает несколько заказов; каждый заказ принадлежит ровно одному клиенту.
  • Заказ M:N Продукт — один заказ содержит несколько продуктов, один продукт фигурирует в разных заказах. Связь разрешается через промежуточную таблицу order_product.

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

Пошаговый алгоритм создания ER-диаграммы

Пять шагов создания ER-диаграммы: от сущностей до нормализации

Создание ER-диаграммы — итерационный процесс: схема уточняется по ходу работы с заказчиком и командой. Базовый алгоритм состоит из пяти шагов.

Шаг 1. Определить сущности. Проведите интервью с заказчиком, изучите документацию. Выделите ключевые существительные — «клиент», «заказ», «склад» — они становятся кандидатами в сущности.

Шаг 2. Описать атрибуты. Для каждой сущности перечислите свойства и назначьте первичный ключ. Проверьте: нет ли атрибутов, которые лучше вынести в отдельную сущность.

Шаг 3. Установить связи. Определите, как сущности взаимодействуют. Формулируйте глагольными фразами: «клиент размещает заказ», «заказ содержит продукты».

Шаг 4. Определить кардинальность и опциональность. Для каждой связи ответьте: сколько экземпляров участвует с каждой стороны? Обязательна ли связь для существования сущности?

Хотите сменить профессию или повысить квалификацию?

Федеральный проект «Активные меры содействия занятости» даёт возможность пройти обучение бесплатно за счёт государства

  • Программы от ведущих вузов России — от 2 месяцев
  • Удостоверение или диплом установленного образца
  • Центр карьеры: 7 500+ вакансий, помощь с трудоустройством
Оставить заявку
image

Шаг 5. Проверить через нормализацию. Убедитесь в отсутствии дублирующихся данных и косвенных зависимостей. Готовая схема передаётся архитектору базы данных для разработки физической модели.

ER-диаграмма и нормализация: зачем проверять модель

Нормализация ER-диаграммы до и после устранения нарушений третьей нормальной формы

Нормализация — процесс устранения избыточности данных и косвенных зависимостей. ER-диаграмма помогает выявить нарушения нормальных форм ещё до начала разработки.

Классический пример нарушения третьей нормальной формы (3НФ): атрибут «город_клиента» размещён в таблице Заказ. Но город зависит не от ID_заказа, а от ID_клиента — это косвенная зависимость. Решение: перенести атрибут в сущность Клиент.

Что проверять в ER-схеме:

  • Лишние сущности — не объединены ли в одну таблицы с разным смыслом.
  • Дублирующиеся данные — одни и те же атрибуты в разных сущностях.
  • Косвенные зависимости — атрибут зависит не от первичного ключа своей таблицы.

Целостность данных — главная причина проверять нормальные формы на этапе проектирования ER-модели, а не после написания кода.

ER-диаграмма из SQL-кода: как это работает

Если база уже существует или есть готовый 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-коду онлайн:

  1. Напишите DDL-код для всех таблиц с первичными и внешними ключами.
  2. Вставьте код в dbdiagram.io — инструмент автоматически построит схему.
  3. Экспортируйте диаграмму в нужном формате.

Альтернатива — DBeaver: подключается к существующей реляционной базе данных и генерирует ER-схему без написания кода вручную.

Онлайн-инструменты и генераторы ER-диаграмм

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

Инструмент
Бесплатно
SQL-импорт
AI
Для чего
draw.io Быстрое создание любых диаграмм
dbdiagram.io ER из SQL-кода и AI-описания
Lucidchart Частично Командная работа и интеграции
ERDPlus Обучение и академические проекты
PlantUML Диаграммы из текстового кода

Для быстрого старта без SQL-кода подойдёт draw.io — интуитивный редактор с готовыми шаблонами ER-диаграмм. Если нужно сгенерировать схему из существующей базы или DDL — dbdiagram.io.

Генерация ER-диаграммы с помощью AI

Два популярных инструмента поддерживают генерацию с помощью ИИ.

dbdiagram.io AI: опишите структуру базы данных текстом в чате — инструмент автоматически построит схему с сущностями, атрибутами и связями без ручного рисования.

ChatGPT + PlantUML: опишите базу в промпте и попросите сгенерировать PlantUML-код. Вставьте готовый код на plantuml.com — диаграмма отрисуется автоматически. Подход удобен, когда результат нужно встроить в техническую документацию или экспортировать в разных форматах.

ER-диаграмма в Microsoft Access: пошаговая инструкция

Microsoft Access содержит встроенный инструмент для визуализации связей между таблицами — «Схема данных».

Шаги:

  1. Откройте базу данных в Access.
  2. Перейдите на вкладку «Работа с базами данных» → нажмите «Схема данных».
  3. Добавьте нужные таблицы через диалоговое окно.
  4. Перетащите первичный ключ одной таблицы на внешний ключ другой — Access создаст связь автоматически.
  5. Укажите параметры: тип связи и поддержку целостности данных.

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

Хотите освоить системный анализ и проектирование баз данных с нуля? В рамках федерального проекта «Активные меры содействия занятости» ТГУ предлагает программу «Специалист по аналитике и базам данных в информационных системах» — бесплатно, за счёт государства, в онлайн-формате. Смотрите каталог доступных программ.

Часто задаваемые вопросы

Чем ER-диаграмма отличается от ER-модели?

ER-модель — логическое описание структуры данных: какие объекты существуют, какими свойствами обладают, как связаны. ER-диаграмма — графическая визуализация этой модели. Коротко: модель — содержание, диаграмма — способ нарисовать его понятно для всей команды.

Сколько основных нотаций существует для ER-диаграмм?

Три основных нотации: нотация Чена (1976, академическая — ромбы для связей, овалы для атрибутов), нотация Crow’s Foot / Мартина (профессиональный стандарт, «вороньи лапки» для кратности) и диаграмма классов UML (разработка программного обеспечения, описывает данные вместе с методами объектов).

Что такое кардинальность связи в ER-диаграмме?

Кардинальность — количество экземпляров одной сущности, которые могут быть связаны с экземплярами другой. Значения: 1 (единственный), N (множественный), M (множественный с обеих сторон). В нотации Crow’s Foot кардинальность обозначается «вороньими лапками» и чертами на концах линий связи.

Как разрешить связь «многие ко многим» в ER-диаграмме?

Через промежуточную таблицу. Для связи Заказ M:N Продукт создаётся сущность order_product с атрибутами ID_заказа (FK) и ID_продукта (FK). Это позволяет одному заказу содержать несколько продуктов, а одному продукту фигурировать в разных заказах одновременно.

Нужно ли знать программирование, чтобы создать ER-диаграмму?

Нет. ER-диаграмма — инструмент моделирования, а не программирования. Достаточно аналитических навыков: выделить сущности, описать атрибуты, установить связи. Знание SQL помогает при работе с логической и физической моделью, но для концептуального уровня оно необязательно.

Когда ER-диаграмма не нужна?

При простых системах с одной-двумя сущностями — например, программа электронной очереди с полями «номер окна» и «номер талона». Также ER-диаграмма ограниченно применима к NoSQL-базам данных: там структура документов не вписывается в реляционную модель.

Можно ли сгенерировать ER-диаграмму с помощью ChatGPT?

Да, в связке с PlantUML: опишите структуру базы данных в промпте, попросите ChatGPT написать PlantUML-код, вставьте его на plantuml.com — получите диаграмму. Более удобный вариант — dbdiagram.io со встроенным AI-чатом: описываете базу текстом, схема строится автоматически.

Как проверить, что ER-диаграмма построена правильно?

Выполните нормализацию: убедитесь, что нет лишних сущностей, дублирующихся данных и косвенных зависимостей. Если атрибут зависит не от первичного ключа своей таблицы, а от другого атрибута — нарушена третья нормальная форма, атрибут нужно вынести в отдельную сущность.

Подайте заявку —
забронируйте место в группе

45 000 мест на 2026 год. Бесплатное обучение по федеральному проекту «Активные меры содействия занятости»

  • Онлайн
  • От 2 месяцев
  • Бесплатно
  • Диплом
Учиться бесплатно
icon