6.4 KiB
6.4 KiB
Регламент выполнения лабораторных работ
Общие требования
- Все решения должны быть логически согласованы между лабораторными работами.
- Изменение модели данных допускается, но должно быть аргументировано.
- Запрещается:
- копирование чужих схем и SQL-кода;
- использование ORM и автоматических генераторов схем;
- подмена логики БД логикой приложения;
- использование языковых моделей для выполнения пунктов ЛР.
- Все SQL-решения должны быть читаемыми, воспроизводимыми, корректно работающими на тестовых данных.
- Названия таблиц, полей и сущностей должны отражать их семантику.
- Разрешается использование языковых моделей для генерации массива тестовых данных.
- Незнание какого-либо метода в коде вашей лабораторной работы будет приравнено к нарушению пункта 3.4. Сдача работы в таком случае останавливается.
Баллы за лабораторные работы:
- Сложность 2 из 5: Коэффициент 1.0
- Сложность 3 из 5: Коэффициент 1.1
- Сложность 4 из 5: Коэффициент 1.2
- Сложность 5 из 5: Коэффициент 1.3
Бонусные баллы, полученные от коэффициентов, могу быть добавлены к ответу на экзамене или баллам за КР по усмотрению преподавателя.
Формат сдачи
Каждая лабораторная работа сдается в формате:
- ссылка на Git-репозиторий со всеми материалами ЛР;
- создание отчета о выполнение ЛР в формате pdf, который может включать в себя:
- ссылку на git
- диаграммы
- таблицы
- входные данные (например, запросы)
- выходные данные (таблицы с выводом по вашим данным)
- Текстовое описание работы не подразумевается, только фиксация результата
- устная защита на лабораторной работе.
Лабораторная работа 5
Аналитические SQL-запросы
Срок выполнения: 2 недели
Цель
Освоить сложные запросы и аналитические возможности SQL.
Обязательные требования к запросам
Все запросы должны:
- использовать CTE;
- возвращать расширенный набор данных (не менее 7 строк вывода).
Необходимо реализовать 5 запросов, среди которые должны использоваться:
- Сложный JOIN (3+ таблиц) с фильтрами и HAVING.
- Поиск отсутствующих данных (LEFT JOIN + IS NULL).
- Оконная функция с
ROWS BETWEEN. - Оконная функция смещения (
LAG/LEAD).
Отчетные материалы
- SQL-код запросов;
- примеры выполнения;
краткое описание логики каждого запроса.
Лабораторная работа 6
Триггеры и хранимые процедуры
Срок выполнения: 4 недели
Цель
Реализовать бизнес-логику на уровне базы данных.
Требования
Необходимо реализовать:
- 2 триггера;
- 2 хранимые процедуры.
Триггеры и процедуры должны:
- реализовывать реальные бизнес-правила;
- обрабатывать негативные сценарии;
- корректно работать при множественных вставках.
Отчетные материалы
- SQL-код триггеров;
- SQL-код процедур;
- тестовые сценарии (позитивные и негативные);
- примеры выполнения.
Лабораторная работа 7
Оптимизация и анализ выполнения запросов
Цель
Изучить влияние индексов и структуры запросов на производительность.
Содержание работы
- согласовать с преподавателем 2 “сложных” запроса;
- снять планы выполнения
EXPLAIN (ANALYZE, BUFFERS)до индексов; - спроектировать индексы:
- составной,
- частичный,
- покрывающий;
- повторно снять планы;
- сравнить результаты.
Отчетные материалы
- планы выполнения до и после;
- таблица сравнения показателей;
- пояснение выбора индексов и join-стратегий.
Лабораторная работа 8 (дополнительная)
Транзакции и уровни изоляции
Цель
Понять принципы ACID и конкурентного доступа.
Содержание работы
Студент демонстрирует:
- non-repeatable read;
- phantom read;
- write skew;
- использование SAVEPOINT и ROLLBACK TO.
Отчетные материалы
- сценарии для нескольких сессий;
- пошаговое описание воспроизведения;
- выводы.