Открыть сервисСервис

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. Нотация Чена — классическая: прямоугольники (сущности), ромбы (связи), эллипсы (атрибуты). Кардинальность обозначается «1», «M», «N».
  2. Crow's Foot («воронья лапка») — наиболее распространённая в инструментах CASE (ERwin, Oracle SQL Developer Data Modeler, dbForge Studio). Сущность — прямоугольник, связи — линии с «лапками» на концах.
  3. IDEF1X — нотация, стандартизированная в США для государственных проектов, с чётким разделением на неопределённые и определённые связи.
  4. UML-диаграмма классов — объектно-ориентированный подход, применяется в связке с ORM-фреймворками.

Построение

Разработка ER-диаграммы, как правило, выполняется в несколько этапов:

  1. Выделение сущностей — анализ предметной области, определение ключевых объектов.
  2. Определение атрибутов — свойства каждой сущности, выделение первичных ключей.
  3. Построение связей — ассоциации между сущностями, указание кардинальности и участия.
  4. Нормализация — устранение избыточности (1НФ → 2НФ → 3НФ).
  5. Логическая модель — преобразование 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.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru