ER-диаграмма: как построить и оформить

Сущности, атрибуты, связи, мощность 1:1, 1:М и М:М, нотация «воронья лапка», переход от ER-модели к таблицам и типовые ошибки.

ER-диаграмма (сущность-связь) — это инфологическая модель: она описывает предметную область до того, как вы решите, в какой СУБД всё это хранить. В курсовой она идёт в разделе проектирования и должна согласовываться со схемой таблиц.

Три элемента

Мощность связи

ТипПримерКак реализуется в таблицах
1:1Сотрудник — Учётная записьВнешний ключ с UNIQUE в одной из таблиц
1:МГруппа — СтудентыВнешний ключ в таблице со стороны «многие»
М:МСтуденты — ПредметыОтдельная связующая таблица с двумя внешними ключами
Связь «многие ко многим» нельзя реализовать напрямую — только через промежуточную таблицу. Это самый частый вопрос на защите: «покажите, где у вас М:М и как вы её разрешили».
-- разрешение М:М
CREATE TABLE Успеваемость (
    student_id INT NOT NULL REFERENCES Студенты(id) ON DELETE CASCADE,
    predmet_id INT NOT NULL REFERENCES Предметы(id),
    ball       SMALLINT CHECK (ball BETWEEN 2 AND 5),
    data_sdachi DATE NOT NULL DEFAULT CURRENT_DATE,
    PRIMARY KEY (student_id, predmet_id)
);

Обязательность участия

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

Порядок построения

  1. Выпишите из описания предметной области все существительные — кандидаты в сущности.
  2. Отбросьте те, что являются лишь свойствами (например, «телефон» — атрибут, а не сущность).
  3. Определите атрибуты и первичные ключи, лучше суррогатные (id), если естественный ключ громоздкий.
  4. Проведите связи, подпишите их глаголами и проставьте мощность.
  5. Разрешите все М:М связующими сущностями.
  6. Проверьте, что каждая сущность достижима и нет «висящих» таблиц без связей.

Ошибки, которые ловят на защите

ОшибкаКак исправить
Связь М:М оставлена как естьВвести связующую сущность с составным ключом
Атрибут-список («телефоны» через запятую)Вынести в отдельную сущность 1:М
Нет ключей на диаграммеПодчеркнуть/пометить первичные ключи
ER-диаграмма расходится со схемой таблицПривести в соответствие — проверяют именно это
Сущность-справочник продублирована текстомЗаменить текстовые поля внешними ключами на справочник

Рисовать удобно в dbdiagram.io, draw.io или ER-редакторе вашей СУБД (например, MySQL Workbench умеет строить диаграмму по готовой базе и наоборот — генерировать SQL по диаграмме).

Частые вопросы

Чем ER-модель отличается от даталогической?

ER — независима от СУБД и описывает предметную область. Даталогическая модель — это уже конкретные таблицы, типы данных и ограничения выбранной СУБД.

Сколько сущностей нужно для курсовой?

Обычно достаточно 6-10 связанных таблиц, включая справочники и хотя бы одну связь М:М. Меньше — покажется слишком просто, больше — сложно защищать.

Читайте также

Сделаем работу по этой теме

Опишите задачу — ответим в течение 15 минут в личных сообщениях ВКонтакте, назовём срок и цену. Предоплаты за оценку нет.

  • Оценка заявки бесплатно
  • Правки по замечаниям преподавателя
  • Работы по всем техническим и IT-дисциплинам

Нажимая кнопку, вы соглашаетесь на обработку указанных данных для ответа на заявку.