调整格式,增加 Assignment 介绍

This commit is contained in:
MedivhGO
2022-08-06 22:36:39 +08:00
parent ab5c7342ef
commit 1260551acf

View File

@@ -1,4 +1,4 @@
# 加州理工学院 Caltech CS 122: Database System Implementation
# Caltech CS 122: Database System Implementation
## 课程简介
@@ -8,17 +8,33 @@
- 课程难度:🌟🌟🌟🌟🌟
- 预计学时150 小时
加州理工的这门课, 不同于CMU15445(没有提供SQL层的功能), CS122课程lab的侧重点在于SQL层的相关实现, 涉及查询优化器的各个模块, 比如SQL的解析, Translate, 如何实现Join, 统计信息以及代价估计, 子查询实现, Agg, Group By的实现等. 除此之外, 还有B+树, WAL相关实验. 本门课程适合在学完CMU15445课程之后, 对查询优化相关内容有兴趣的同学.
加州理工的这门课不同于没有提供 SQL 层功能的 CMU15-445 课程。CS122 课程 Lab 的侧重点在于 SQL 层的相关实现涉及查询优化器的各个模块比如SQL的解析Translate如何实现 Join统计信息以及代价估计子查询实现AggGroup By 的实现等除此之外还有 B+树WAL 相关实验本门课程适合在学完 CMU15-445 课程之后对查询优化相关内容有兴趣的同学
每个实验的需要实现的功能点很多, 是查询优化相关内容非常好练习.
下面介绍一下这门课的前 3 个 Assignment 也就是实验 Lab 所要实现的功能:
推荐使用Idea打开工程, Maven构建, 注意日志配置.
### Assignment1
- 为 NanoDB 提供 deleteupdate 语句的支持。
- 为 Buffer Pool Manager 添加合适的 pin/unpin 代码。
- 提升 insert 语句的性能, 同时不使数据库文件大小过分膨胀。
### Assignment2
- 实现一个简单的计划生成器,将各种已经 Parser 过的 SQL 语句转化为可执行的执行计划。
- 使用 nested-loop join 算法,实现支持 inner- and outer-join 的 Join 计划节点。
- 添加一些单元测试, 保证 inner- and outer-join 功能实现正确。
### Assignment3
- 完成收集表的统计信息。
- 完成各种计划节点的计划成本计算。
- 计算可出现在执行计划中的各种谓词的选择性。
- 根据谓词更新计划节点输出的元组统计信息。
剩余 Assignment 和 Challenges 可以查看课程介绍,推荐使用 IDEA 打开工程Maven 构建,注意日志相关配置。
## 课程资源
- 课程网站:<http://courses.cms.caltech.edu/cs122/>
- 课程代码:<https://gitlab.caltech.edu/cs122-19wi>
- 课程教材:无
- 课程作业7 Assignments + 2 Challenges
## 资源汇总
- 课程作业7 Assignments + 2 Challenges