Бакалавриат
2025/2026




Системы баз данных
Статус:
Курс по выбору (Прикладная математика и информатика)
Кто читает:
Базовая кафедра Яндекс
Где читается:
Факультет компьютерных наук
Когда читается:
3-й курс, 1, 2 модуль
Охват аудитории:
для своего кампуса
Язык:
русский
Кредиты:
5
Контактные часы:
56
Программа дисциплины
Аннотация
Современные web-приложения строятся, как правило, поверх каких-нибудь СУБД. СУБД позволяют разработчикам не думать о том, как хранить данные на диске и как их искать, как обеспечить конкурентный доступ сразу многим пользователям, как оптимальнее воспользоваться ресурсами железа. Все эти сложности скрыты за простым интерфейсом языка запросов, как правило какого-нибудь диалекта SQL. Тем не менее при построении высоконагруженных систем становится необходимым понимать, как работает СУБД и почему выполнение запросов занимает именно такое время. К тому же есть люди, которые пишут эти самые СУБД.Мы будем разбирать, как устроены СУБД изнутри: как хранить данные, как выполнять запросы, как реализовать транзакции. В Яндексе есть несколько команд, занимающихся разработкой СУБД или очень на них похожего: Postgres, ClickHouse, YDB и YT. В первую очередь курс рассчитан на тех, кто хочет присоединиться к этим командам, но также будет полезен и тем, кто собирается в своей работе использовать хранилища данных с доступом в реальном времени.Предполагается, что слушатели уже знакомы с понятиями алгоритмов во внешней памяти, многопоточным программированием, распределенными системами и умеют программировать на C++.
Цель освоения дисциплины
- Студенты изучат принципы и технологии построения СУБД
- Студенты познакомятся с различными классами СУБД
- Студенты получат практические навыки разработки различных частей СУБД
Планируемые результаты обучения
- Навык восстановления СУБД после сбоя
- Навык планирования и оптимизации запросов в СУБД
- Навык организации хранения данных в реляционной СУБД
- Знает примеры баз данных
- Знает про: Locks и latches, Page-cache операционной системы, Оптимизацию буферных пулов, Buffer pool replacement policies.
- Знает про индексы и хеш-таблицы.
- Знает про B+-деревья.
- Знает про сортировку и агрегацию.
- Знает про хранение данных.
- Знает про нормализацию в базах данных.
- Знает про план и модели выполнения запросов.
- Знает про оптимизацию запроса.
- Знает про проблемы durability и восстановление после сбоя.
Содержание учебной дисциплины
- Репликация. Шардирование. Распределенное выполнение запросов.
- Восстановление после сбоев.
- Транзакции. Типы изоляции. MVCC.
- Аналитические СУБД. OLAP. Колоночное хранение данных. Сжатие данных.
- Планирование и оптимизация запросов в СУБД. Часть 2.
- Планирование и оптимизация запросов в СУБД. Часть 1.
- Сортировка. Агрегация. Джойны.
- Архитектура современной СУБД. Стадии выполнения запроса.
- Индексы в СУБД. Структуры данных для хранения индексов (B+ Tree, HashTable). Часть 2.
- Индексы в СУБД. Структуры данных для хранения индексов (B+ Tree, HashTable). Часть 1.
- Пул страниц. Алгоритмы вытеснения страниц (FIFO, LRU, LRU-k).
- Организация хранения данных в реляционной СУБД. Страничная организация памяти. Блокировки. Часть 2.
- Организация хранения данных в реляционной СУБД. Страничная организация памяти. Блокировки. Часть 1.
- История СУБД. Реляционная алгебра. Язык SQL.
- Язык SQL. GROUP BY. JOINS. WINDOW FUNCTIONS.
- Введение в базы данных.
- Storage. Хранение данных.
- Буферный пул.
- Log-structured storage.
- Индексы. Хеш-таблицы.
- B+-деревья.
- Сортировка и агрегация.
- Joins.
- Выполнение запроса.
- Оптимизация запросов.
- Проблемы durability и восстановление после сбоя.
- Управление транзакциями.
- Распределенные базы данных.
Промежуточная аттестация
- 2025/2026 2nd module0.15 * Дз 1 + 0.15 * Дз 2 + 0.15 * Дз 3 + 0.15 * Дз 4 + 0.15 * Дз 5 + 0.25 * Дз 6
Список литературы
Рекомендуемая основная литература
- Базы данных : учеб. пособие, Кузин А.В., Левонисова С.В., 2010
- Базы данных : учебник для вузов, Советов, Б. Я., 2021
- Базы данных : учебник для вузов, Советов, Б. Я., 2022
- Базы данных. Проектирование моделей данных : учебник для вузов, Гринченко, Н. Н., 2024
- Базы данных. Проектирование, реализация и сопровождение. : теория и практика, Коннолли, Т., 2018