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

Дисциплина: ОП.08 Основы проектирования баз данных • Раздел: Тема 3. Этапы проектирования баз данных (§2.2 с.7 программы)
Тема: Практическое занятие №5: записи и логические условия (Занятие №17) • Аудиторная нагрузка: 2 академических часа

Настоящее руководство предназначено для преподавателей колледжа СИЭУиП и детально регламентирует методику подготовки и проведения практического занятия №5 по манипулированию кортежами данных (DML) и конструированию сложных предикатов с контролем трехзначной логики SQL (3VL).

1. Методическая концепция и целеполагание

Практическое занятие №5 является ключевым звеном в освоении реляционной парадигмы: оно переводит студентов от пассивного проектирования структуры таблиц (DDL) к активному управлению состоянием базы данных (DML). Главная дидактическая цель занятия — выработать у студентов профессиональную культуру безопасной работы с данными, научить алгоритмически выверять логические условия фильтрации и понимать внутренние механизмы СУБД при обработке трехзначной логики.

Дидактические задачи:

2. Детальный хронометраж занятия (80 и 60 минут)

Этап занятия Основной регламент (80 мин) Сокращенный регламент (60 мин) Ключевые методические фокусы
1. Оргмомент и мотивация 5 минут (00:00–00:05) 3 минуты (00:00–00:03) Кейс «Катастрофа без WHERE» (случайное обнуление цен на 150 000 товаров). Оглашение 4-балльной шкалы.
2. Актуализация опорных знаний 10 минут (00:05–00:15) 7 минут (00:03–00:10) Блиц-опрос: приоритеты NOT > AND > OR, отличие = NULL от IS NULL, парадокс UNKNOWN.
3. Теоретический инструктаж и эталон 15 минут (00:15–00:30) 10 минут (00:10–00:20) Демонстрация слайдов 1–14, 5-шаговый регламент DBA, демонстрация протокола «до/после» на экране.
4. Самостоятельная работа 35 минут (00:30–01:05) 28 минут (00:20–00:48) Работа в zanyatie.html по 4 вариантам. Проверка скобочной структуры и заполнение таблиц аудита.
5. Экспертная верификация 10 минут (01:05–01:15) 7 минут (00:48–00:55) Разбор коллизий: пропуск скобок при OR, сравнение = NULL, демонстрация слайда 15 с мемом xkcd Bobby Tables.
6. Итоги, рефлексия, ДЗ 5 минут (01:15–01:20) 5 минут (00:55–01:00) Выставление оценок по критериям (.rubrika.md), инструктаж по резервному ДЗ (domashnee_zadanie.html).

3. Фундаментальный теоретический базис занятия

3.1. Модификация кортежей DML и опасность отсутствия WHERE

В отличие от табличных процессоров типа MS Excel, где пользователь редактирует визуальные ячейки, в реляционной СУБД все изменения производятся над множеством кортежей через декларативную команду UPDATE. Секция WHERE задает характеристический предикат подмножества изменяемых строк. Если секция опущена, условие тождественно истинно, и СУБД выполняет тотальную перезапись всей таблицы.

3.2. Логические предикаты: AND, OR, NOT, BETWEEN, IN, LIKE/ILIKE, IS NULL

3.3. Трехзначная логика SQL (3VL: TRUE, FALSE, UNKNOWN)

Любая операция сравнения, оперирующая значением NULL, дает значение истинности UNKNOWN. В фильтрах WHERE и HAVING строка отбирается строго при значении TRUE. Значения FALSE и UNKNOWN приводят к отклонению строки.

Ключевой методический акцент: Разъяснить студентам разницу между предикатом WHERE hire_date IS NULL (двузначная логика, возвращает TRUE для пустых полей) и ошибочным WHERE hire_date = NULL (трехзначная логика, возвращает UNKNOWN для ВСЕХ строк без исключения).

3.4. Транзакционность и «Золотой регламент инженера БД»

Преподаватель должен привить студентам непреложный алгоритм выполнения деструктивных операций:

1) SELECT ... WHERE <условие>;          -- визуальный аудит выборки
2) BEGIN TRANSACTION;                   -- изолирование изменений
3) UPDATE ... WHERE <условие>;          -- применение изменений
4) Проверка Affected Rows;               -- сверка счетчика строк
5) COMMIT либо ROLLBACK;                -- фиксация или спасительный откат

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

Типовая ошибка студента Психолого-педагогическая причина Превентивный методический прием преподавателя
Запись условия WHERE brand = 'Toyota' OR 'Lexus' Перенос конструкции разговорной естественной речи в синтаксис языка SQL. Пояснить, что связка OR соединяет не слова, а полноценные логические предикаты (выражения, возвращающие TRUE/FALSE). Требовать записи brand = 'Toyota' OR brand = 'Lexus' либо применения IN ('Toyota', 'Lexus').
Пропуск скобок при объединении AND и OR Непонимание того, что AND имеет приоритет умножения, а OR — сложения. Аналогия с арифметикой: 2 + 3 * 4 != (2 + 3) * 4. Демонстрация на доске ложного срабатывания запроса на тестовых данных.
Сравнение со значением NULL через знак равенства (pole = NULL) Привычка из языков высокого уровня (Java, Python, C++), где разрешено x == null. Разбор сущности NULL как «неизвестности»: «Мы не знаем зарплату Иванова и не знаем зарплату Петрова. Равны ли они? Неизвестно (UNKNOWN)!». Введение правила: «Для NULL существует только оператор IS».
Неверный порядок аргументов в BETWEEN (BETWEEN 50 AND 5) Представление об операторе как о неупорядоченном интервале. Развертывание оператора в эквивалентную формулу: x >= 50 AND x <= 5. Наглядный вопрос: «Какое число одновременно больше 50 и меньше 5?».

5. Организация работы с дидактическим пакетом

Практическое занятие опирается на единый автономный цифровой комплекс: