Методическое руководство для преподавателя

ОП.08 Основы проектирования баз данных — Занятие 07: Реляционная модель данных: таблицы и ограничения
Специальность: 09.02.06 Сетевое и системное администрирование
Курс / Семестр: 2 курс, 2 семестр
Регламент времени: 80 минут (основной) / 60 минут (сокращенный)
Тематический раздел: Тема 2. Взаимосвязи в моделях и реляционный подход к построению моделей (§2.2 с.7 программы)

1. Характеристика учебного занятия и методический контекст

Занятие №07 является фундаментом всего реляционного цикла дисциплины. После ознакомления с типами моделей данных на занятии №06 (иерархическая, сетевая, реляционная, NoSQL), студенты переходят к глубокому осмыслению математического аппарата реляционной модели данных (РМД), предложенной Эдгаром Коддом в 1970 году.

Ключевая дидактическая цель: преодолеть наивное бытовое восприятие базы данных как «набора табличек в Excel» и сформировать строгое математическое и инженерное понимание: отношение как множество уникальных кортежей над доменами, декларативная ссылочная целостность как гарант непротиворечивости и ограничения СУБД как первая линия защиты логики информационной системы.

Формируемые образовательные результаты:
  • Знания (З 1, З 2, З 3): математический фундамент РМД (отношение, кортеж, атрибут, домен, заголовок и тело, арность и мощность); 4 фундаментальных свойства отношений; 3 классических правила целостности (Entity Integrity, Referential Integrity, Domain/Semantic Integrity).
  • Умения (У 1): проектировать физические и логические структуры связанных таблиц с первичными и внешними ключами; задавать ограничения CHECK, NOT NULL, UNIQUE; корректно конфигурировать правила ссылочной целостности (CASCADE, RESTRICT, SET NULL, NO ACTION).
  • Компетенции: ОК 01 (выбирать оптимальные методы решения профессиональных задач), ОК 02 (использовать современные ИКТ), ОК 04 (профессиональное взаимодействие), ОК 09 (непрерывное профессиональное развитие), ПК 1.1–ПК 1.5 (проектирование реляционных схем БД).

2. Поминутный тайминг и режимы проведения (80 и 60 минут)

В зависимости от расписания учебной части СИЭУиП занятие проводится либо в основном регламенте (80 минут), либо в сокращенном режиме (60 минут). Ниже приведена детальная координация этапов:

Этап занятия Основной (80 мин) Сокращенный (60 мин) Методическое содержание и фокус внимания
1. Организационный момент и мотивация 5 минут (00:00–00:05) 5 минут (00:00–00:05) Приветствие, фиксация явки. Проблемная вводная: «Почему таблица в реляционной СУБД — это строго математическое множество, а не лист Excel со свободным порядком ячеек?». Постановка цели занятия.
2. Теоретический блок (объяснение нового) 35 минут (00:05–00:40) 25 минут (00:05–00:30) В 80-минутном регламенте: фундаментальный разбор понятий (отношение, тело/заголовок, домен, кортеж, степень/арность, мощность), 4 свойства отношений (1НФ, уникальность, порядок), детальный разбор целостности сущности, ссылочной и доменной (CHECK).
В 60-минутном регламенте: концентрированное сопоставление терминов (таблица = отношение, строка = кортеж, колонка = атрибут), фокус на Primary/Foreign Key и режимах каскадного удаления/запрета.
3. Демонстрация и закрепление (практика) 25 минут (00:40–01:05) 18 минут (00:30–00:48) Работа с интерактивным рабочим листом zanyatie.html по 4 отраслевым вариантам (Склад, Клиника, Автосервис, Онлайн-курсы). Проектирование пар связанных отношений, выбор естественных/суррогатных ключей, формулирование ограничений CHECK и режимов ссылочной целостности.
4. Анализ ошибок, подведение итогов, рефлексия 15 минут (01:05–01:20) 12 минут (00:48–01:00) Критериальная оценка по закрытой рубрике (4 балла), разбор типовых ошибок («висячие ссылки», отрицательные остатки, деление на 0), сохранение в LocalStorage / печать, инструктаж по резервному ДЗ domashnee_zadanie.html.

3. Фундаментальный понятийный аппарат реляционной модели

Преподавателю необходимо обеспечить строгость понятийного аппарата и параллельно связать абстрактную математическую терминологию РМД с практическими конструкциями SQL:

3.1. Терминологический мост

Теоретический термин РМД Практический эквивалент SQL Строгое научное определение
Отношение (Relation) Таблица (Table) Подмножество декартова произведения одного или нескольких доменов $D_1 \times D_2 \times \dots \times D_n$. Представляет собой двумерную поименованную структуру данных.
Кортеж (Tuple) Строка (Row / Record) Элемент отношения; упорядоченный набор значений атрибутов $\langle v_1, v_2, \dots, v_n \rangle$, где каждое $v_i \in D_i$. Описывает конкретный единичный экземпляр сущности.
Атрибут (Attribute) Столбец / Поле (Column) Именованная характеристика отношения, принимающая значения из определенного домена. Определяет роль домена в отношении.
Домен (Domain) Тип данных + Ограничения Множество всех допустимых потенциальных атомарных значений определенного типа (например, «строка из 17 символов VIN», «целое число $\ge 0$»).
Степень / Арность (Degree / Arity) Количество столбцов Число атрибутов в заголовке отношения ($n$-арное отношение: унарное, бинарное, тернарное...). Степень фиксируется при проектировании схемы (DDL).
Кардинальность / Мощность (Cardinality) Количество строк Число кортежей в теле отношения в текущий момент времени. Является динамической характеристикой, меняющейся при операциях INSERT и DELETE.
Заголовок (Relation Heading / Schema) Схема таблицы (DDL) Фиксированное множество упорядоченных пар $\langle \text{Имя атрибута}, \text{Имя домена} \rangle$: $H = \{ (A_1, D_1), (A_2, D_2), \dots, (A_n, D_n) \}$.
Тело отношения (Relation Body) Содержимое (Данные) Множество кортежей, удовлетворяющих заголовку отношения в текущий момент времени.

