1. Этап 1: Организационный момент и мотивационная беседа 80 мин: 7 мин / 60 мин: 5 мин
Преподаватель приветствует учебную группу, фиксирует явку в электронном журнале и выводит на экран заглавный слайд презентации.
Преподаватель:
«Здравствуйте, коллеги! На прошлом занятии мы научились выявлять ключевые сущности и атрибуты предметной области: Клиент, Заказ, Товар, Студент. Но представьте: если мы просто сложим все эти сущности в одну базу без правил взаимодействия, это будет напоминать склад, где все коробки сброшены в кучу. Что превращает разрозненные таблицы в согласованную информационную систему? Связи между ними и строгие бизнес-правила.
Представьте поликлинику. Может ли один врач одновременно принимать трех пациентов в одном кабинете? А может ли студент одновременно учиться в двух очных группах на одном курсе? Почему эти очевидные жизненные ограничения жизненно важно запрограммировать в структуре базы данных? Сегодня мы детально разберем, как формализовать связи, кардинальность и правила реального мира».
Обучающийся:
«Если в базе не будет ограничений, любой оператор сможет случайно записать двух людей на одно и то же время к врачу или продать один и тот же билет на самолет дважды, что приведет к реальному скандалу и финансовым убыткам!».
Преподаватель:
«Именно так! В информационных системах это называется нарушением целостности данных. На сегодняшнем уроке наша цель — освоить классификацию связей по кардинальности (1:1, 1:M, M:N), научиться различать обязательное и факультативное участие, а главное — формулировать нерушимые бизнес-правила и семантические ограничения. По итогам пары каждый из вас выполнит индивидуальный расчетный лист по своему варианту с максимальной оценкой в 4 балла».
2. Этап 2: Изложение нового теоретического материала 80 мин: 28 мин / 60 мин: 20 мин
Преподаватель переключает слайды презентации, параллельно выполняя графические построения маркером на аудиторной доске.
Преподаватель:
«Запишем базовое понятие: Связь (Relationship) — это поименованная логическая или содержательная ассоциация между двумя или несколькими сущностями. В ER-диаграммах используются две основные нотации: академическая нотация Питера Чена, где связь обозначается ромбом с глаголом связи, и индустриальная нотация «Воронья лапка» (Crow's Foot), где связь рисуется прямой линией со специальными значками на концах.
Ключевой характеристикой связи является ее кардинальность (мощность). Существуют три типа:
1. Один к одному (1:1): Экземпляру А соответствует ровно один экземпляр Б. Например, Гражданин и Номер паспорта. В реляционной таблице это поле внешнего ключа с ограничением UNIQUE NOT NULL.
2. Один ко многим (1:M): Один экземпляр А ассоциируется со множеством экземпляров Б, но каждый Б принадлежит ровно одному А. Например, одна Учебная группа содержит множество Студентов. Это основной кирпичик реляционных баз данных. Запомните священное правило архитектора: первичный ключ со стороны "Один" всегда мигрирует как внешний ключ в таблицу со стороны "Многие"!
3. Многие ко многим (M:N): Множеству экземпляров А соответствует множество экземпляров Б. Студенты и Дисциплины; Врачи и Пациенты.
А теперь главный реляционный закон: реляционные СУБД физически не поддерживают прямую связь M:N! В реляционной строке нельзя хранить массив ключей через запятую. Как мы решаем эту задачу? Мы выполняем декомпозицию связи M:N: вводим третью связующую таблицу (Junction Table) и разбиваем отношение на две связи 1:M».
Обучающийся:
«То есть между Студентом и Дисциплиной появляется таблица "Успеваемость", куда входят ID студента, ID дисциплины и сама оценка?».
Преподаватель:
«Именно! И пара (ID_студента, ID_дисциплины) формирует составной первичный ключ, гарантируя, что по одной дисциплине студент не получит две итоговые оценки в одну ведомость.
Теперь обратим внимание на класс принадлежности сущности (модальность):
Оно бывает обязательным (Mandatory, минимум 1) и факультативным (Optional, минимум 0).
Вопрос на логику: если в клинику устроился новый Врач, обязан ли он прямо в секунду внесения в базу данных иметь проведенный прием? Нет! Врач может быть в штате, но приемов еще не провел — со стороны Врача связь факультативна. А может ли существовать Прием без назначенного Врача? Категорически нет! Со стороны Приема участие строго обязательное. В SQL обязательность превращается в ограничение NOT NULL на внешний ключ.
И, наконец, перейдем к бизнес-правилам (Business Rules). Бизнес-правило — это формальное требование организации к данным. Например: "Сумма платежей по кредиту не может превышать сумму долга", или "Пациент не может быть записан к двум врачам на одно и то же время". Это семантические ограничения целостности, которые мы закладываем в архитектуру базы данных».
3. Этап 3: Демонстрация эталона системного анализа 80 мин: 15 мин / 60 мин: 10 мин
Преподаватель разбирает сквозной демонстрационный пример на доске, показывая образец заполнения каждого пункта практического бланка.
Преподаватель:
«Разберем эталонный кейс: "Информационная система городской библиотеки".
Шаг 1. Выделяем сущности: Читатель, Книга (экземпляр фонда) и событие Выдача.
Шаг 2. Анализ связей и кардинальности:
- Читатель — Выдача: связь 1:M (Один читатель совершает множество выдач; каждая выдача оформлена строго на одного читателя).
* Модальность: со стороны Читателя — факультативная (новый читатель только получил билет и книг не брал, 0..M); со стороны Выдачи — обязательная (нельзя выдать книгу в пустоту, 1..1).
- Книга — Выдача: связь 1:M (Конкретная книга многократно выдавалась в течение срока службы). Факультативная со стороны Книги, обязательная со стороны Выдачи.
- Читатель — Книга: концептуально M:N, логически декомпозирована через сущность Выдача.
Шаг 3. Формулирование бизнес-правил:
- БП-1: Каждая выдача оформляется строго на один зарегистрированный читательский билет.
- БП-2: Книга выдается на срок не более 30 календарных дней с правом однократного продления.
- БП-3: Читатель с просроченной задолженностью блокируется для новых выдач.
Шаг 4. Семантические ограничения целостности:
- Ограничение 1 (Уникальность экземпляра на руках): Экземпляр книги со статусом "На руках" не может быть повторно выдан другому читателю до фиксации даты возврата (проверка поля Дата_Возврата IS NULL).
- Ограничение 2 (Лимит фонда): Один читатель не может одновременно иметь на руках более 5 книг».
4. Этап 4: Самостоятельная работа обучающихся по вариантам 80 мин: 20 мин / 60 мин: 15 мин
Обучающиеся открывают интерактивный лист `zanyatie.html` на персональных компьютерах. Преподаватель напоминает распределение вариантов.
Преподаватель:
«Коллеги, открываем рабочий лист. Выбираем свой вариант:
- Вариант 1: Медицинский центр (Врач — Прием — Пациент).
- Вариант 2: Университетский учебный процесс (Студент — Группа — Дисциплина — Преподаватель).
- Вариант 3: Банковская система кредитования (Клиент — Кредитный договор — Платеж).
- Вариант 4: Авиаперевозки (Рейс — Самолет — Билет — Пассажир).
Ваша задача:
1. Четко определить сущности, связи, их кардинальность и класс принадлежности сущностей (2 балла).
2. Сформулировать 3 содержательных бизнес-правила предметной области (1 балл).
3. Выявить 2 семантических ограничения целостности (темпоральные, балансовые, ресурсные) (1 балл).
Все ваши изменения автоматически сохраняются в браузере. Приступайте к выполнению!».
Преподаватель осуществляет индивидуальный контроль, направляет студентов, напоминая о недопустимости "ошибки мгновенного среза".
5. Этап 5: Экспертный разбор типичных затруднений 80 мин: 6 мин / 60 мин: 6 мин
Преподаватель:
«Внимание на экран! Проходя по аудитории, я заметил две классические неточности:
Во-первых, в варианте 4 (Авиаперевозки) некоторые указали связь "Пассажир — Место" как 1:M, мотивируя тем, что пассажир летает много раз. Но обратите внимание: мы рассматриваем посадочный талон на конкретный рейс! На одном рейсе пассажир занимает ровно одно физическое кресло, и на это кресло не может сесть второй человек — в рамках рейса это жесткая связь 1:1.
Во-вторых, в варианте 3 (Банк) не путайте бизнес-правило с форматом поля: "Номер счета из 20 цифр" — это техническая маска, а правило — это "Сумма списания основного долга не может превышать начальную сумму кредита". Исправьте свои формулировки перед отправкой!».
6. Этап 6: Подведение итогов и рефлексия 80 мин: 4 мин / 60 мин: 4 мин
Преподаватель:
«Итак, сегодня мы сделали важнейший шаг от простого набора таблиц к осмысленному реляционному проектированию. Вы научились классифицировать связи, определять обязательность участия и формулировать бизнес-правила.
Нажмите кнопку "Печать / Сохранить в PDF" внизу страницы, сохраните файл и передайте на проверку.
Напоминаю: резервное дистанционное домашнее задание (`domashnee_zadanie.html`) выполняют только те обучающиеся, которым оно назначено индивидуально при пропуске пары. Всем спасибо за отличную работу!».