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

Диаграмма сущность-связь

Диаграмма «сущность-связь» (ER-диаграмма, ERD, от англ. Entity-Relationship Diagram) — это тип диаграммы, используемый в области информационного моделирования и проектирования баз данных. Она представляет собой графическое описание предметной области, в котором выделяются ключевые объекты (сущности), их свойства (атрибуты) и логические взаимосвязи между ними (связи). ER-диаграммы служат основой для построения логической модели данных и последующей физической реализации реляционной базы данных.

История

Концепция модели «сущность-связь» была предложена американским учёным Питером Ченом (Peter Chen) в 1976 году в статье «The Entity-Relationship Model — Toward a Unified View of Data». Первоначальная нотация Чена (Chen notation) включала прямоугольники для сущностей, ромбы для связей и овалы для атрибутов. Впоследствии модель получила широкое распространение в системах автоматизированного проектирования баз данных (CASE-средствах) и была адаптирована в нескольких популярных нотациях, таких как Crow’s Foot (нотация Мартина), IDEF1X, нотация Баркера (Barker’s notation) и UML-диаграммы классов. В России и русскоязычной литературе ER-диаграммы активно используются в курсах по базам данных, а также в стандартах ГОСТ 34.602-89 и ГОСТ Р ИСО/МЭК 19761-2006 при описании информационных моделей.

Основные элементы

Сущность (Entity)

Сущность — это класс однотипных объектов, информация о которых должна храниться в базе данных. Каждая сущность имеет уникальное имя (обычно существительное в единственном числе) и набор атрибутов. На диаграмме сущность изображается в виде прямоугольника, внутри которого указывается её имя. Примеры сущностей: «Студент», «Книга», «Заказ», «Сотрудник».

Атрибут (Attribute)

Атрибут — это свойство или характеристика сущности, описывающая её состояние. Каждый атрибут имеет имя и тип данных (числовой, строковый, дата и т.д.). Атрибуты делятся на:

  • Ключевые (идентифицирующие) — уникально идентифицируют экземпляр сущности (первичный ключ). На диаграмме часто подчёркиваются или выделяются специальным символом.
  • Простые — неделимые (например, «Фамилия»).
  • Составные — состоящие из нескольких компонентов (например, «Адрес» может включать «Город», «Улицу», «Дом»).
  • Производные — вычисляемые на основе других атрибутов (например, «Возраст» вычисляется из «Даты рождения»).
  • Многозначные — могут содержать несколько значений для одного экземпляра (например, «Телефон» у сотрудника может быть несколько).

В нотации Чена атрибуты изображаются овалами, соединёнными с сущностью. В Crow’s Foot атрибуты перечисляются внутри прямоугольника сущности.

Связь (Relationship)

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

  • Один-к-одному (1:1) — одному экземпляру первой сущности соответствует не более одного экземпляра второй, и наоборот. Пример: «Студент» — «Студенческий билет».
  • Один-ко-многим (1:M) — одному экземпляру первой сущности соответствует несколько экземпляров второй, а каждому экземпляру второй — только один первой. Пример: «Группа» — «Студент».
  • Многие-ко-многим (M:N) — каждому экземпляру первой сущности соответствует несколько экземпляров второй, и наоборот. Пример: «Студент» — «Курс» (один студент может посещать несколько курсов, один курс — несколько студентов). В реляционной модели такая связь обычно реализуется через промежуточную таблицу.

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

Нотации (способы изображения)

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

