Технологическая карта учебного занятия

ОП.08 Основы проектирования баз данных — Тема 5. Организация запросов SQL — Операторы манипулирования данными

Дисциплина ОП.08 Основы проектирования баз данных
Тематический раздел Тема 5 (§2.2 с.7–8 программы)
Порядковый номер Занятие №31 (4-й семестр)
Регламент времени 80 минут (основной) / 60 минут (сокращенный)

1. Цели и задачи занятия

Цель учебного занятия: Сформировать у обучающихся целостную систему профессиональных теоретических знаний и прикладных инженерных навыков по конструированию и оптимизации SQL-запросов манипулирования данными (DML): освоение синтаксических конструкций одиночной и пакетной вставки INSERT, вставки результатов выборки INSERT...SELECT, возврата сгенерированных значений RETURNING, атомарного разрешения конфликтов уникальности UPSERT (ON CONFLICT DO UPDATE/DO NOTHING с псевдотаблицей EXCLUDED), модификации строк UPDATE по предикату и соединениям FROM, селективного удаления DELETE, а также сравнительный анализ DELETE и TRUNCATE на уровне блокировок, MVCC и журнала WAL.

Комплекс образовательных задач:

Осваиваемые компетенции (ФГОС СПО 09.02.07):

Оснащение занятия и дидактические материалы:

2. Поминутный план и технологическая структура занятия

В таблице представлена поминутная технологическая карта с распределением учебного времени для основного 80-минутного регламента (двойной академический час) и сокращенного 60-минутного регламента занятия.

