Этап 1
Организационный момент и мотивация
6 минут
|
- Приветствует студентов, фиксирует присутствующих в журнале.
- Озвучивает тему: «Практическое занятие №7: сортировка и фильтрация».
- Формулирует проблемный инженерный вопрос: «Почему при переходе на 10 000-ю страницу каталога интернет-магазина сервер баз данных начинает отвечать с задержкой в 15 секунд, хотя на первой странице ответ занимал 2 миллисекунды?».
|
- Готовят рабочие места, проверяют подключение к СУБД.
- Включаются в обсуждение проблемного вопроса, высказывают гипотезы о влиянии объема выборки, дискового чтения и механизма смещения OFFSET.
|
Этап 2
Актуализация знаний и алгоритмический базис
14 минут
|
- Проводит экспресс-опрос по реляционной природе порядка кортежей (аксиома неупорядоченности множества Кодда).
- Объясняет алгоритм внешней сортировки слиянием (External Merge Sort): фаза генерации серий (runs), слияние через турнирное дерево (Min-Heap).
- Разбирает роль параметра
work_mem и диагностику планов EXPLAIN ANALYZE (quicksort vs external merge Disk).
|
- Отвечают на вопросы о детерминизме выборки и опасности неявного порядка.
- Конспектируют схему внешней сортировки слиянием и шаги сброса серий на диск.
- Анализируют пример плана выполнения с деградацией дискового I/O.
|
Этап 3
Инструктаж: синтаксис, NULL, Collation и пагинация
16 минут
|
- Демонстрирует слайды 3–14 интерактивной презентации (
prezentaciya.html).
- Разбирает многоуровневый
ORDER BY, директивы NULLS FIRST / NULLS LAST и специфику диалектов (PostgreSQL vs MySQL).
- Показывает аномалию сортировки кириллицы (буква «Ё») при бинарном сопоставлении
COLLATE "C" и правила настройки ru_RU.UTF-8.
- Объясняет архитектурный переход от
LIMIT / OFFSET к Keyset Cursor пагинации.
- Инструктирует по структуре 4 практических кейсов в рабочем листе
zanyatie.html.
|
- Следят за разбором демонстрационных SQL-запросов.
- Фиксируют синтаксические конструкции явного позиционирования NULL.
- Открывают интерактивный лист
zanyatie.html, заполняют поля ФИО и группы, выбирают индивидуальный вариант.
|
Этап 4
Самостоятельная практическая работа
32 минуты
|
- Организует индивидуальное выполнение кейсов по 4 вариантам:
• Вариант 1: Каталог интернет-магазина электроники.
• Вариант 2: База авиарейсов аэропорта.
• Вариант 3: Реестр договоров страховой компании.
• Вариант 4: Электронный журнал оценок колледжа.
- Осуществляет текущий контроль, оказывает индивидуальные консультации по построению предикатов WHERE, правилу ESR и устранению сортировки на диске.
- Контролирует сохранение данных студентов в localStorage.
|
- Самостоятельно составляют SQL-запросы фильтрации с многоуровневой сортировкой по своему варианту.
- Обосновывают явное поведение NULLS FIRST/LAST, выбор локали Collation и порядок полей в составном индексе (ESR).
- Рассчитывают оптимизацию пагинации (переход на Keyset Cursor).
- Отвечают на вопросы блока самопроверки.
|
Этап 5
Разбор ошибок, рефлексия и оценивание
12 минут
|
- Организует фронтальный разбор типичных студенческих ошибок (пропуск первичного ключа в конце ORDER BY, недетерминированная пагинация, потеря SARGability из-за функций в WHERE).
- Демонстрирует слайд 15 с веб-комиксом Little Bobby Tables (xkcd #327), проводя параллель с инженерной культурой проектирования запросов.
- Оценивает работы по 4-балльной критериальной рубрике (
.rubrika.md).
- Инструктирует по сохранению результатов в PDF через нативную печать браузера и условиям сдачи резервного домашнего задания.
|
- Участвуют в коллективном обсуждении ошибок и сопоставляют свои решения с эталонами.
- Завершают оформление отчетов в
zanyatie.html, нажимают «Печать / Экспорт в PDF».
- Фиксируют информацию о резервном домашнем задании (
domashnee_zadanie.html).
|