Database Systems
Course ID 15645
Description This course is on the design and implementation of database management systems. Topics include data models (relational, document, key/value), storage models (n-ary, decomposition), query languages (SQL, stored procedures), storage architectures (heaps, log-structured), indexing (order preserving trees, hash tables), transaction processing (ACID, concurrency control), recovery (logging, checkpoints), query processing (joins, sorting, aggregation, optimization), and parallel architectures (multi-core, distributed). Case studies on open-source and commercial database systems will be used to illustrate these techniques and trade-offs. The course is appropriate for students with strong systems programming skills.
Key Topics
The list at https://csd.cmu.edu/course/15445/f25 is accurate, and it is:
data models (relational, document, key/value, storage models (n-ary, decomposition), query languages (SQL, stored procedures), storage architectures (heaps, log-structured), indexing (order preserving trees, hash tables), transaction processing (ACID, concurrency control), recovery (logging, checkpoints), query processing (joins, sorting, aggregation, optimization), and parallel architectures (multi-core, distributed).
Required Background Knowledge
Systems Programming, C/C++
Course Relevance
CS majors, master's and doctoral students
Course Goals
The list at https://csd.cmu.edu/course/15445/f25 is accurate, and it is:
Use relational algebra and relational calculus, to express database queries.
Use SQL to interact with database management systems.
Design appropriate database tables, using functional dependencies and normal forms.
Implement a disk-oriented database storage manager with table heaps and indexes.
Understand, compare, and implement the major concurrency control algorithms.
Implement database recovery algorithms and verify their correctness.
Identify trade-offs among database systems techniques and contrast distributed/parallel alternatives for both on-line transaction processing and on-line analytical workloads.
Interpret and comparatively criticize database system architectures.
Learning Resources
n/a
Assessment Structure
15% Homeworks, 45% Programming Projects, 20% Midterm Exam, 20% Final Exam, +10% Extra Credit (Optional)
Extra Time Commitment
n/a
Course Link
https://15445.courses.cs.cmu.edu/fall2025/