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/