# Stanford CS 346: Database System Implementation ## Course Introduction - **University**: Stanford - **Prerequisites**: None - **Programming Language**: C++ - **Course Difficulty**: 🌟🌟🌟🌟🌟 - **Estimated Study Time**: 150 hours RedBase, the project for CS346, involves the implementation of a simplified database system and is highly structured. The project can be divided into the following parts, which also correspond to the four labs that need to be completed: 1. **The Record Management Component**: This involves the implementation of record management functionalities. 2. **The Index Component**: Focuses on the management of B+ tree indexing. 3. **The System Management Component**: Deals with DDL statements, command-line tools, data loading commands, and metadata management. 4. **The Query Language Component**: In this part, students are required to implement the RQL Redbase Query Language, including select, insert, delete, and update statements. 5. **Extension Component**: Beyond the basic components of a database system, students must implement an extension component, which could be a Blob type, network module, join algorithms, CBO optimizer, OLAP, transactions, etc. RedBase is an ideal follow-up project for students who have completed CMU 15-445 and wish to learn other components of a database system. Due to its manageable codebase, it allows for convenient expansion as needed. Furthermore, as it is entirely written in C++, it also serves as good practice for C++ programming skills. ## Course Resources - Course Website: - Course Code: - Course Textbook: None - Course Assignments: 4 Projects + 1 Extension