Skip to content

CMU 15-445: Database Systems

Descriptions

  • Offered by: Carnegie Mellon University (Andy Pavlo)
  • Prerequisites: C++ basics, data structures, operating systems basics
  • Programming Language: C++
  • Difficulty: 🌟🌟🌟🌟
  • Website: 15445.courses.cs.cmu.edu

CMU 15-445 is CMU's database systems course, taught by Professor Andy Pavlo. It's widely regarded as one of the best database courses in the world — not because it covers the most material, but because it has you actually implement a complete database management system.

Course Resources

Lab List

Lab Content Difficulty
Lab 1: Buffer Pool Manager Implement a buffer pool manager 🌟🌟🌟
Lab 2: B+ Tree Index Implement a B+ tree index 🌟🌟🌟🌟
Lab 3: Query Execution Implement a query executor 🌟🌟🌟🌟
Lab 4: Concurrency Control Implement concurrency control (lock manager + deadlock detection) 🌟🌟🌟🌟🌟

Course Features

  • Complete database implementation: Build a fully functional DBMS from scratch
  • BusTub: A purpose-built teaching database framework with manageable code size
  • 4 core labs: Cover the four core components of a database

Self-Study Tips

Solid C++ required. The course uses C++; familiarity with pointers, memory management, and templates is essential.

Do labs in order. Each lab depends on the previous lab's code.

Read the lecture notes. Andy Pavlo's lecture notes are excellent and key to understanding the theory.

Notes

15-445 has the best lab design in database courses. After completing all labs, your understanding of databases will be transformed.

Andy Pavlo is a top database researcher, and his lecture videos are exceptionally high quality — highly recommended.