НотацияАвтор / ИсточникОсобенности
ChenПитер Чен (1976)Прямоугольники для сущностей, ромбы для связей, овалы для атрибутов. Ключевые атрибуты подчёркиваются.
Crow’s Foot (Воронья лапка)Гордон Эверест (1986)Прямоугольники с перечнем атрибутов; связи обозначаются линиями с символами на концах («воронья лапка» для «многих», вертикальная черта для «одного», кружок для необязательности).
IDEF1XСтандарт США (ICAM)Используется в государственных и военных проектах. Сущности делятся на независимые (прямоугольник с острыми углами) и зависимые (прямоугольник со скруглёнными углами).
БаркераРичард Баркер (Oracle)Прямоугольники с атрибутами, ключевые атрибуты помечаются символом «#». Связи — линии с точками и чертами.
UMLOMGВ языке UML для моделирования данных используется диаграмма классов (Class Diagram), где сущности — классы, атрибуты — поля, связи — ассоциации с указанием множественности.

В современных CASE-средствах (например, ERwin Data Modeler, Draw.io, Lucidchart, Microsoft Visio) наиболее часто применяется нотация Crow’s Foot.

Процесс построения ER-диаграммы

  1. Определение сущностейвыделение основных объектов предметной области (например, для библиотеки: «Книга», «Читатель», «Выдача»).
  2. Определение атрибутов — для каждой сущности перечисляются её свойства (для «Книги»: ISBN, Название, Автор, Год издания).
  3. Выделение первичных ключей — выбор атрибута или набора атрибутов, уникально идентифицирующих экземпляр (например, ISBN для книги).
  4. Определение связей — установление логических отношений между сущностями с указанием кардинальности (1:1, 1:M, M:N) и обязательности.
  5. Нормализация — проверка модели на соответствие нормальным формам (обычно до 3-й нормальной формы) для устранения избыточности и аномалий.
  6. Верификация — проверка модели на соответствие требованиям предметной области.

Применение

ER-диаграммы широко применяются в:

  • Проектировании реляционных баз данных — как промежуточный этап между описанием предметной области и созданием схемы таблиц.
  • Документировании информационных систем — для наглядного представления структуры данных.
  • Обучении и курсовом проектировании — в дисциплинах «Базы данных», «Информационные системы».
  • Разработке корпоративных приложений — при интеграции нескольких подсистем (например, ERP-систем).
  • Реинжиниринге бизнес-процессов — для анализа и оптимизации данных.

Пример: ER-диаграмма для библиотеки

В качестве простого примера рассмотрим модель библиотечного учёта:

  • Сущности: «Книга» (ISBN, Название, Год), «Автор» (ID_Автора, Фамилия, Имя), «Читатель» (ID_Читателя, Фамилия, Имя, Телефон), «Выдача» (ID_Выдачи, Дата_выдачи, Дата_возврата).
  • Связи:
  • «Книга» — «Автор»: многие-ко-многим (одна книга может быть написана несколькими авторами, один автор может написать несколько книг). Реализуется через промежуточную сущность «Книга_Автор».
  • «Книга» — «Выдача»: один-ко-многим (одна книга может быть выдана несколько раз, но каждая выдача относится к одной книге).
  • «Читатель» — «Выдача»: один-ко-многим (один читатель может брать несколько книг, каждая выдача принадлежит одному читателю).

Критика и ограничения

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

Связь с другими моделями

ER-диаграмма является одним из этапов в методологии структурного проектирования баз данных. Она может быть преобразована в:

  • Логическую модель данных — с учётом нормальных форм.
  • Физическую модель данных — с указанием типов данных, индексов, ограничений.
  • Диаграмму классов UML — при объектно-ориентированном подходе.

Источники

  • Chen, P. P. (1976). The Entity-Relationship Model — Toward a Unified View of Data. ACM Transactions on Database Systems, 1(1), 9–36.
  • Гарсиа-Молина, Г., Ульман, Дж., Уидом, Дж. (2012). Системы баз данных. Полный курс. — М.: Вильямс.
  • Коннолли, Т., Бегг, К. (2010). Базы данных. Проектирование, реализация и сопровождение. — М.: Вильямс.
  • Стивенсон, Д. (2015). ER-диаграммы: руководство по нотации Crow’s Foot. — SmartDraw.
  • Стандарт IDEF1X (FIPS 184). National Institute of Standards and Technology, 1993.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →