Конспект лекции: Анализ предметной области: связи и правила

Учебная дисциплина: ОП.08 Основы проектирования баз данных
Раздел программы (§2.2 с.7): Тема 1. Основные понятия баз данных
Тематический фокус: Концептуальное проектирование связей, нотации Chen и Crow's Foot, типы кардинальности, классы принадлежности, бизнес-правила и семантические ограничения.

1. Понятие связи между сущностями (Relationship)

В реальном мире объекты не существуют изолированно. Студенты обучаются в учебных группах, врачи принимают пациентов, покупатели оформляют заказы на товары. Если сущности представляют собой существительные предметной области («Кто?» или «Что?»), то связи (отношения, Relationships) представляют собой глаголы, связывающие эти сущности («Обучается в», «Принимает», «Оформляет»).

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

Связи обладают следующими фундаментальными характеристиками:

2. Нотации моделирования связей: Chen и Crow's Foot

В теории и практике баз данных исторически закрепились две ведущие графические нотации моделирования данных (ERD — Entity-Relationship Diagrams):

Характеристика Нотация Питера Чена (Chen Notation) Нотация «Воронья лапка» (Crow's Foot / Barker)
Автор и появление Питер Чен, 1976 г. (классическая академическая модель). Гордон Эверест и Ричард Баркер, 1980-е гг. (индустриальный стандарт).
Отображение сущности Прямоугольник с именем сущности. Прямоугольник, разделенный на секции (имя, первичный ключ, атрибуты).
Отображение связи Ромб (ромбический блок с глаголом связи), соединенный линиями. Прямая соединительная линия между блоками без ромба.
Отображение кардинальности Символьные метки над линиями: 1, M, N. Графические символы на концах линий: кольцо (0), черточка (1), вилка-«лапка» (M).
Область применения Концептуальный анализ предметной области на ранних этапах. Логическое и физическое проектирование реляционных баз данных (IDEF1X, CASE-средства).
Рис. 1. Адаптивная схема: Связь 1:M в нотации Chen (академическая) и Crow's Foot (индустриальная)
Нотация Питера Чена (Chen) ГРУППА СОДЕРЖИТ 1 M СТУДЕНТ Связь через ромб отношений Нотация Crow's Foot («Воронья лапка») ГРУППА PK id_group nazvanie СТУДЕНТ PK id_student FK group_id Прямая связь с графическими маркерами мощности В нотации Crow's Foot: || = строго один; |o = ноль или один; }o = ноль или много; }| = один или много.

3. Типы кардинальности связей и примеры

3.1. Связь «Один к одному» (1:1 / One-to-One)

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

3.2. Связь «Один ко многим» (1:M / One-to-Many)

Одному экземпляру сущности $A$ соответствует множество (от 0 до $M$) экземпляров сущности $B$, но каждому экземпляру сущности $B$ соответствует строго один экземпляр сущности $A$.

3.3. Связь «Многие ко многим» (M:N / Many-to-Many)

Одному экземпляру сущности $A$ может соответствовать множество экземпляров сущности $B$, и одновременно одному экземпляру сущности $B$ может соответствовать множество экземпляров сущности $A$.

Рис. 2. Декомпозиция связи M:N в две связи 1:M через связующую сущность
СТУДЕНТ PK: id_student fio, nomer_zachetki 1 : M УСПЕВАЕМОСТЬ PK, FK1: id_student PK, FK2: id_discipline ocenka, data_sdachi M : 1 ДИСЦИПЛИНА PK: id_discipline nazvanie, chasy Составной первичный ключ (id_student, id_discipline) гарантирует уникальность сдачи дисциплины студентом

4. Класс принадлежности сущности (Mandatory vs Optional)

Кардинальность указывает верхний предел мощности связи ($1$ или $M$). Класс принадлежности (модальность) указывает нижний предел ($0$ или $1$) — может ли сущность существовать независимо.

Золотое правило проектирования целостности: Если со стороны дочерней таблицы участие обязательно, соответствующее поле внешнего ключа обязано быть помечено NOT NULL. Если участие факультативно, во внешнем ключе разрешается значение NULL (например, у сотрудника может не быть назначенного руководителя при рекурсивной связи).

5. Рекурсивные (самоссылающиеся) связи

Рекурсивная связь (Recursive Relationship) возникает, когда сущность ассоциируется с самой собой. Экземпляры одной и той же сущности выступают в разных ролях.

6. Бизнес-правила (Business Rules) и семантические ограничения

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

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

Примеры семантических ограничений целостности:

  1. Темпоральные (временные) ограничения: «Пациент не может быть записан на прием к двум разным врачам на одно и то же время». СУБД должна контролировать непересечение интервалов времени приема.
  2. Балансовые и финансовые ограничения: «Сумма платежей по кредитному договору не может превышать сумму выданного кредита с учетом начисленных процентов».
  3. Ограничения емкости и физических ресурсов: «Количество зарегистрированных пассажиров на рейс не может превышать количество мест в салоне назначенного самолета».
  4. Статусные ограничения жизненного цикла: «Заказ нельзя перевести в статус "Выдан клиенту", минуя статус "Собран на складе"».

7. Вопросы для самопроверки

1. В чем главное концептуальное отличие нотации Chen от нотации Crow's Foot?
В нотации Чена связь всегда выделяется в самостоятельный ромбический блок с глаголом связи, а в Crow's Foot связь изображается соединительной линией с маркерами мощности на концах (вилка, черточки, кружок).
2. Почему связь M:N нельзя напрямую реализовать в реляционной СУБД?
В реляционной таблице поле должно быть атомарным (1-я нормальная форма). Нельзя в одну строку записать список внешних ключей. Поэтому связь M:N разбивается на две связи 1:M через промежуточную ассоциированную таблицу.
3. Что произойдет, если связь между Родителем и Ребенком сделать обязательной с обеих сторон?
Возникнет циклическая взаимная блокировка при вставке данных: запись родителя нельзя вставить без ID ребенка, а запись ребенка нельзя вставить без ID родителя. Поэтому со стороны родителя связь почти всегда факультативна.
4. Приведите пример рекурсивной связи в предметной области торгового предприятия.
Категории товаров в каталоге: категория «Ноутбуки» ссылается на родительскую категорию «Компьютерная техника» внутри той же таблицы категорий.