Database Internals NEW
Databases aren’t magic — let’s open the hood.
350 $/місяць
пн / ср, 19:00 (UTC+3)
старт:
3 серп. 2026 р.
// 25 занять, 3 місяці
350 $/місяць
пн / ср, 19:00 (UTC+3)

про курс
Як побудувати систему управління базами даних? Чому існує так багато різновидів СУБД, і щороку з’являються нові? Як насправді працюють primary key, join, order by? Як дані зберігаються на диску та які оптимізації застосовують сучасні системи? Якщо ви хочете отримати відповіді на ці та інші запитання про створення СУБД — цей курс для вас.
Протягом навчання ми розглянемо повний шлях побудови бази даних — від парсингу запитів до їх виконання та масштабування. Ви дізнаєтеся, які алгоритми та концепції лежать в основі сучасних СУБД, і на практиці створите власну.
Курс буде корисний тим, хто прагне глибше зануритися в системне програмування, користувачам СУБД, які хочуть зрозуміти внутрішні принципи роботи баз даних та навчитися ефективніше їх оптимізувати. Найкращий досвід навчання — з Rust або C++, адже вони дозволять глибше зануритися в архітектуру баз даних і краще відчути роботу з пам’яттю та продуктивністю на практиці, але це лише рекомендація.
Навчальний план
буде гаряче
ДЛЯ ІНЖЕНЕРІВ
Історія баз даних
Шлях від файлових систем до сучасних сховищ даних
• Перші моделі СУБД: Ієрархічна, Мережева
• Революція реляційної моделі та її вплив на індустрію
• Поява SQL, розвиток об’єктно-орієнтованих і NoSQL баз даних
Основи сховища даних
Як дані організовані на диску та в пам’яті, і чому це впливає на швидкодію
• Сторінки й блоки як базові одиниці зберігання
• Організація записів у сторінках: фіксованої та змінної довжини
• Рядкове зберігання (row-store) та сфери його застосування
• Фрагментація даних і методи дефрагментації
Індекси. B-tree та LSM
Структури даних для прискорення пошуку, вставок і сканування діапазонів
• B-Tree і B+Tree: будова, алгоритми пошуку, вставки та видалення
• LSM-дерева: принцип роботи лог-структурованих злиттів
• Write/Read amplification і механізми compaction
• Використання Bloom-фільтрів для прискорення пошуку
Колонкові та гібридні сховища даних. Компресія
Ефективне зберігання аналітичних даних
• Рядкове (row-oriented) vs колонкове (column-oriented) зберігання
• Переваги колонкового підходу для аналітичних запитів
• Методи стиснення даних: RLE, dictionary encoding, delta encoding
• Гібридні HTAP-системи (Hybrid Transactional/Analytical Processing)
• Формат PAX — поєднання переваг рядкового та колонкового підходів
Реляційна модель. Реляційна алгебра
Формальні основи реляційних СУБД та операції, що лежать під SQL
• Відношення, атрибути, кортежі та ключі
• Первинні й зовнішні ключі. Забезпечення цілісності даних
• Базові операції реляційної алгебри: селекція, проєкція, об’єднання, різниця, декартів добуток
• З’єднання (join): внутрішні, зовнішні, натуральні
• Властивості алгебри — комутативність, асоціативність. Роль алгебри як основи для о птимізації запитів
Планування та оптимізація запитів
Логічні плани (дерева реляційної алгебри)
• Побудова дерева синтаксичного розбору (AST)
• Евристичні оптимізації: pushdown селекцій і проєкцій
• Cost-based оптимізація: використання статистик і оцінка селективності
• Стратегії з’єднань: nested loop, hash join, sort-merge join
Виконання запитів. Векторизація планів. Компіляція SQL
Row-at-a-time vs batch-at-a-time підхід
• Volcano (iterator) модель виконання
• Векторизація: SIMD та обробка блоків значень
• JIT-компіляція SQL-запитів
Типи даних. Система типів. Приведення типів
Основні типи: числові, текстові, часові, логічні, бінарні
• Обробка NULL-значень
• Явне та неявне приведення типів
• Правила пріоритетів у виразах
• Користувацькі (user-defined) типи
• Напівструктуровані типи даних (JSON, XML тощо)
Транзакції та керування паралельним доступом
ACID-властивості транзакцій
• Проблеми конкурентності: dirty reads, phantom reads та інші
• Рівні ізоляції транзакцій: Read Committed, Repeatable Read, Serializable тощо
• 2PL (двохфазне блокування) та виявлення дедлоків
• MVCC (multi-version concurrency control) і snapshot isolation
Open-source бази даних. Сучасна архітектура та останні проблеми
Використання ML для індексування, планування, тюнінгу
• Serverless-бази даних
• Відокремлення compute та storage шарів
• Автоматизація та self-driving DBMS
• Lakehouse-архітектура, agentic DBMS і Iceberg storage
Презентація проектів та розбір досліджень
Ви написали власну СУБД. Час презентувати :)
читає
буде гаряче
ДЛЯ ІНЖЕНЕРІВ

