Диаграмма сущность-связь
Диаграмма «сущность-связь» (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) | Прямоугольники с атрибутами, ключевые атрибуты помечаются символом «#». Связи — линии с точками и чертами. |
| UML | OMG | В языке UML для моделирования данных используется диаграмма классов (Class Diagram), где сущности — классы, атрибуты — поля, связи — ассоциации с указанием множественности. |
В современных CASE-средствах (например, ERwin Data Modeler, Draw.io, Lucidchart, Microsoft Visio) наиболее часто применяется нотация Crow’s Foot.
Процесс построения ER-диаграммы
- Определение сущностей — выделение основных объектов предметной области (например, для библиотеки: «Книга», «Читатель», «Выдача»).
- Определение атрибутов — для каждой сущности перечисляются её свойства (для «Книги»: ISBN, Название, Автор, Год издания).
- Выделение первичных ключей — выбор атрибута или набора атрибутов, уникально идентифицирующих экземпляр (например, ISBN для книги).
- Определение связей — установление логических отношений между сущностями с указанием кардинальности (1:1, 1:M, M:N) и обязательности.
- Нормализация — проверка модели на соответствие нормальным формам (обычно до 3-й нормальной формы) для устранения избыточности и аномалий.
- Верификация — проверка модели на соответствие требованиям предметной области.
Применение
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 →