Database Systems 2022

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

О курсе

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

Лекции проходят онлайн по понедельникам 19:40-21:00. Ссылка для подключения.

Лекции и семинары будут записываться и выкладываться на youtube.

Курс читается для студентов 3-го курса в 3-4 модулях.

Лектор — Кита Максим Артемович (ClickHouse)

Семинарист — Михайлов Никита Николаевич (ClickHouse)

Полезные ссылки

Телеграм-канал курса: https://t.me/hse_db_announce.

Телеграм-чат курса: https://t.me/hse_db.

Github репозиторий с лекциями и материалами: .

Лекции

План лекций:

  1. История СУБД. Реляционная алгебра. Язык SQL.
  2. Язык SQL. GROUP BY. JOINS. WINDOW FUNCTIONS.
  3. Организация хранения данных в реляционной СУБД. Страничная организация памяти. Блокировки. Часть 1.
  4. Организация хранения данных в реляционной СУБД. Страничная организация памяти. Блокировки. Часть 2.
  5. Пул страниц. Алгоритмы вытеснения страниц (FIFO, LRU, LRU-k).
  6. Индексы в СУБД. Структуры данных для хранения индексов (B+ Tree, HashTable). Часть 1.
  7. Индексы в СУБД. Структуры данных для хранения индексов (B+ Tree, HashTable). Часть 2.
  8. Архитектура современной СУБД. Стадии выполнения запроса.
  9. Сортировка. Агрегация. Джойны.
  10. Планирование и оптимизация запросов в СУБД. Часть 1.
  11. Планирование и оптимизация запросов в СУБД. Часть 2.
  12. Аналитические СУБД. OLAP. Колоночное хранение данных. Сжатие данных.
  13. Транзакции. Типы изоляции. MVCC.
  14. Восстановление после сбоев.
  15. Репликация. Шардирование. Распределенное выполнение запросов.

Семинары

После каждой лекции будет семинар, на котором будет на практике разбираться тема лекции.


Домашние задания

Всего будет 8 домашних заданий:

  1. Реализовать SQL запросы в хранилище данных.
  2. Реализовать Key-Value хранилище.
  3. Реализация 6 частей системы https://github.com/cmu-db/bustub, каждая часть системы является отдельным домашним заданием.

После дедлайна баллы за домашнее задание будут делиться на 2.

Экзамен

Не будет.

Правила выставления оценок

Предварительно.

ИТОГ = Мин(Округление((Баллы за домашние задания / Максимальные баллы за домашние задания) * 10)).