ER-диаграмма¶
ER-диаграмма (от англ. entity-relationship diagram, диаграмма «сущность — связь») — графическая модель предметной области, отражающая сущности (объекты реального мира), их атрибуты и связи между ними. Является основным инструментом концептуального проектирования реляционных баз данных и применяется в методологии ERM (Entity-Relationship Model), предложенной Питером Ченом в 1976 году.
¶История
Модель «сущность — связь» была предложена китайско-американским учёным Питером Ченом (Peter Chen) в статье 1976 года «The Entity-Relationship Model—Toward a Unified View of Data», опубликованной в журнале ACM Transactions on Database Systems. Чен предложил единый графический язык для описания данных, независимый от конкретной СУБД. В 1980-е годы модель получила широкое распространение в академической и практической среде, став стандартом де-факто для концептуального проектирования. На её основе разработаны расширения: расширенная ER-модель (EER), включающая наследование и обобщение, а также семейство нотаций — Chen, Crow's Foot, IDEF1X, UML-диаграммы классов.
¶Основные элементы
¶Сущности
Сущность — объект реального или мыслимого мира, о котором хранятся данные: сотрудник, товар, заказ, студент. На диаграмме обозначается прямоугольником. Различают:
- Сильные сущности — существуют независимо, имеют собственный первичный ключ (например, «Сотрудник»).
- Слабые сущности — существование зависит от другой сущности, идентифицируются связью идентификации (например, «Должность» в рамках «Сотрудника»).
¶Атрибуты
Атрибут — свойство сущности, отображаемое в виде эллипса или строки в таблице. Классификация:
| Тип атрибута | Описание | Пример |
|---|---|---|
| Простой | Делимый на составные части | Код |
| Составной | Состоит из нескольких компонентов | ФИО |
| Однозначный | Одно значение | Табельный номер |
| Многозначный | Несколько значений | Телефоны |
| Вычисляемый | Получается вычислением | Возраст |
| Ключевой (первичный) | Однозначно идентифицирует сущность | Идентификатор |
¶Связи
Связь — ассоциация между двумя или более сущностями, отображается ромбом. Типичные примеры: «Работает в», «Заказывает», «Учится». Связи классифицируются по численности:
- 1:1 — один к одному («Сотрудник — Паспорт»).
- 1:M (1:N) — один ко многим («Отдел — Сотрудники»).
- M:N (N:M) — многие ко многим («Студент — Курс»). В физической модели реализуется через промежуточную таблицу.
Дополнительно различают участие (обязательное или необязательное) и кардинальность — допустимое число связей на каждом конце.
¶Нотации
Существует несколько графических стандартов отображения ER-диаграмм:
- Нотация Чена — классическая: прямоугольники (сущности), ромбы (связи), эллипсы (атрибуты). Кардинальность обозначается «1», «M», «N».
- Crow's Foot («воронья лапка») — наиболее распространённая в инструментах CASE (ERwin, Oracle SQL Developer Data Modeler, dbForge Studio). Сущность — прямоугольник, связи — линии с «лапками» на концах.
- IDEF1X — нотация, стандартизированная в США для государственных проектов, с чётким разделением на неопределённые и определённые связи.
- UML-диаграмма классов — объектно-ориентированный подход, применяется в связке с ORM-фреймворками.
¶Построение
Разработка ER-диаграммы, как правило, выполняется в несколько этапов:
- Выделение сущностей — анализ предметной области, определение ключевых объектов.
- Определение атрибутов — свойства каждой сущности, выделение первичных ключей.
- Построение связей — ассоциации между сущностями, указание кардинальности и участия.
- Нормализация — устранение избыточности (1НФ → 2НФ → 3НФ).
- Логическая модель — преобразование ER-диаграммы в схему реляционных таблиц.
¶Применение
ER-диаграммы используются на этапе анализа и проектирования информационных систем, в документации на базы данных, при миграции данных и обучении. Инструменты построения: Microsoft Visio, Lucidchart, draw.io, ER/Studio, Enterprise Architect, а также встроенные средства СУБД (MySQL Workbench, pgAdmin, SQL Server Management Studio). В agile-разработке ER-диаграммы применяются в связке с подходами Data Vault и гибридным проектированием.
¶Источники
- Chen P. P.-S. The Entity-Relationship Model—Toward a Unified View of Data. — ACM Transactions on Database Systems, 1976.
- Teorey T. J., Lightstone S. S., Nadeau T. Database Modeling and Design: Logical Design. — 5th ed. — Morgan Kaufmann, 2011.
- Когаловский М. Р. Энциклопедия проектной деятельности. — М.: Финансы и статистика, 2004.
- Connolly T., Begg C. Database Systems: A Practical Approach to Design, Implementation, and Management. — Pearson, 2014.
