Understanding how database systems store, retrieve, and manage data efficiently. Covers relational database theory, SQL, transaction processing, query optimization, database internals, and data modeling principles.
Required:
- Programming - Ability to write database queries and applications
Recommended:
- Algorithms and Data Structures - Database internals use sophisticated data structures (B-trees, hash tables)
- Operating Systems - Understanding of storage systems and concurrency
- SQL (Intermediate) - Essential for relational database interaction
- Any modern language (Intermediate) - For database application development and ORM usage
-
Readings in Database Systems (Red Book) by Peter Bailis, Joe Hellerstein, and Michael Stonebraker
- Collection of seminal papers in database systems
- Best for intermediate learners after foundational course
- Level: Intermediate to Advanced
- Available online
-
Database Management Systems by Raghu Ramakrishnan and Johannes Gehrke
- Comprehensive introductory textbook
- Level: Intermediate
- Use if a traditional textbook approach is preferred
-
Data and Reality by William Kent
- Timeless perspective on data modeling
- Short, philosophical treatment of how to model information
- Level: Beginner to Intermediate
- Instructor: Joe Hellerstein
- Institution: UC Berkeley
- Platform: Berkeley course site / YouTube
- URL: Course site
- Description: Comprehensive database course covering SQL, relational theory, storage, indexing, query optimization, transactions
- Start with lecture recordings before progressing to Red Book papers
- Architecture of a Database System - Essential paper providing high-level RDBMS overview
- SQLBolt - Interactive SQL tutorials
-
Source: CS 186 assignments and projects
-
Difficulty: Intermediate to Advanced
-
Estimated time: 100-200 hours
-
Topics: SQL queries, B+ trees, query optimization, concurrency control
-
Source: SQLBolt and similar interactive platforms
-
Difficulty: Beginner to Intermediate
-
Topics: SQL syntax and query construction
- Implement database components (B+ tree, query optimizer, transaction manager)
- Design and normalize database schemas for applications
- Read and discuss Red Book papers
[Personal notes and key insights can be added here during study]
- Completed CS 186 lectures and assignments
- Read "Architecture of a Database System" paper
- Progressed through Red Book papers
- Completed SQL practice exercises
- Review and reinforcement