Денис Цьоменко
Founding Engineer @Embucket
Former Software Engineer @CaspianDB, @SingleStore, @DataRobot, @Microsoft.
Former University lecturer @Kyiv School of Economics
Реєстрація. Перший крок за вами
реєстрація
перший крок за вами
Я приймаю умови Публічної оферти та надаю згоду на обробку своїх персональних даних відповідно до Політики конфіденційності.
відгуки
що говорять випускники
ДЛЯ ІНЖЕНЕРІВ
відгуки
що говорять випускники
Говорять
випускники

Senior Software Engineer @ICC Chess Club
Євген Дуднік
Я йшов на курс із конкретними, доволі глибокими запитами, але виявилося, що мої запити — це десь мілководдя. Треба бути готовим до того, що ви дізнаєтесь про БД речі, про які не знали і про які навіть ніде не пишуть. Курс дуже цікавий, мій рекомендасьон.

.Net Developer @FlexBricks
Дмитро Авілов
Курс сподобався. Отри мав багато знань, став трохи краще розуміти, як працюють бази даних і в яку сторону дивитись, коли потрібно вирішувати проблеми з перфомансом.

Android Developer @Competo LLC
Анатолій Кокулюк
Тем на курсі багато і в кожній можна застрягти надовго. Мені, як людині, якій не цікаві БД, курс залітає на 100%. Будування стораджу, лексика, будування пайплайну, виконання — суперцікаві теми, які вилазять далеко за межі БД.

Java Software Engineer @Intapp
Микола Пікуза
Матеріал курсу глибокий, практичний і дуже добре структурований, але те, що справді робить його особливим — це спільнота та викладач. Денис — чудовий викладач, який намагається пояснити складні концепції БД просто й системно. Завжди уважний до деталей і готовий розбирати складні моменти стільки разів, скільки потрібно.

Backend Engineer @Preply
Денис Ралко
Найбільше сподобалась глибина розгляду тем. Багато речей раніше знав як факт, але не розумів, чому саме вони працюють так. Курс дає можливість розібратися в причинах і механіці цих рішень

Senior Director of Engineering @Pindrop
Володимир Шульга
Д оєднався до курсу, так як обсяги даних постійно зростають і так само росте кількість різних видів баз даних та часто на проекті використовується кілька різних баз для різних задач. Хотів глибше зрозуміти, як влаштовані різні типи баз даних і для яких задач кожен із них підходить найкраще. Матеріал курсу об'ємний та високої якості: самостійно знайти таку кількість інформації та структурувати її було б складно.
комунікація, яка тримає в тонусі
Зустрічаємось двічі на тиждень у Zoom — щосереди о 18:30 та щосуботи о 10:00, тривалість 1.5 години. Проводимо додаткові Q&A-сесії з лектором. Усі лекції записуємо, щоб ви могли повернутись до них у зручний час.
Практичні домашки з чіткими дедлайнами. Доведеться написати багато коду, мова програмування — на ваш вибір.
Slack — це наш простір для обговорень, хитрих тестів до задач і рефералів у топ-компанії.
формат, який працює
Постійний зворотний зв’язок у Slack, на лекціях і QA-сесіях — ми завжди поруч.
Жодних поверхневих слайдів: тільки глибокий розбір цікавих задач із реального продакшену.
Сертифікат видаємо лише за реальні результати — виконані домашки, участь у дискусіях, відчутний прогрес.
оточення, яке заряджає
Проводимо відбір, щоб ви навчалися в середовищі сильних і вмотивованих.
Домашки — це не просто задачки. Це справжні міні-проєкти, максимально наближені до продакшену. Оптимізація, дедлайни, баги, фідбек, рефакторинг — усе як у реальному житті. Писатимете багато, місцями дуже багато коду: Python, Java, Go, Assembly, C++. Без лірики — тільки хардкор.
Лектор завжди на зв’язку — пояснить, доки не стане зрозуміло. Іноді це третя ітерація code review, іноді — залишаємося після лекції, щоб розібратись разом. Це нормально — ми тут, щоб вчитись і ставати сильнішими.