Перейти к содержанию

Модель данных «сущность–связь»

Понятие ER-модели

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

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

Зачем нужна ER-модель

  • Позволяет отразить логическую структуру предметной области без технических деталей.
  • Помогает согласовать понимание данных между аналитиками, разработчиками и заказчиками.
  • Служит переходным звеном между анализом требований и построением логической модели данных.

Особенности ER-модели

  • Не зависит от конкретной СУБД.
  • Представляется в виде ER-диаграммы — графической схемы с сущностями, атрибутами и связями.
  • Может охватывать как основные объекты системы, так и их взаимосвязи, правила и ограничения.

В ER-модели важна не реализация, а смысловое содержание данных — она отвечает на вопрос «что хранить», а не «как хранить».


История появления и назначение

ER-модель была предложена в 1976 году американским учёным Питером Ченом (Peter Chen) в статье «The Entity-Relationship Model: Toward a Unified View of Data».

До появления ER-модели существовали только иерархические и сетевые модели, которые описывали данные в привязке к физическим структурам хранения. Это затрудняло анализ и проектирование, потому что бизнес-логика смешивалась с техническими деталями.

ER-модель стала первой полноценной концептуальной моделью данных, отделяющей описание предметной области от способа хранения данных.

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

  • стандартизации подходов к проектированию БД;
  • появлению CASE-средств для построения ER-диаграмм;
  • упрощению общения между аналитиками и разработчиками;
  • созданию реляционной модели и языков, основанных на ней (SQL).

Назначение ER-модели:

  • отразить ключевые объекты предметной области и их взаимосвязи;
  • сформировать основу для логической и физической моделей данных;
  • облегчить понимание структуры системы всеми участниками проекта;
  • выявить и устранить противоречия в требованиях на раннем этапе.

Сегодня ER-модель остаётся основным инструментом концептуального проектирования, применяемым практически во всех крупных проектах баз данных.


Основные элементы ER-модели

ER-модель строится из трёх ключевых компонентов: сущности, атрибуты и связи, а также включает дополнительные элементы, уточняющие их поведение.

Сущность (Entity)

  • Это объект предметной области, о котором необходимо хранить данные.
  • Каждая сущность имеет уникальное имя и описывается набором атрибутов.
  • Примеры: Студент, Преподаватель, Дисциплина, Заказ, Товар.
  • В ER-диаграммах изображается прямоугольником.

Виды сущностей:

  • Сильные (основные) — существуют самостоятельно (например, Студент).
  • Слабые — не могут существовать без другой сущности и зависят от неё (например, Экзамен зависит от Студента и Дисциплины).

Атрибут (Attribute)

  • Это свойство сущности, описывающее её характеристики.
  • Примеры: ФИО, Дата рождения, Название дисциплины, Цена.
  • В ER-диаграммах изображаются овалами, соединёнными с сущностью.

Виды атрибутов:

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

Связь (Relationship)

  • Это логическая ассоциация между двумя или более сущностями.
  • Показывает, как объекты взаимодействуют друг с другом.
  • Примеры: Студент зачислен на Дисциплину; Преподаватель ведёт Дисциплину.
  • В ER-диаграммах изображается ромбом, соединяющим сущности.

Характеристики связей:

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

Эти три элемента — сущности, атрибуты и связи — составляют основу ER-модели и позволяют описать любую предметную область в виде структурированной схемы.


Типы связей между сущностями

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

В ER-моделях различают несколько параметров связей:

По степени (количеству участвующих сущностей)

  • Унарные (рекурсивные) — связь сущности с самой собой (например, Сотрудник подчиняется Сотруднику).
  • Бинарные — между двумя сущностями (например, Студент зачислен на Дисциплину).
  • Тернарные и n-арные — между тремя и более сущностями (например, Студент сдаёт Экзамен по Дисциплине у Преподавателя).

По кратности (кардинальности)