Этап занятия и хронометраж Дидактические цели этапа Деятельность преподавателя Деятельность обучающихся
1. Организационный момент и мотивация
80 мин: 5 мин
60 мин: 3 мин
Организация внимания группы, проверка готовности рабочего пространства, постановка проблемной мотивации через реальный производственный инцидент. Приветствует студентов, фиксирует присутствующих. Демонстрирует кейс из производственной практики: падение биллинговой системы из-за ошибочного запуска UPDATE без секции WHERE на 1.5 млн договоров. Формулирует тему урока, актуальность надежного манипулирования данными и цели занятия. Приветствуют преподавателя, занимают рабочие места, настраивают браузеры. Анализируют представленный кейс аварии, формулируют гипотезы причин сбоя, фиксируют тему занятия и цели в конспектах.
2. Актуализация опорных знаний
80 мин: 8 мин
60 мин: 5 мин
Актуализация базовых понятий реляционной модели: первичные и уникальные ключи, поведение автоинкремента, понятие транзакции ACID. Проводит экспресс-опрос по ранее изученному материалу: назначение ограничений PRIMARY KEY и UNIQUE, поведение автоинкрементных столбцов (SERIAL / GENERATED ALWAYS AS IDENTITY). Задает проблемный вопрос: «Что произойдет, если два параллельных потока одновременно попытаются вставить одну и ту же запись через предварительный SELECT?». Отвечают на вопросы преподавателя, вспоминают принципы ссылочной и сущностной целостности. Обсуждают проблему состояния гонки (Race Condition) при конкурентной вставке данных и приходят к выводу о необходимости встроенных механизмов СУБД.
3. Сообщение новых знаний: Теоретический блок
80 мин: 37 мин
60 мин: 27 мин
Формирование фундаментальных знаний по синтаксису и архитектуре DML-операторов: INSERT (single, batch, INSERT...SELECT), RETURNING, UPSERT (ON CONFLICT), UPDATE с FROM, DELETE vs TRUNCATE, влияние на WAL и индексы. Демонстрирует интерактивную презентацию (prezentaciya.html, слайды 2–14). Подробно раскрывает: 1) Синтаксис и возможности INSERT INTO (пакетная вставка multi-row, преимущества перед одиночными вставками); 2) Клаузу RETURNING для атомарного возврата ID и сгенерированных данных; 3) Механику UPSERT (ON CONFLICT DO UPDATE/DO NOTHING) и виртуальную псевдотаблицу EXCLUDED; 4) Модификацию UPDATE по предикату и через секцию FROM (Join-обновление); 5) Селективный DELETE и его отличие от TRUNCATE по уровням блокировок (ROW EXCLUSIVE vs ACCESS EXCLUSIVE), транзакционному журналу WAL и освобождению дискового пространства; 6) Внутреннее поведение MVCC и оптимизацию HOT (Heap-Only Tuples). Слушают лекционный материал преподавателя, конспектируют ключевые положения в тетрадях и электронных конспектах (lekciya.html). Задают уточняющие вопросы по семантике псевдотаблицы EXCLUDED, формуле слияния старых и новых остатков, механизму MVCC и поведению B-Tree индексов при частых обновлениях.
4. Разбор эталонного инженерного кейса
80 мин: 12 мин
60 мин: 10 мин
Практическая демонстрация выполнения сложных DML-запросов на живой базе данных через терминал psql/pgAdmin. На проекторе в терминале psql проводит «живое» тестирование сквозного сценария: 1) Выполняет пакетную вставку позиций склада с получением новых ID через RETURNING; 2) Проводит повторную вставку конфликтующего артикула с демонстрацией срабатывания UPSERT и пересчета суммарного остатка через EXCLUDED; 3) Сравнивает время выполнения и объем сгенерированного WAL при DELETE FROM большой таблицы и TRUNCATE TABLE. Наблюдают за демонстрацией преподавателя, сопоставляют синтаксис запросов с выводом терминала СУБД, фиксируют отличия в сообщениях СУБД (INSERT 0 5, UPDATE 1, TRUNCATE TABLE) и времени исполнения.
5. Первичное закрепление материала
80 мин: 12 мин
60 мин: 11 мин
Отработка практических навыков составления сложных DML-запросов в интерактивном рабочем листе студента. Инструктирует обучающихся по порядку работы с интерактивным рабочим листом zanyatie.html. Распределяет студентов по 4 прикладным вариантам: Вариант 1 — Складской учет (пакетный INSERT 5 позиций и UPSERT остатков); Вариант 2 — Медицинская клиника (UPDATE статуса по соединению с Оплатой, селективный DELETE отмененных записей старше 1 года с RETURNING); Вариант 3 — Банковский процессинг (INSERT INTO...SELECT в архив и массовый UPDATE процентов); Вариант 4 — Образовательный портал (UPSERT оценок и очистка неподтвержденных профилей). Консультирует студентов, следит за корректностью SQL-синтаксиса. Открывают интерактивный лист zanyatie.html, заполняют поля ФИО и учебной группы. Выбирают назначенный вариант, формулируют комплексные SQL-запросы модификации данных, проверяют корректность синтаксиса и обосновывают выбор операторов. Сохраняют результаты в браузере (LocalStorage).
6. Подведение итогов, рефлексия, ДЗ
80 мин: 6 мин
60 мин: 4 мин
Анализ качества усвоения материала, разбор типичных студенческих ошибок, эмоциональная рефлексия через тематический мем, выдача резервного задания. Демонстрирует слайд 15 презентации с культовым веб-комиксом Bobby Tables (xkcd #327), разъясняет важность параметризации запросов. Проводит экспресс-разбор наиболее частых неточностей (пропуск EXCLUDED в UPSERT, ошибка синтаксиса JOIN в UPDATE). Озвучивает критерии оценки по 4-балльной рубрике. Проводит инструктаж по резервному дистанционному заданию (domashnee_zadanie.html) и условиям его сдачи. Участвуют в рефлексивной дискуссии, анализируют мем со слайда 15 и осознают риски инъекций в DML-запросах. Проводят самопроверку выполненных заданий. Задают вопросы по резервному домашнему заданию, сохраняют копию рабочего листа в PDF.