# Stanford CS 346: Database System Implementation

## 课程简介

- 所属大学：Stanford
- 先修要求：无
- 编程语言：C++
- 课程难度：🌟🌟🌟🌟🌟
- 预计学时：150 小时

RedBase 是 cs346 的一个项目，实现了一个简易的数据库系统，项目是高度结构化的。整个项目能够被分为以下几个部分（同时也是 4 个需要完善的 lab）：

1. The record management component：记录管理组件。

2. The index component：B+ 索引管理。

3. The System Management Component：ddl语句、命令行工具、数据加载命令、元数据管理。

4. The Query Language Component：在这个部分需要实现 RQL Redbase 查询语言。RQL 要实现 select、insert、delete、update 语句。

5. Extension Component：除了上述数据库系统的基本功能组件，还需要实现一个扩展组件，可以是 Blob 类型、 网络模块、连接算法、CBO 优化器、OLAP、事务等。

RedBase 适合在学完 CMU 15-445 后继续学习数据库系统中的其他组件，因为其代码量不多，可以方便的根据需要扩展代码。同时代码完全由 C++ 编写，也可以用于练习 C++ 编程技巧。

## 课程资源

- 课程网站：<https://web.stanford.edu/class/cs346/2015/>
- 课程代码：<https://github.com/junkumar/redbase.git>
- 课程教材：无
- 课程作业：4 Projects + 1 Extension
