Files
db2026/регламент.md
2026-02-18 11:23:14 +03:00

8.5 KiB
Raw Blame History

Регламент выполнения лабораторных работ

Общие требования

  1. Все решения должны быть логически согласованы между лабораторными работами.
  2. Изменение модели данных допускается, но должно быть аргументировано.
  3. Запрещается:
    1. копирование чужих схем и SQL-кода;
    2. использование ORM и автоматических генераторов схем;
    3. подмена логики БД логикой приложения;
    4. использование языковых моделей для выполнения пунктов ЛР.
  4. Все SQL-решения должны быть читаемыми, воспроизводимыми, корректно работающими на тестовых данных.
  5. Названия таблиц, полей и сущностей должны отражать их семантику.
  6. Разрешается использование языковых моделей для генерации массива тестовых данных.
  7. Незнание какого-либо метода в коде вашей лабораторной работы будет приравнено к нарушению пункта 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 запросов, среди которые должны использоваться:

  1. Сложный JOIN (3+ таблиц) с фильтрами и HAVING.
  2. Поиск отсутствующих данных (LEFT JOIN + IS NULL).
  3. Оконная функция с ROWS BETWEEN.
  4. Оконная функция смещения (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.

Отчетные материалы

  • сценарии для нескольких сессий;
  • пошаговое описание воспроизведения;
  • выводы.