• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2026/2027

Разработка систем управления базами данных

Когда читается: 3-й курс, 1, 2 модуль
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 5
Контактные часы: 84

Программа дисциплины

Аннотация

Курс состоит из трех частей, в рамках которых будут получены ответы на следующие вопросы: Как хранить данные на диске? Как организовать данные и метаданные, чтобы поддерживать эффективный доступ? Как не испортить данные, если посреди запроса может отключиться питание? Как исполнять запросы при конкурентности, не нарушая физической и логической целостности данных? Каких гарантий может быть достаточно пользователю? Как достигать эффективного исполнения при слабых гарантиях? Какие структуры данных позволяют эффективно выполнять SQL запросы? Как эти структуры данных реализованы? В качестве домашних заданий необходимо будет на C++ реализовывать компоненты СУБД или структуры данных, используемые в СУБД. Курс будет полезен тем, кто заинтересован в системном программировании или просто хочет лучше понимать, как же устроены системы хранения данных.
Цель освоения дисциплины

Цель освоения дисциплины

  • Знать, как СУБД хранит данные; какие плюсы и минусы есть у разных способов организации данных.
  • Уметь отказоустойчиво сохранять данные.
  • Знать, какие структуры данных используются при исполнении запросов
  • Понимать, почему тот или иной запрос исполняется быстро или медленно.
  • Понимать, какие гарантии может предоставлять СУБД.
  • Знать, как предоставляемые гарантии сказываются на производительности.
  • Увидеть, как знания из алгоритмов и операционных систем применяются на практике.
Планируемые результаты обучения

Планируемые результаты обучения

  • Знать, как СУБД хранит данные; какие плюсы и минусы есть у разных способов организации данных.
  • Уметь отказоустойчиво сохранять данные.
  • Знать, какие структуры данных используются при исполнении запросов.
  • Понимать, почему тот или иной запрос исполняется быстро или медленно.
  • Понимать, какие гарантии может предоставлять СУБД.
  • Знать, как предоставляемые гарантии сказываются на производительности.
  • Увидеть, как знания из алгоритмов и операционных систем применяются на практике.
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Зачем нужны СУБД; Реляционная модель, язык SQL
  • Построчное хранение данных; Буферный пул
  • B-дерево; Log Structured Merge Tree
  • Колоночное хранение данных. Индексы. Фильтры
  • Concurrency Control 1; Concurrency Control 2
  • Concurrency Control 3; Concurrency Control 4
  • Журнал предзаписи; Восстановление СУБД
  • Хеш-таблицы; Сортировки
  • Алгоритмы Join; Исполнение запросов
  • Многопоточное B-дерево; Типы данных и функции
  • Распределенные транзакционные СУБД; Распределенные аналитические СУБД
  • Оптимизатор запросов, rule-based подход; Оптимизатор запросов, cost-based подход
  • Векторный поиск 1; Векторный поиск 2
  • Key-Value системы; HTAP системы
Элементы контроля

Элементы контроля

  • неблокирующий Домашнее задание
    Домашнее задание 1 * Написать SQL-запросы Выдается после недели 1 Домашнее задание 2 * Реализовать сериализацию кортежей * Реализовать B-дерево * Реализовать LSM-дерево Выдается после недели 3 Домашнее задание 3 * Реализовать колоночный формат хранения данных * Реализовать bloom-фильтры * Реализовать skiplists Выдается после недели 4 Домашнее задание 4 * Реализовать Lock Manager (поддерживает иерархические блокировки и deadlock detection) Выдается после недели 5 Домашнее задание 5 * Реализовать MVCC Выдается после недели 6 Домашнее задание 6 * Реализовать журнал предзаписи (WAL) * Реализовать протокол восстановления Выдается после недели 7 Домашнее задание 7 * Реализовать исполнение запросов: операторы join, group by, sort, having Выдается после недели 10 Домашнее задание 8 * Реализовать предсказания селективности от статистик * Реализовать подсчет статистик * Реализовать поиск оптимального плана Выдается после недели 12
  • неблокирующий Контрольная работа
    Контрольная работа проходит в письменной форме (в аудитории) Проходит после недели 13
  • неблокирующий Экзамен
  • неблокирующий Бонусные баллы
Промежуточная аттестация

Промежуточная аттестация

  • 2026/2027 2nd module
    Итог = Округление(0.5 * ДЗ + 0.25 * КР + 0.25 * Экз + Бонус), где ДЗ — оценка за домашние задания, КР — оценка за контрольную работу, Экз — оценка за экзамен, Бонус — бонусные баллы. Каждая задача из ДЗ имеет некоторый вес. Оценка за ДЗ = 10 * суммарный вес решенных задач / общий вес задач. Округляется только итоговая оценка, округление арифметическое. Автоматов не предусмотрено.
Список литературы

Список литературы

Рекомендуемая основная литература

  • 24314 - PostgreSQL изнутри - Е.Рогов - ДМК Пресс - 2022 - https://hse.alpinadigital.ru/document/24314 - Alpina
  • 9781492040309 - Alex Petrov - Database Internals : A Deep Dive Into How Distributed Data Systems Work - 2019 - O'Reilly Media - http://search.ebscohost.com/login.aspx?direct=true&db=nlebk&AN=2250514 - nlebk - 2250514

Рекомендуемая дополнительная литература

  • Petrov, A., & O’Reilly for Higher Education (Firm). (2019). Database Internals : A Deep Dive Into How Distributed Data Systems Work (Vol. First edition). Sebastopol, CA: O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=2250514

Авторы

  • Солдатова Татьяна Владимировна