Перейти к содержанию

ERD – модель «сущность – связь»

Появилась1976, П. Чен
НотацииЧена, «воронья лапка», IDEF1X
Отвечает на вопросКакие данные хранить и как они связаны?
Сложностьсредняя

Описание

ERD (Entity-Relationship Diagram) описывает структуру данных предметной области: объекты (сущности), их характеристики (атрибуты) и связи между ними. Модель предложена П. Ченом в 1976 году [7]. Сегодня распространены нотации Чена (концептуальное моделирование) и «воронья лапка» (Crow's Foot) Г. Эверета, а также IDEF1X [12] – для логических и физических моделей баз данных.

В моделировании бизнес-процессов ERD отвечает на вопрос, о каких объектах процесс хранит информацию, и служит основой для проектирования базы данных автоматизируемой системы [20].

Когда применять: проектирование базы данных, согласование терминов предметной области, анализ информационных объектов процесса.

Ограничения: не описывает действия, последовательность и участников процесса.

Элементы нотации

Элемент Нотация Чена «Воронья лапка» Назначение
Сущность прямоугольник прямоугольник со списком атрибутов класс объектов: Клиент, Заказ
Атрибут овал строка внутри сущности свойство сущности
Первичный ключ подчёркнутый атрибут отметка PK уникальный идентификатор экземпляра
Внешний ключ – отметка FK ссылка на первичный ключ другой сущности
Связь ромб линия между сущностями с глаголом отношение между сущностями
Кардинальность 1, N, M у линий концы линии: черта – «один», «лапка» – «много», кружок – «необязательно» сколько экземпляров участвует в связи

Правила составления

  1. Сущности называются существительными в единственном числе.
  2. У каждой сущности определяется первичный ключ.
  3. Для каждой связи указываются кардинальность (1:1, 1:N, M:N) и обязательность участия.
  4. Связи «многие ко многим» на логическом уровне разрешаются промежуточной сущностью.
  5. Модель нормализуется (как правило, до третьей нормальной формы) – каждый факт хранится в одном месте.
  6. Вычисляемые значения хранятся, только если это оправдано: например, сумма заказа фиксируется на момент оформления, потому что цены товаров со временем меняются.

Пример: данные процесса обработки заказа (нотация «воронья лапка»)

Сущности и связи интернет-магазина; цена в «Позиции заказа» и сумма в «Заказе» хранятся на момент оформления. Диаграмма описана кодом в Mermaid [14].

erDiagram
    CUSTOMER["Клиент"] {
        int id PK
        string name "ФИО"
        string phone "телефон"
        string email "почта"
    }
    ORDER["Заказ"] {
        int id PK
        int customer_id FK
        date created_at "дата"
        string status "статус"
        decimal total "сумма"
    }
    ORDER_ITEM["Позиция заказа"] {
        int id PK
        int order_id FK
        int product_id FK
        int quantity "количество"
        decimal price "цена"
    }
    PRODUCT["Товар"] {
        int id PK
        string title "наименование"
        decimal price "цена"
        int stock "остаток"
    }
    PAYMENT["Платёж"] {
        int id PK
        int order_id FK
        decimal amount "сумма"
        date paid_at "дата оплаты"
    }
    DELIVERY["Доставка"] {
        int id PK
        int order_id FK
        int courier_id FK
        string address "адрес"
        date delivered_at "дата доставки"
    }
    COURIER["Курьер"] {
        int id PK
        string name "ФИО"
    }
    CUSTOMER ||--o{ ORDER : "оформляет"
    ORDER ||--|{ ORDER_ITEM : "содержит"
    PRODUCT ||--o{ ORDER_ITEM : "входит в"
    ORDER ||--o| PAYMENT : "оплачивается"
    ORDER ||--o| DELIVERY : "доставляется"
    COURIER ||--o{ DELIVERY : "выполняет"

Что видно и чего не видно

ERD показывает, что один клиент оформляет много заказов, заказ содержит одну или несколько позиций, а связь «многие ко многим» между заказами и товарами разрешена промежуточной сущностью «Позиция заказа». Как и когда эти данные появляются, по диаграмме понять нельзя.

Ссылки на источники

Номера совпадают с общим списком источников.

  • [7] Chen, P. P. The Entity-Relationship Model – Toward a Unified View of Data / P. P. Chen // ACM Transactions on Database Systems. – 1976. – Vol. 1, № 1. – P. 9–36.
  • [12] Integration Definition for Information Modeling (IDEF1X) : Federal Information Processing Standards Publication 184 / National Institute of Standards and Technology. – Gaithersburg, 1993. – URL: https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub184.pdf (дата обращения: 17.10.2026).
  • [14] Mermaid : diagramming and charting tool : сайт. – URL: https://mermaid.js.org (дата обращения: 17.10.2026).
  • [20] What Is an Entity Relationship Diagram? // Lucid : сайт. – URL: https://lucid.co/diagram/erd/tutorial (дата обращения: 17.10.2026).