Бакалавриат
2024/2025
Системы баз данных
Статус:
Курс по выбору (Прикладная математика и информатика)
Направление:
01.03.02. Прикладная математика и информатика
Кто читает:
Базовая кафедра Яндекс
Где читается:
Факультет компьютерных наук
Когда читается:
3-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Лукьянчиков Алексей Сергеевич
Язык:
русский
Кредиты:
5
Программа дисциплины
Аннотация
Современные web-приложения строятся, как правило, поверх каких-нибудь СУБД. СУБД позволяют разработчикам не думать о том, как хранить данные на диске и как их искать, как обеспечить конкурентный доступ сразу многим пользователям, как оптимальнее воспользоваться ресурсами железа. Все эти сложности скрыты за простым интерфейсом языка запросов, как правило какого-нибудь диалекта SQL. Тем не менее при построении высоконагруженных систем становится необходимым понимать, как работает СУБД и почему выполнение запросов занимает именно такое время. К тому же есть люди, которые пишут эти самые СУБД.Мы будем разбирать, как устроены СУБД изнутри: как хранить данные, как выполнять запросы, как реализовать транзакции. В Яндексе есть несколько команд, занимающихся разработкой СУБД или очень на них похожего: Postgres, ClickHouse, YDB и YT. В первую очередь курс рассчитан на тех, кто хочет присоединиться к этим командам, но также будет полезен и тем, кто собирается в своей работе использовать хранилища данных с доступом в реальном времени.Предполагается, что слушатели уже знакомы с понятиями алгоритмов во внешней памяти, многопоточным программированием, распределенными системами и умеют программировать на C++.
Цель освоения дисциплины
- Студенты изучат принципы и технологии построения СУБД
- Студенты познакомятся с различными классами СУБД
- Студенты получат практические навыки разработки различных частей СУБД
Планируемые результаты обучения
- Навык восстановления СУБД после сбоя
- Навык планирования и оптимизации запросов в СУБД
- Навык организации хранения данных в реляционной СУБД
- Знает примеры баз данных
- Знает про: Locks и latches, Page-cache операционной системы, Оптимизацию буферных пулов, Buffer pool replacement policies.
- Знает про индексы и хеш-таблицы.
- Знает про B+-деревья.
- Знает про сортировку и агрегацию.
- Знает про хранение данных.
- Знает про нормализацию в базах данных.
- Знает про план и модели выполнения запросов.
- Знает про оптимизацию запроса.
- Знает про проблемы durability и восстановление после сбоя.
Содержание учебной дисциплины
- Введение в базы данных.
- Storage. Хранение данных.
- Буферный пул.
- Log-structured storage.
- Индексы. Хеш-таблицы.
- B+-деревья.
- Сортировка и агрегация.
- Joins.
- Выполнение запроса.
- Оптимизация запросов.
- Проблемы durability и восстановление после сбоя.
- Управление транзакциями.
- Распределенные базы данных.
Промежуточная аттестация
- 2024/2025 2nd moduleОценка за курс ставится исходя из накопленных баллов за домашние задания: Набравшие 80% от всей суммы баллов получают отлично (10 баллов). Набравшие 70% от всей суммы баллов получают хорошо (7 баллов). Набравшие 60% от всей суммы баллов получают зачёт (5 баллов). Набравшие менее 60% от всей суммы получают незачёт (3 балла).
Список литературы
Рекомендуемая основная литература
- Базы данных : учеб. пособие, Кузин А.В., Левонисова С.В., 2010
- Базы данных : учебник для вузов, Советов, Б. Я., 2021
- Базы данных : учебник для вузов, Советов, Б. Я., 2022
- Базы данных. Проектирование моделей данных : учебник для вузов, Гринченко, Н. Н., 2024
- Базы данных. Проектирование, реализация и сопровождение. : теория и практика, Коннолли, Т., 2018