- 所属大学:CMU
- 先修要求:C++,数据结构与算法
- 编程语言:C++
- 课程难度:🌟🌟🌟🌟
- 预计学时:100 小时
作为 CMU 数据库的入门课,这门课由数据库领域的大牛 Andy Pavlo 讲授(“这个世界上我只在乎两件事,一是我的老婆,二就是数据库”)。15-445 会自底向上地教你数据库系统的基本组成部分:存储、索引、查询,以及并发事务控制。 这门课的亮点在于 CMU db 专门为此课开发了一个教学用的关系型数据库 bustub,并要求你对这个数据库的组成部分进行修改,实现上述部件的功能。此外 bustub 作为一个 C++ 编写的中小型项目涵盖了程序构建、代码规范、单元测试等众多要求,可以作为一个优秀的开源项目学习。
在 Fall2019 中,第二个 Project 是做哈希索引,第四个 Project 是做日志与恢复
在 Fall2020 中,第二个 Project 是做 B 树,第四个 Project 是做并发控制
如果大家有精力的话可以都去尝试一下,或者在对书中内容理解不是很透彻的时候,尝试用代码写一个会加深你的理解。
我在学习这门课中用到的所有资源和作业实现都汇总在 ysj1173886760/Learning: db - GitHub 中。
由于 Andy 的要求,仓库中没有 Project 的实现,只有 Homework 的 Solution。特别的,对于 Homework1,我还写了一个 Shell 脚本来帮大家执行自动判分
另外在课程结束后,我十分推荐阅读一篇论文 Architecture Of a Database System,对应的中文版我上传到了链接中的仓库。论文里综述了数据库系统的整体架构,让大家可以对数据库有一个更加全面的视野。
主要讲主存数据库有关的内容,每节课都有对应的 paper 要读,推荐给希望进阶数据库的小伙伴
我目前也在跟进这门课,完成后会在这里提 PR 以提供进阶的指导