RookieDB is a lightweight, educational database system developed as part of UC Berkeley's CS 186: Database Systems. The project provides a basic foundation for understanding core database concepts and techniques by supporting the execution of simple transactions in series. Throughout the course, advanced features are implemented, focusing on real-world database challenges.
B+ Tree Indices: Efficient indexing to improve query performance.
Join Algorithms: Implementing optimized algorithms for joining tables.
Query Optimization: Enhancing query execution plans for faster results.
Concurrency Control: Multigranularity locking for safe concurrent transactions.
Database Recovery: Techniques for recovering databases from crashes or errors.
This project emphasizes building from a minimal skeleton, allowing for a deep understanding of each database component. It’s an excellent introduction to database internals and system design.
Technical Notes: The base project is written in Java, with clear separation between the skeleton code and student-implemented components.