
Database
Internals
Databases aren’t magic — let’s open the hood.
The revolution needs builders
ПРО КУРС
Більшість проблем перформансу живе не в алгоритмах. Корінь глибше — в тому, як код виконується на реальному CPU та GPU: промахи кешу, невдале розміщення даних у пам'яті, хибні передбачення branch predictor, зайві алокації, перемикання між потоками чи простої в очікуванні ядра ОС. Кожен із цих факторів з'їдає мікросекунди, які складаються у відчутні затримки. Звідси парадокси, що ламають інтуїцію: O(n) програє O(n²), HashMap на мільйони записів поступається sorted array із binary search, а два потоки працюють повільніше за один.
І саме тут починаються по-справжньому цікаві інженерні задачі — особливо зараз, коли частоти процесорів не ростуть, пам'ять відстає від CPU, а залізо більше не пробачає неакуратних рішень. Як прискорити hot loop у 10 разів, не змінюючи алгоритму? Як написати memory allocator, швидший за malloc на вашому workload? Як зрозуміти, що насправді робить ваш код, коли профайлер показує дивне? Цей курс — про розв'язання таких задач: від рівня бітів і байтів до операційних систем, через практику і вимірювання, а не оглядову теорію. Принцип один: не вгадувати — міряти, не «підкручувати» — пояснювати, формувати власну модель того, що відбувається під капотом.
Для middle та senior інженерів, які працюють або хочуть працювати там, де performance — не nice to have, а базова вимога: infrastructure, backend core, databases, machine learning systems, high-frequency trading.
prerequisites
:: Системне програмування: памʼять, файли, процеси, I/O, взаємодія з ОС
:: Junior+ рівень програмування: писати, дебажити, структурувати код хоча б однією мовою
:: Алгоритми та структури даних: складність, масиви, хеш-таблиці, дерева, сортування, індекси
:: SQL і реляційна модель: таблиці, ключі, SELECT, WHERE, JOIN, GROUP BY
ДВІЧІ на тиждень
Субота
10:00 UTC+3
Середа
18:30 UTC+3
// live зустрічі з записом
Стек
Будь-яка мова програмування
// live зустрічі з записом
ПРОГРАМА
:: 32 live заняття
:: 8 Q&A сесій
:: до 30 студентів в групі
Presentation of projects and analysis of research
You've written your own DBMS. Time to present it :)
Open-source databases. Modern architecture and recent issues
Using ML for indexing, planning, tuning
- Serverless databases
- Separation of compute and storage layers
- Automation and self-driving DBMS
- Lakehouse architecture, agentic DBMS and Iceberg storage
Transactions and Concurrent Access Management
ACID transaction properties
- Concurrency issues: dirty reads, phantom reads, and others
- Transaction isolation levels: Read Committed, Repeatable Read, Serializable, etc.
- 2PL (two-phase locking) and deadlock detection
- MVCC (multi-version concurrency control) and snapshot isolation
Data types. Type system. Type casting.
Basic types: numeric, text, time, logical, binary
- Handling
NULLvalues - Explicit and implicit type casting
- Rules of precedence in expressions
- User-defined types
- Semi-structured data types (JSON, XML, etc.)
Query execution. Plan vectorization. SQL compilation
Row-at-a-time vs batch-at-a-time approach
- Volcano (iterator) execution model
- Vectorization: SIMD and block processing of values
- JIT compilation of SQL queries
Query planning and optimization
Logical plans (relational algebra trees)
- Building an Abstract Syntax Tree (AST)
- Heuristic optimizations: pushdown selections and projections
- Cost-based optimization: using statistics and evaluating selectivity
- Join strategies: nested loop, hash join, sort-merge join
Relational model. Relational algebra
Formal foundations of relational DBMSs and operations underlying SQL
- Relationships, attributes, tuples, and keys
- Primary and foreign keys. Ensuring data integrity
- Basic operations of relational algebra: selection, projection, union, difference, Cartesian product
- Joins: inner, outer, natural
- Properties of algebra - commutativity, associativity. The role of algebra as a basis for query optimization
Columnar and hybrid data stores. Compression
Efficient storage of analytical data
- Row-oriented vs column-oriented storage
- Advantages of the columnar approach for analytical queries
- Data compression methods: RLE, dictionary encoding, delta encoding
- Hybrid HTAP systems (Hybrid Transactional/Analytical Processing)
- PAX format — combining the advantages of row and column approaches
Indexes. B-tree and LSM
Data structures to speed up searches, inserts, and range scans
- B-Tree and B+Tree: structure, search, insertion and deletion algorithms
- LSM trees: how log-structured merges work
- Write/Read amplification and compaction mechanisms
- Using Bloom filters to speed up searches
Data warehouse basics
How data is organized on disk and in memory, and why it affects performance
- Pages and blocks as basic storage units
- Organizing records in pages: fixed and variable length
- Row-store and its applications
- Data fragmentation and defragmentation methods
History of databases
The path from file systems to modern data storage
The first DBMS models: Hierarchical, Network
The Relational Model Revolution and Its Impact on the Industry
The emergence of SQL, the development of object-oriented and NoSQL databases
ЯК ПРОХОДИТЬ
НАВЧАННЯ
01
фідбек та ітерації
// Домашки не задаємо для галочки. Викладач перевіряє ваші результати та відправляє на доопрацювання та пояснює пробіли
Zoom
01
фідбек та ітерації
// Домашки не задаємо для галочки. Викладач перевіряє ваші результати та відправляє на доопрацювання та пояснює пробіли
Zoom
01
фідбек та ітерації
// Домашки не задаємо для галочки. Викладач перевіряє ваші результати та відправляє на доопрацювання та пояснює пробіли
Zoom
ПРАКТИЧНА
РОБОТА
:: 30 завдань
:: пишете власну СУБД
:: ФІДБЕК ВИКЛАДАЧА
// Рекомендуємо виділяти 6–10 годин на тиждень для виконання домашніх завдань, щоб отримати максимальний результат від курсу.
Storage Engine: Page Layout
Реалізувати низькорівневий механізм зберігання записів — основу будь-якої СУБД.
Реалізуйте простий механізм зберігання записів у сторінках.
Вимоги:
:: Спроєктувати структуру сторінки фіксованого розміру
:: Реалізувати page header, slot directory та free-space pointer
:: Підтримати fixed-length і variable-length records
:: Імплементувати insert, get, delete, update
ЩО ЗМІНИТЬСЯ
ПІСЛЯ КУРСУ
1
збудуєш database engine з нуля
// Поетапно реалізовуєш storage layer, indexing, query execution та ключові механіки, на яких побудовані сучасні database systems.
2
розбираєшся в архітектурі сучасних БД
// Розумієш різницю між LSM і B-Tree, OLTP та OLAP, row-store і column-store, а також де кожен підхід дає найкращий результат.
3
розумієш, чому база даних гальмує
// Indexes, query planning, query optimization, transactions. Бачиш вузькі місця та розумієш, звідки береться деградація performance.
ВИКЛАДАЧ
ТА АВТОР ПРОГРАМИ

