ER-модель базы данных¶
ER-модель (модель «сущность — связь», англ. Entity-Relationship model) — семантическая модель данных, описывающая структуру предметной области в виде сущностей, их атрибутов и связей между ними. Была предложена в 1976 году Питером Ченом и с тех пор стала основным инструментом концептуального проектирования реляционных баз данных. ER-модель не привязана к конкретной СУБД и служит промежуточным звеном между реальной предметной областью и логической схемой базы данных.
¶Основные элементы модели
¶Сущности
Сущность — это объект предметной области, который выделяется как самостоятельный и однородный: сотрудник, товар, заказ, автомобиль. Сущности принято обозначать прямоугольниками, а именовать в единственном числе существительным («Клиент», а не «Клиенты»).
Различают:
- Сильные сущности — существуют независимо, имеют собственный первичный ключ (например, «Студент»).
- Слабые сущности — существование зависит от другой сущности, их идентификация невозможна без родительской сущности (например, «Запись экзамена» зависит от «Студента» и «Дисциплины»). Обозначаются двойным прямоугольником.
¶Атрибуты
Атрибут — это свойство, характеристика сущности. Каждый атрибут описывает одно измерение объекта. Например, у сущности «Клиент» атрибутами могут быть фамилия, дата рождения, телефон, адрес.
Классификация атрибутов:
| Тип | Описание | Пример |
|---|---|---|
| Простой | Не разделяется на составные части | Пол |
| Составной | Разделяется на податрибуты | ФИО → фамилия, имя, отчество |
| Однозначный | Содержит одно значение | Дата рождения |
| Многозначный | Допускает несколько значений | Телефоны, навыки |
| Выводный | Вычисляется из других атрибутов | Возраст из даты рождения |
| Ключевой | Однозначно идентифицирует сущность | Табельный номер |
¶Связи
Связь — это ассоциация между двумя или более сущностями. Обозначается ромбом. Наиболее распространённые степени связей:
- 1:1 (один к одному) — один сотрудник руководит одним отделом.
- 1:M (один ко многим) — один клиент делает много заказов.
- M:N (многие ко многим) — студент изучает много дисциплин, дисциплину изучают много студентов.
Связи также классифицируют по участию: обязательное (сущность обязана участвовать в связи) и факультативное (участие необязательно). Для слабых сущностей используют идентифицирующую связь.
¶Диаграмма ER
Визуальное представление ER-модели — ER-диаграмма (ERD, от англ. Entity-Relationship Diagram). Первоначальная нотация Чена использовала прямоугольники, ромбы и овалы. Позже появились упрощённые варианты:
- Нотация Чена — классическая, с ромбами для связей и овалами для атрибутов.
- Нотация Мартина (crow's foot, «воронья лапка») — использует трёххвостые стрелки для отображения степени связей; наиболее популярна в CASE-инструментах.
- Нотация IDEF1X — стандартизированная нотация, применяемая в государственных и оборонных проектах.
- UML-диаграмма классов — в объектно-ориентированном проектировании часто заменяет ER-диаграмму.
¶Роль в проектировании баз данных
Процесс проектирования БД обычно включает три уровня абстракции:
- Концептуальный уровень — ER-модель описывает предметную область без привязки к технологии хранения. Результат — концептуальная схема.
- Логический уровень — ER-модель преобразуется в реляционную схему: сущности становятся таблицами, атрибуты — столбцами, связи — внешними ключами.
- Физический уровень — схема адаптируется под конкретную СУБД с учётом индексов, партиционирования и других механизмов.
¶Правила преобразования ER-модели в реляционную схему
- Каждая сущность превращается в таблицу; атрибуты становятся столбцами.
- Первичный ключ сущности становится первичным ключом таблицы.
- Связь 1:M реализуется через внешний ключ на стороне «многие».
- Связь M:N разбивается на промежуточную таблицу с внешними ключами обеих сторон.
- Связь 1:1 может быть реализована объединением таблиц или внешним ключом с уникальным ограничением.
- Многозначные атрибуты выносятся в отдельные таблицы (нормализация).
¶Пример
Рассмотрим предметную область «Интернет-магазин». Сущности: Покупатель, Заказ, Товар, Категория. Связи: Покупатель — 1:M — Заказ; Заказ — M:N — Товар (через промежуточную таблицу «Позиция заказа» с количеством); Категория — 1:M — Товар. Атрибуты Покупателя: идентификатор (ключ), email, имя, адрес доставки. Атрибуты Заказа: номер (ключ), дата, сумма, статус.
¶Достоинства и ограничения
Достоинства:
- Интуитивная визуальная нотация, понятная заказчику и разработчику.
- Независимость от СУБД и модели хранения.
- Опора на формальный аппарат теории множеств и реляционной алгебры.
- Широкая поддержка в инструментах проектирования (ERwin, Microsoft Visio, draw.io, dbdiagram.io).
Ограничения:
- Ориентирована преимущественно на структурные аспекты, слабо описывает поведение и бизнес-процессы.
- Не отражает ограничения целостности в полной мере (часть описывается текстом).
- Для объектно-ориентированных СУБД и NoSQL-систем требует адаптации.
¶Применение
ER-моделирование преподаётся в курсах баз данных и информационных систем, используется при разработке корпоративных информационных систем, банковских и учётных приложений, а также при аудите и реинжиниринге существующих схем. В России ER-диаграммы применяются при проектировании государственных информационных систем и в соответствии с методологиями, основанными на стандарте ISO/IEC 11179 для описания метаданных.
¶Источники
- Чен П. П. С. «The Entity-Relationship Model — Toward a Unified View of Data» // ACM Transactions on Database Systems, 1976.
- Коннолли Т., Бегг К. «Базы данных. Проектирование, реализация и сопровождение».
- Дейт К. Дж. «Введение в системы баз данных».
- Фатеев В. А. «Проектирование информационных систем».