Кардинальность указывает, сколько экземпляров сущности A могут быть связаны с одним экземпляром сущности B и наоборот.

  • 1:1 (один к одному)
    • Каждому экземпляру сущности A соответствует не более одного экземпляра сущности B.
    • Пример: каждый паспорт принадлежит только одному гражданину, и у гражданина только один паспорт.
  • 1:М (один ко многим)
    • Каждому экземпляру сущности A соответствует множество экземпляров сущности B, но у каждого B — только один A.
    • Пример: один преподаватель ведёт много дисциплин, но каждая дисциплина ведётся только одним преподавателем.
  • М:М (многие ко многим)
    • Несколько экземпляров сущности A могут быть связаны с несколькими экземплярами сущности B.
    • Пример: студенты изучают много дисциплин, и каждая дисциплина изучается многими студентами.

В реляционных БД связи М:М реализуются через промежуточную (связующую) таблицу.

По обязательности (participation)

  • Обязательные — участие в связи обязательно (например, каждый заказ должен быть связан с клиентом).
  • Необязательные — объект может существовать без связи (например, преподаватель может быть пока не назначен на дисциплину).

На ER-диаграммах обязательность обозначается сплошной или пунктирной линией, а кратность — числами (1, М) или символами (|, ○, > и т.д. в нотации Crow’s Foot).


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

ER-диаграмма — это графическое представление ER-модели, которое используется для наглядного отображения сущностей, атрибутов и связей между ними.

Основные графические обозначения

  • Сущности — прямоугольники с названием внутри.
  • Атрибуты — овалы, соединённые линиями с сущностями.
  • Ключевой атрибут — подчёркнут внутри овала.
  • Связи — ромбы, соединяющие сущности линиями.
  • Кардинальность связей — указывается цифрами (1, М) или символами (|, ○, >) около линий.

В расширенных нотациях (Crow’s Foot, IDEF1X, UML) атрибуты вписываются прямо внутрь сущностей, а связи показываются линиями с особыми символами на концах.

Правила оформления

  • Названия сущностей — существительные в единственном числе (Студент, Дисциплина).
  • Названия атрибутов — осмысленные, уникальные внутри сущности.
  • Названия связей — глаголы или действия (Зачислен, Преподаёт, Содержит).
  • Все сущности должны иметь хотя бы один ключевой атрибут.
  • Все связи должны быть подписаны и иметь указание кратности.
  • Не допускаются пересекающиеся или избыточные связи.

Логическая структура

  • Каждая связь соединяет не менее двух сущностей.
  • Если связь М:М, её нужно будет преобразовать в отдельную таблицу при переходе к реляционной модели.
  • ER-диаграмма должна отображать только логическую структуру данных, без технических деталей реализации.

Важная цель — сделать диаграмму понятной для всех участников проекта, а не только для разработчиков.


Пример ER-диаграммы

image.png

image.png

image.png

image.png


Применение ER-модели в проектировании БД

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

Роль в процессе проектирования

  • Помогает выявить ключевые объекты предметной области и определить, какие данные нужно хранить.
  • Позволяет структурировать информацию и выявить взаимосвязи между объектами.
  • Служит основой для построения логической и физической моделей данных.
  • Помогает обнаружить противоречия и пробелы в требованиях до начала реализации.

Этапы использования ER-модели

  1. Сбор и анализ требований — определение сущностей, атрибутов и бизнес-правил.
  2. Построение ER-диаграммы — визуализация предметной области в удобной для обсуждения форме.
  3. Согласование модели — проверка полноты и корректности модели с заказчиком и командой.
  4. Преобразование в логическую модель — разработка структуры таблиц, полей, ключей и связей.
  5. Переход к физическому проектированию — выбор типов данных, индексов, нормализация.

Преимущества применения

  • Улучшает коммуникацию между аналитиками, разработчиками и заказчиками.
  • Обеспечивает единое понимание структуры данных.
  • Позволяет масштабировать и развивать систему без потери целостности данных.
  • Уменьшает затраты на доработку и исправление ошибок на поздних этапах.

Использование ER-модели позволяет заложить прочную и логичную основу для всей будущей базы данных, что значительно повышает её качество и надёжность.