3.2. Фундаментальные свойства отношений

Отношение в РМД подчиняется законам теории множеств, из чего следуют 4 фундаментальных свойства:

  1. Отсутствие дубликатов кортежей (Уникальность): Поскольку тело отношения есть математическое множество, в нем не может существовать двух идентичных элементов. Из этого свойства вытекает обязательность наличия первичного ключа (Primary Key) в каждом отношении.
  2. Отсутствие упорядоченности кортежей (Порядок строк не имеет значения): Кортежи не имеют физических номеров «строка 1», «строка 2». Любая сортировка является исключительно свойством отображения пользовательского интерфейса (предложение ORDER BY в SQL).
  3. Отсутствие упорядоченности атрибутов (Порядок столбцов не имеет значения): Атрибуты адресуются по уникальным именам внутри заголовка, а не по номерам колонок.
  4. Атомарность значений атрибутов (Первая нормальная форма — 1НФ): Значение каждого атрибута в кортеже должно быть неделимым скалярным значением из соответствующего домена. Запрещаются списки, массивы, множества или вложенные таблицы внутри ячейки.

4. Ограничения целостности (Integrity Constraints)

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

4.1. Целостность сущности (Entity Integrity)

Правило целостности сущности: Ни один атрибут, входящий в состав первичного ключа (Primary Key), не может принимать неопределенное значение NULL, и значение первичного ключа обязано быть уникальным в пределах отношения.

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

4.2. Ссылочная целостность (Referential Integrity)

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

Ссылочная целостность исключает возникновение «висячих ссылок» (orphaned rows) — ситуаций, когда дочерняя запись ссылается на несуществующего родителя (например, начисление зарплаты несуществующему сотруднику или дефектовка удаленного автомобиля).

Действие при ON DELETE / ON UPDATE Механизм работы СУБД Пример бизнес-сценария
RESTRICT / NO ACTION СУБД блокирует операцию удаления/изменения родительской строки и возвращает ошибку, если есть хотя бы одна дочерняя ссылка. Нельзя удалить товар из каталога, пока по нему есть складские остатки или проведенные чеки.
CASCADE Удаление/обновление родительской строки автоматически каскадно удаляет/обновляет все связанные дочерние записи. Удаление студента из учебной системы автоматически удаляет все его сдачи домашних заданий.
SET NULL При удалении родительской записи значение внешнего ключа в дочерних строках автоматически заменяется на NULL. Удаление аккаунта куратора: у прикрепленных групп поле curator_id становится NULL (ожидает назначения нового).
SET DEFAULT Внешний ключ в дочерних строках заполняется значением по умолчанию (например, кодом дежурного оператора). Переназначение невыполненных задач на системного супервайзера по умолчанию.

4.3. Семантическая и доменная целостность (Domain / Semantic Integrity)

Определяет допустимость значений в конкретных полях на основе бизнес-логики предметной области:

5. Типовые ошибки студентов и педагогические приемы

Типовая ошибка студента В чем заключается непонимание Педагогический прием и контрпример
Отождествление таблицы с файлом Excel Студент считает, что порядок строк в таблице постоянен, и полагается на «первую строку» без сортировки ORDER BY. Прием «Хаос в мешке»: Продемонстрировать на доске, что реляционная таблица — это мешок с шарами (множество). СУБД возвращает строки в порядке физического чтения с диска, который может меняться после любого VACUUM или UPDATE.
Создание внешнего ключа не на уникальное поле Попытка связать дочернюю таблицу со столбцом родительской таблицы, который не является PRIMARY KEY или UNIQUE (например, внешний ключ на фамилию пациента). Контрпример «Однофамильцы»: Спросить группу: «В клинику пришли два Ивана Петровича Ивановых. Если рецепт выписан на фамилию "Иванов", кому из них ввести смертельную дозу антибиотика?». Показать, что FK обязан ссылаться строго на уникальный идентификатор.
Хранение нескольких значений в одной ячейке (нарушение 1НФ) Студент записывает список номеров телефонов или перечень симптомов через запятую в одно текстовое поле. Прием «Попробуй отфильтруй»: Попросить написать запрос для поиска людей с кодом оператора 902, если в поле phones лежит строка +7912..., +7902..., +7982.... Показать громоздкость строковых операций и неэффективность индексов.
Бездумное использование CASCADE ON DELETE Назначение каскадного удаления на финансовые или учетные таблицы (например, удаление товара удаляет всю историю складских проводок). Прием «Финансовая дыра»: Объяснить, что удаление карточки старого товара каскадно уничтожит баланс бухгалтерии за 5 лет. Для учетных систем стандартом является RESTRICT или «мягкое удаление» (Soft Delete через флаг is_active).

6. Критериальное оценивание и организация работы в аудитории

Оценка индивидуальной практической работы студентов проводится по закрытой 4-балльной шкале (подробно описанной в .rubrika.md):

Итог: 4 балла (отлично), 3 балла (хорошо), 2 балла (удовлетворительно), 0–1 балл (не зачтено).