Этап 1
Организационный момент и мотивация
5 минут
|
- Приветствует обучающихся, фиксирует явку в журнале.
- Формулирует вводную производственную проблему: стартап быстро растет, вчерашняя простая таблица пользователей сегодня должна поддерживать двухфакторную аутентификацию, мультивалютность и аудит.
- Задает проблемный вопрос: «Можно ли пересоздать таблицу на живой работающей базе с 500 000 клиентов?»
- Озвучивает тему занятия, регламент и цели работы.
|
- Готовятся к занятию, открывают учебные браузеры.
- Анализируют поставленный проблемный кейс.
- Выдвигают гипотезы о недопустимости потери данных и простоя сервиса при изменении структуры.
|
Этап 2
Актуализация опорных знаний
10 минут
|
- Проводит фронтальный экспресс-опрос по ранее изученным темам реляционной модели данных.
- Организует сравнительный анализ понятий: «В чем разница между схемой таблицы (метаданными) и телом таблицы (кортежами)?».
- Сравнивает команды манипулирования данными (DML:
SELECT, INSERT, UPDATE, DELETE) и команды определения структуры (DDL).
- Демонстрирует системный каталог PostgreSQL:
pg_class, pg_attribute, pg_constraint на слайде 2.
|
- Отвечают на вопросы преподавателя, сопоставляют категории SQL-операторов.
- Вспоминают ограничения целостности (PK, FK, UNIQUE, CHECK).
- Осознают, что команды DDL работают на уровне метаданных СУБД, а не отдельных строк.
|
Этап 3
Изучение нового материала
35 минут
|
- Демонстрирует презентацию (слайды 3–13).
- Разбирает полный синтаксис
CREATE TABLE с опцией IF NOT EXISTS, значениями DEFAULT и именованными ограничениями.
- Объясняет архитектуру сессионных временных таблиц
CREATE TEMPORARY TABLE и параметров ON COMMIT.
- Подробно раскрывает семейство команд
ALTER TABLE: добавление столбцов (ADD COLUMN), удаление (DROP COLUMN), переименование (RENAME), управление ограничениями (ADD/DROP CONSTRAINT).
- Разбирает конструкцию
USING при ALTER COLUMN TYPE как инструмент преобразования несовместимых форматов.
- Проводит сравнительный анализ
DROP TABLE с опциями CASCADE и RESTRICT. Подчеркивает опасность CASCADE в production.
- Демонстрирует архитектурную разницу между
TRUNCATE TABLE и DELETE ($O(1)$ против $O(N)$, сброс RESTART IDENTITY, влияние на WAL).
- Объясняет блокировку
AccessExclusiveLock и паттерн Zero-Downtime миграций (lock_timeout, NOT VALID + VALIDATE).
|
- Фиксируют ключевые синтаксические конструкции DDL в конспектах.
- Анализируют архитектурную разницу между сбросом таблицы через
TRUNCATE и построчным удалением DELETE.
- Разбирают пример вызова ошибки
cannot be cast automatically и применение выражения USING.
- Усваивают правила выполнения миграций без простоя продакшен-базы данных.
|
Этап 4
Первичное закрепление и практическая работа
20 минут
|
- Организует работу студентов с интерактивным рабочим листом
zanyatie.html.
- Распределяет обучающихся по 4 практическим сценариям:
- Вариант 1: Складской логистический терминал (CREATE TABLE, ADD COLUMN с DEFAULT, RENAME, DROP временной таблицы).
- Вариант 2: Гостиничный сервис (ALTER COLUMN TYPE с USING, именованный CHECK).
- Вариант 3: Банковская система (ADD FOREIGN KEY с RESTRICT, DROP CONSTRAINT, DROP TABLE CASCADE).
- Вариант 4: Образовательный портал (составной UNIQUE, TRUNCATE RESTART IDENTITY).
- Контролирует правильность написания DDL-команд, консультирует по синтаксису
USING и опциям каскадирования.
|
- Заполняют регистрационные поля (ФИО, группа) в рабочем листе.
- Выбирают назначенный вариант и составляют требуемые DDL-скрипты.
- Отвечают на вопросы аналитического блока самопроверки (различия TRUNCATE vs DELETE, поведение блокировок AccessExclusiveLock).
- Сохраняют результаты работы в локальное хранилище браузера (localStorage) и готовят отчет к проверке.
|
Этап 5
Подведение итогов, рефлексия и домашнее задание
10 минут
|
- Организует разбор типовых студенческих ошибок (пропуск USING, безымянные ограничения, путаница CASCADE и RESTRICT).
- Демонстрирует слайд 15 с интернет-мемом про Little Bobby Tables, подводя итог важности инженерной ответственности за структуру данных.
- Озвучивает критерии закрытой рубрики (максимум 4 балла).
- Инструктирует по резервному домашнему заданию
domashnee_zadanie.html.
|
- Участвуют в коллективном обсуждении допущенных неточностей.
- Проводят самооценку своего DDL-решения по критериям рубрики.
- Фиксируют требования и условия сдачи резервного домашнего задания.
|