Настоящее руководство предназначено для преподавателей колледжа СИЭУиП и детально регламентирует методику подготовки и проведения практического занятия №5 по манипулированию кортежами данных (DML) и конструированию сложных предикатов с контролем трехзначной логики SQL (3VL).
Практическое занятие №5 является ключевым звеном в освоении реляционной парадигмы: оно переводит студентов от пассивного проектирования структуры таблиц (DDL) к активному управлению состоянием базы данных (DML). Главная дидактическая цель занятия — выработать у студентов профессиональную культуру безопасной работы с данными, научить алгоритмически выверять логические условия фильтрации и понимать внутренние механизмы СУБД при обработке трехзначной логики.
UPDATE, DELETE, INSERT); освоить построение составных предикатов со связками AND, OR, NOT и круглыми скобками; изучить семантику операторов BETWEEN, IN, LIKE/ILIKE, IS NULL; освоить математику трехзначной логики SQL (3VL: TRUE, FALSE, UNKNOWN); освоить регламент транзакционной безопасности (BEGIN TRANSACTION...ROLLBACK/COMMIT) и протоколирования состояния таблицы до и после изменений.| Этап занятия | Основной регламент (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). |
В отличие от табличных процессоров типа MS Excel, где пользователь редактирует визуальные ячейки, в реляционной СУБД все изменения производятся над множеством кортежей через декларативную команду UPDATE. Секция WHERE задает характеристический предикат подмножества изменяемых строк. Если секция опущена, условие тождественно истинно, и СУБД выполняет тотальную перезапись всей таблицы.
AND) выполняется строго раньше логического сложения (OR). Преподаватель обязан требовать обязательного заключения дизъюнкций в круглые скобки при их сочетании с другими связками.a <= x <= b). Нарушение порядка аргументов (BETWEEN 10 AND 5) приводит к тождественной лжи.NOT IN при наличии неопределенных значений в подзапросе или списке.% и _.
Любая операция сравнения, оперирующая значением NULL, дает значение истинности UNKNOWN. В фильтрах WHERE и HAVING строка отбирается строго при значении TRUE. Значения FALSE и UNKNOWN приводят к отклонению строки.
WHERE hire_date IS NULL (двузначная логика, возвращает TRUE для пустых полей) и ошибочным WHERE hire_date = NULL (трехзначная логика, возвращает UNKNOWN для ВСЕХ строк без исключения).
Преподаватель должен привить студентам непреложный алгоритм выполнения деструктивных операций:
1) SELECT ... WHERE <условие>; -- визуальный аудит выборки 2) BEGIN TRANSACTION; -- изолирование изменений 3) UPDATE ... WHERE <условие>; -- применение изменений 4) Проверка Affected Rows; -- сверка счетчика строк 5) COMMIT либо ROLLBACK; -- фиксация или спасительный откат
| Типовая ошибка студента | Психолого-педагогическая причина | Превентивный методический прием преподавателя |
|---|---|---|
Запись условия 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?». |
Практическое занятие опирается на единый автономный цифровой комплекс:
localStorage, защитой от случайного сброса через confirm() и оптимизацией под печать.