ОП.08 Основы проектирования баз данных — Тема 4. Проектирование структур баз данных — Практическое занятие №10: управление проектом, этап 2
Цель занятия: Сформировать у обучающихся практические профессиональные умения по управлению жизненным циклом и эволюцией схемы реляционной базы данных: разработка версионированных миграций DDL (Flyway/Liquibase), реализация механизмов наката (migrate) и безопасного отката (rollback), обеспечение обратной совместимости при непрерывном развертывании (Zero-Downtime Deployment: паттерн Expand/Contract) и проведение регрессионного тестирования клиентского программного обеспечения.
Задачи занятия:
flyway_schema_history; разработать скрипты прямой и обратной миграции; реализовать этапы паттерна Expand/Contract; составить план регрессионного тестирования клиентских запросов.Оснащение занятия: Персональные компьютеры обучающихся под управлением ОС Linux/Windows, локальный автономный веб-комплект учебных материалов по занятию 28 (HTML5/CSS3/ES6 без внешних зависимостей), современный веб-браузер, мультимедийный проектор.
| Этап и время | Деятельность преподавателя | Деятельность обучающихся | Компетенции |
|---|---|---|---|
|
1. Организационный момент и мотивация 5 мин (00:00–00:05) |
Приветствует обучающихся, отмечает явку. Представляет проблемный мотивационный кейс: падение продакшн-сервиса на 4 часа из-за ручного удаления колонки администратором в разгар рабочего дня. Озвучивает тему этапа 2 и дидактические цели. | Приветствуют преподавателя, занимают рабочие места. Анализируют кейс аварии, делают вывод о недопустимости ручных правок схемы на боевых серверах (ClickOps/Ad-hoc DDL). | ОК 01, ОК 02 |
|
2. Актуализация знаний и теоретический разбор 15 мин (00:05–00:20) |
Демонстрирует слайды 2–11 презентации. Объясняет концепцию Database as Code, отличия Flyway от Liquibase, правила наименования файлов миграций (V/U/R), архитектуру и поля мета-таблицы flyway_schema_history, вычисление чек-сумм, алгоритм наката/отката и фазы паттерна Expand/Contract.
|
Слушают преподавателя, конспектируют структуру служебной таблицы версий и блок-схему наката миграций. Задают вопросы о причинах ошибки ValidateFailedException при модификации текста скрипта.
|
ПК 1.1, ПК 1.2 |
|
3. Демонстрация сквозного эталона 10 мин (00:20–00:30) |
На демонстрационном проекторе показывает рабочий процесс: накат baseline-схемы V1__baseline.sql, применение миграции V2__add_index.sql, анализ появления строк в flyway_schema_history, демонстрацию отката через U2__undo.sql и регрессионную проверку SELECT-запросов.
|
Наблюдают за демонстрацией, фиксируют эталонную последовательность действий и логику LIFO (зеркального порядка) для скрипта обратной миграции. | ПК 1.1, ПК 1.5 |
|
4. Практическая работа студентов в zanyatie.html 40 мин (00:30–00:70) |
Организует работу в интерактивном листе zanyatie.html. Распределяет студентов по 4 предметным вариантам (Складской комплекс, Гостиничный сервис, Банковский портал, Образовательный портал). Консультирует, контролирует корректность синтаксиса DDL, дефолтных значений для NOT NULL и формулировок регрессионных тестов.
|
Заполняют поля ФИО и группы, переключаются на назначенный вариант. Разрабатывают скрипт прямой миграции (V{N}), скрипт отката (U{N}), рассчитывают запись в журнал версий, описывают сценарии регрессионного теста и отвечают на вопросы самопроверки. Сохраняют данные в LocalStorage. | ПК 1.1, ПК 1.2, ПК 1.4, ПК 1.5 |
|
5. Подведение итогов, разбор ошибок, рефлексия 10 мин (00:70–00:80) |
Проводит фронтальный разбор типовых ошибок (пропуск DEFAULT у NOT NULL колонок, асимметричный откат, неполная фиксация метаданных). Демонстрирует слайд 15 с тематическим интернет-мемом Little Bobby Tables. Озвучивает оценки по 4-балльной рубрике. Дает инструктаж по резервному ДЗ. | Сравнивают свои решения с разобранными эталонами, оценивают правильность выполненных заданий. Экспортируют протокол в PDF. Задают уточняющие вопросы по резервному заданию. | ОК 01, ОК 03 |
| Этап и время | Деятельность преподавателя | Деятельность обучающихся | Компетенции |
|---|---|---|---|
|
1. Организационный момент и мотивация 4 мин (00:00–00:04) |
Приветствие, отметка явки. Экспресс-постановка проблемы: последствия несогласованных DDL-команд в распределенных системах. Озвучивание темы и целей пары. | Приветствуют преподавателя, настраиваются на интенсивную работу, открывают учебные материалы занятия 28. | ОК 01, ОК 02 |
|
2. Актуализация знаний и теоретический разбор 12 мин (00:04–00:16) |
Компактный разбор слайдов 2–11: принципы Flyway, метаданные flyway_schema_history, паттерн Expand/Contract и схема регрессионного контроля.
|
Слушают ключевые тезисы лекции, фиксируют в конспектах правила именования V/U-миграций и алгоритм Expand/Contract. | ПК 1.1, ПК 1.2 |
|
3. Демонстрация сквозного эталона 8 мин (00:16–00:24) |
Показ на экране симуляции миграции: накат V2__add_field.sql → проверка записи в мета-таблице → выполнение зеркального отката U2__undo.sql.
|
Следят за эталонным сценарием, запоминают требования к зеркальности отката и валидации обратной совместимости. | ПК 1.1, ПК 1.5 |
|
4. Практическая работа студентов в zanyatie.html 30 мин (00:24–00:54) |
Координирует самостоятельное выполнение заданий в рабочем листе zanyatie.html по назначенному варианту. Точечно консультирует отстающих обучающихся.
|
Выполняют практические задания своего варианта: написание прямых и обратных миграций, протоколирование в системную таблицу, разработка регрессионных тестов и самопроверка. | ПК 1.1, ПК 1.2, ПК 1.4, ПК 1.5 |
|
5. Подведение итогов, разбор ошибок, рефлексия 6 мин (00:54–00:60) |
Краткий разбор ключевых ошибок, показ слайда 15 с мемом xkcd, выставление оценок по рубрике, выдача инструктажа по резервному ДЗ. | Сохраняют рабочий лист, экспортируют отчет, фиксируют домашнее задание. | ОК 01, ОК 03 |