top of page

database internals

Databases aren’t magic — let’s open the hood.

start:

Mar 31, 2026

25 занять

350 $/міс

we will donate to the Defense Forces

about the course

Як побудувати систему управління базами даних? Чому існує так багато різновидів СУБД, і щороку з’являються нові? Як насправді працюють primary key, join, order by? Як дані зберігаються на диску та які оптимізації застосовують сучасні системи? Якщо ви хочете отримати відповіді на ці та інші запитання про створення СУБД — цей курс для вас.


Протягом навчання ми розглянемо повний шлях побудови бази даних — від парсингу запитів до їх виконання та масштабування. Ви дізнаєтеся, які алгоритми та концепції лежать в основі сучасних СУБД, і на практиці створите власну.


Курс буде корисний тим, хто прагне глибше зануритися в системне програмування, користувачам СУБД, які хочуть зрозуміти внутрішні принципи роботи баз даних та навчитися ефективніше їх оптимізувати. Найкращий досвід навчання — з Rust або C++, адже вони дозволять глибше зануритися в архітектуру баз даних і краще відчути роботу з пам’яттю та продуктивністю на практиці, але це лише рекомендація.

curriculum
it will be hot

  • Від файлових систем, ієрархічних і мережевих моделей до реляційних баз даних
  • Революція реляційної моделі та її вплив на індустрію
  • Поява SQL, розвиток об’єктно-орієнтованих і NoSQL баз даних
  • Сучасні тенденції: хмарні, serverless, lakehouse та edge-бази даних
  • Основи парсингу запитів: токенізація, граматика SQL, побудова дерева синтаксичного розбору (AST)

Вступ до курсу. Історія баз даних. Парсинг SQL запитів

Токенізація, граматика SQL, побудова AST

  • Відношення, атрибути, кортежі та ключі
  • Первинні й зовнішні ключі. Забезпечення цілісності даних
  • Базові операції реляційної алгебри: селекція, проєкція, об’єднання, різниця, декартів добуток
  • З’єднання (join): внутрішні, зовнішні, натуральні
  • Властивості алгебри — комутативність, асоціативність. Роль алгебри як основи для оптимізації запитів

Реляційна модель. Реляційна алгебра.

Формальні основи реляційних СУБД та операції, що лежать під SQL

  • Сторінки й блоки як базові одиниці зберігання
  • Організація записів у сторінках: фіксованої та змінної довжини
  • Рядкове зберігання (row-store) та сфери його застосування
  • Фрагментація даних і методи дефрагментації

Основи сховища даних.

Як дані організовані на диску та в пам’яті, і чому це впливає на швидкодію

  • B-Tree і B+Tree: будова, алгоритми пошуку, вставки та видалення
  • LSM-дерева: принцип роботи лог-структурованих злиттів
  • Write/Read amplification і механізми compaction
  • Використання Bloom-фільтрів для прискорення пошуку

Індекси. B-tree та LSM.

Структури даних для прискорення пошуку, вставок і сканування діапазонів

  • Рядкове (row-oriented) vs колонкове (column-oriented) зберігання
  • Переваги колонкового підходу для аналітичних запитів
  • Методи стиснення даних: RLE, dictionary encoding, delta encoding
  • Гібридні HTAP-системи (Hybrid Transactional/Analytical Processing)
  • Формат PAX — поєднання переваг рядкового та колонкового підходів

Колонкові та гібридні сховища даних. Компресія

Ефективне зберігання аналітичних даних

  • Евристичні оптимізації: pushdown селекцій і проєкцій
  • Cost-based оптимізація: використання статистик і оцінка селективності
  • Стратегії з’єднань: nested loop, hash join, sort-merge join

Планування та оптимізація запитів.

Логічні плани (дерева реляційної алгебри)

  • Volcano (iterator) модель виконання
  • Векторизація: SIMD та обробка блоків значень
  • JIT-компіляція SQL-запитів

Виконання запитів. Векторизація планів. Компіляція SQL

Row-at-a-time vs batch-at-a-time підхід

  • Обробка NULL-значень
  • Явне та неявне приведення типів
  • Правила пріоритетів у виразах
  • Користувацькі (user-defined) типи
  • Напівструктуровані типи даних (JSON, XML тощо)

Типи даних. Система типів. Приведення типів.

Основні типи: числові, текстові, часові, логічні, бінарні

  • Проблеми конкурентності: dirty reads, phantom reads та інші
  • Рівні ізоляції транзакцій: Read Committed, Repeatable Read, Serializable тощо
  • 2PL (двохфазне блокування) та виявлення дедлоків
  • MVCC (multi-version concurrency control) і snapshot isolation

Транзакції та керування паралельним доступом

ACID-властивості транзакцій

  • Горизонтальне масштабування (шардинг)
  • Реплікація: синхронна й асинхронна; моделі master–slave і multi-leader
  • CAP-теорема та моделі узгодженості даних

Розподілені бази даних: масштабування та узгодженість

Протоколи 2PC і консенсусу (Paxos, Raft)

  • Serverless-бази даних
  • Відокремлення compute та storage шарів
  • Автоматизація та self-driving DBMS
  • Lakehouse-архітектура, agentic DBMS і Iceberg storage

Open-source бази даних. Сучасна архітектура та останні проблеми.

Використання ML для індексування, планування, тюнінгу

Презентація проектів та розбір досліджень.

Ви написали власну СУБД. Час презентувати :)

read by

Денис Цьоменко

Founding Engineer @Embucket

Former Software Engineer @CaspianDB @SingleStore @DataRobot @Microsoft

University lecturer @Kyiv School of Economics

Register. The first step is yours.

register
the first step is yours

I accept the terms of the Public Offer and consent to the processing of my personal data in accordance with the Privacy Policy.

reviews
What graduates say

What awaits you?
have fun and dive deep

формат, який працює

Постійний зворотний зв’язок у Slack. Жодних поверхневих слайдів: тільки глибокий розбір цікавих задач із реального продакшену.

Сертифікат видаємо лише за реальні результати — виконані домашки, участь у дискусіях, відчутний прогрес.

комунікація, яка тримає в тонусі

Зустрічаємось у Zoom двічі на тиждень — щопонедіка і щосереди о 19:00. Лекції тривають 1.5 години, кожна записується, тож ви завжди зможете передивитися матеріал у зручний час. Мова викладання — українська. Додаткові матеріали — англійською.

Slack — наш спільний простір. Тут обговорюємо задачі, ділимось підказками, пишемо хитрі тести й обговорюємо реферали в топ-компанії.

оточення, яке заряджає

Проводимо відбір, щоб ви навчалися в середовищі сильних і вмотивованих. Тих, хто не виконує домашки, — відраховуємо.

Лектор завжди на зв’язку — пояснить, доки не стане зрозуміло. Іноді це третя ітерація code review, іноді — залишаємося після лекції, щоб розібратись разом. Це нормально — ми тут, щоб вчитись і ставати сильнішими.

bottom of page