Skip to content

# 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: https://web.stanford.edu/class/cs346/2015/
- Course Code: https://github.com/junkumar/redbase.git
- Course Textbook: None
- Course Assignments: 4 Projects + 1 Extension

2023-12-16