Бакалавриат
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