Database Systems 2023
Содержание
О курсе
Дисциплина нацелена на изучение принципов и технологий создания систем управления базами данных, знакомство с различными классами СУБД и получение практических навыков разработки СУБД. Будут затронуты такие темы: хранение данных на диске, выполнение запросов, джойны, агрегация, транзакции, восстановление после сбоев, репликация, шардирование. Дисциплина имеет практическую направленность и включает домашние задания по реализации различный частей СУБД.
Лекции проходят онлайн по понедельникам 16:20 - 17:40. Ссылка для подключения.
Семинары проходят онлайн по понедельникам 18:10 - 19:30. Ссылка для подключения.
Лекции и семинары будут записываться и выкладываться на Yandex Disk .
Курс читается для студентов 3-го курса в 3-4 модулях.
Лектор — Кита Максим Артемович (ClickHouse).
Полезные ссылки
Телеграм-канал курса: https://t.me/hse_db_announce.
Телеграм-чат курса: https://t.me/hse_db.
Github репозиторий с лекциями и материалами: https://github.com/kitaisreal/db-course-hse.
Лекции
План лекций:
- История СУБД. Реляционная алгебра. Язык SQL.
- Язык SQL. GROUP BY. JOINS. WINDOW FUNCTIONS.
- Организация хранения данных в реляционной СУБД. Страничная организация памяти. Блокировки. Часть 1.
- Организация хранения данных в реляционной СУБД. Страничная организация памяти. Блокировки. Часть 2.
- Пул страниц. Алгоритмы вытеснения страниц (FIFO, LRU, LRU-k).
- Индексы в СУБД. Структуры данных для хранения индексов (B+ Tree, HashTable). Часть 1.
- Индексы в СУБД. Структуры данных для хранения индексов (B+ Tree, HashTable). Часть 2.
- Архитектура современной СУБД. Стадии выполнения запроса.
- Сортировка. Агрегация. Джойны.
- Планирование и оптимизация запросов в СУБД. Часть 1.
- Планирование и оптимизация запросов в СУБД. Часть 2.
- Аналитические СУБД. OLAP. Колоночное хранение данных. Сжатие данных.
- Транзакции. Типы изоляции. MVCC.
- Восстановление после сбоев.
- Репликация. Шардирование. Распределенное выполнение запросов.
Семинары
После каждой лекции будет семинар, на котором будет на практике разбираться тема лекции.
Домашние задания
Всего будет 8 домашних заданий:
- Реализовать SQL запросы в хранилище данных.
- Реализовать Key-Value хранилище.
- Реализация 6 частей системы https://github.com/cmu-db/bustub, каждая часть системы является отдельным домашним заданием.
После дедлайна баллы за домашнее задание будут делиться на 2.
Экзамен
Не будет.
Правила выставления оценок
Предварительно.
ИТОГ = Мин(Округление((Баллы за домашние задания / Максимальные баллы за домашние задания) * 10)).