8.5 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
- диаграммы
- таблицы
- входные данные (например, запросы)
- выходные данные (таблицы с выводом по вашим данным)
- Текстовое описание работы не подразумевается, только фиксация результата
- устная защита на лабораторной работе.
Лабораторная работа 2
Концептуальное проектирование базы данных
Цель
Построить логически корректную модель данных.
Содержание работы
Студент разрабатывает:
- ER-диаграмму;
- KB-диаграмму (ключи, ограничения, связи);
- описание атрибутов и доменов;
Студент должен понимать:
- семантику удаления и обновления данных.
Отчетные материалы
- ER-диаграмма;
- KB-диаграмма;
- таблица атрибутов и доменов;
Лабораторная работа 3
Функциональная модель системы
Цель
Понять, как данные используются в бизнес-процессах.
Содержание работы
- Студент строит FA-диаграмму
Отчетные материалы
- FA-диаграмма;
Лабораторная работа 4
Физическая реализация базы данных
Срок выполнения: 2 недели
Цель
Перевести логическую модель в реальную базу данных.
Содержание работы
Студент должен:
- разработать физическую схему БД (DDL);
- определить ограничения целостности;
- подготовить тестовые данные;
- автоматизировать пересоздание базы данных.
Отчетные материалы
- SQL-скрипт создания схемы;
- SQL-скрипт начального наполнения;
- скрипт генерации тестовых данных (Python или другой удобный вам язык);
- инструкция по запуску.
Лабораторная работа 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.
Отчетные материалы
- сценарии для нескольких сессий;
- пошаговое описание воспроизведения;
- выводы.