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 are used to illustrate these techniques and trade-offs. The course is appropriate for students that are prepared to flex their strong systems programming skills.
⚔ IDE: VS Code
📽 All course resources can be found at this page
🖼 The course video resources can be found at bilibili
🈚 The Homework section contains 5 independent homework
- SQL
- Storage & Indexes
- Query Execution
- Distributed Databases
🎭 The Projects section contains 5 independent projects
- C++ Primer
- Buffer Pool Manager
- B+Tree Index
- Query Execution
- Concurrency Control