CMU 15-445/645: Intro to Database Systems
Carnegie Mellon's course on how database management systems are built: storage, buffer pools, B+ tree and hash indexes, query execution, concurrency control and recovery. Lectures from past semesters are posted in full on the CMU Database Group YouTube channel, and the projects build parts of BusTub, a teaching database in C++. It is the standard free resource for database internals.
5.1k
GitHub (cmu-db/bustub) · Sept 2026
Course
Other
Carnegie Mellon University
One semester
Advanced
Free
What it is
15-445/645 is Carnegie Mellon University's introduction to the design and implementation of database management systems. Rather than teaching how to use a database, it teaches how one works inside. The current course page lists topics including data models, storage models and architectures, indexes and filters (trees, hash tables and vector indexes), transaction processing with ACID and concurrency control, logging and recovery, query processing (joins, sorting, aggregation and optimisation) and parallel and distributed architectures.
Lectures and projects
Lectures from past semesters, taught by Andy Pavlo, have been posted in full on the CMU Database Group YouTube channel, with a playlist per semester. The projects are built on BusTub, an educational relational database written in C++ for this course; recent editions have students implement a buffer pool manager, an index, query execution and concurrency control. According to the BusTub repository, the autograder for each assignment is made available to non-CMU students on Gradescope after CMU's due dates, on the condition that you do not publish your solutions.
Who it is for
This is an advanced course. You should understand the relational model, basic SQL, data structures such as trees and hash tables, and operating systems ideas such as memory and concurrency. The projects need solid C++ skills. It suits students heading towards backend, data or systems engineering who want to understand why databases behave the way they do.
Why it is worth your time
Database theory courses teach normalisation and transactions on paper. This course shows how transactions are implemented with locking or multiversioning, why B+ trees suit disks, how a query optimiser picks a plan and how a write-ahead log survives a crash. After it, reading an EXPLAIN plan or tuning an index is reasoning, not guesswork.
Free or paid
Lectures, slides, notes and the BusTub code are free. You do not get CMU credit or a certificate as an outside learner.
How to use it
Watch the lectures from one semester in order and read the linked notes. If C++ is comfortable for you, attempt the projects on your own private copy of BusTub, as the repository instructs, and use the public autograder to check them. If not, the lectures alone are still very valuable.
Common questions
Which semester should I follow? Any recent full semester playlist works; pick one and stick to it so lectures and projects match.
Is it too hard after a first database course? It is demanding but well explained. Watch the storage and indexing lectures first; they build directly on what a first course teaches.
Ready to start?
Opens on Carnegie Mellon University in a new tab.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.