Денис Цьоменко
Founding Engineer @Embucket
Former Software Engineer @CaspianDB, @SingleStore, @DataRobot, @Microsoft.
Former University lecturer @Kyiv School of Economics
:: випустив понад 300 інженерів
:: 14 років інженерного досвіду з високонавантаженими системами
:: випускник Stanford University
01
Проєктує, веде розробку та консультує database-focused стартап и із 2020 року, де СУБД і є продуктом, а не допоміжним інструментом.
02
BSc + MSc in Computer Science
03
3+ роки викладацького досвіду
Перевірено випускниками -
ТОП інженерами з індустрії
amazon
netflix
booking.com
spotify
meta

Volodymyr Shulha
Senior Director of Engineering @Pindrop
I joined the course because data volumes keep growing — and so does the variety of database types. Many projects already rely on several different databases for different tasks. I wanted to develop a deeper understanding of how different types of databases are structured and which use cases each one is best suited for. The course material is extensive and high quality: finding this much information on your own and structuring it into a coherent whole would have been a real challenge.

Denys Ralko
Backend Engineer @Preply
What I liked most was the depth of the topics covered. I knew a lot of things as a fact before, but I didn't understand why they worked the way they did. The course gives me an opportunity to understand the reasons and mechanics of these decisions.

Mykola Pikuza
Java Software Engineer @Intapp
The course material is deep, practical, and very well structured, but what really makes it special is the community and the instructor. Denis is a great instructor who tries to explain complex database concepts simply and systematically. Always attentive to detail and willing to go over difficult points as many times as needed.

Anatolii Kokuliuk
Android Developer @Competo LLC
There are a lot of topics in the course, and you can get stuck in each one for a long time. As someone who is not interested in databases, the course is 100% engaging for me. Building a storage, vocabulary, building a pipeline, execution — super interesting topics that go far beyond the database.

Dmytro Avilov
.Net Developer @FlexBricks
I liked the course. I gained a lot of knowledge, and I began to understand a little better how databases work and which way to look when solving performance problems.

Yevhen Dudnik
Senior Software Engineer @ICC Chess Club
I went to the course with specific, quite deep questions, but it turned out that my questions were somewhere in the shallows. You have to be prepared for the fact that you will learn things about DBs that you didn't know about and that aren't even written about anywhere. The course is very interesting, my recommendation.
БРОНЮЙ СВОЄ
МІСЦЕ В ГРУПІ
оплата помісячно
420 $
курс трив ає 4 місяці
оплата за весь курс
1600 $
за курсом нбу
ПЕРШИЙ КРОК ЗА ТОБОЮ
I accept the terms of the Public Offer Agreement and consent to the processing of my personal data in accordance with the Privacy Policy.
За тебе може заплатити роботодавець?
Напиши нам на hello@csosvita, і ми оформимо все якнайшвидше.
МАЄШ ПИТАННЯ?
МИ ВІДПОВІДАЄМО
// Не знайшли відповідь, яку шукали? Напишіть нам на hello@csosvita.com і ми з усім допоможемо