Skip to content

Commit 1260551

Browse files
committed
调整格式,增加 Assignment 介绍
1 parent ab5c734 commit 1260551

File tree

1 file changed

+23
-7
lines changed

1 file changed

+23
-7
lines changed

docs/数据库系统/CS122.md

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 加州理工学院 Caltech CS 122: Database System Implementation
1+
# Caltech CS 122: Database System Implementation
22

33
## 课程简介
44

@@ -8,17 +8,33 @@
88
- 课程难度:🌟🌟🌟🌟🌟
99
- 预计学时:150 小时
1010

11-
加州理工的这门课, 不同于CMU15445(没有提供SQL层的功能), CS122课程lab的侧重点在于SQL的层的相关实现, 涉及查询优化器的各个模块, 比如SQL的解析, Translate, 如何实现Join, 统计信息以及代价估计, 子查询实现, Agg, Group By的实现等. 除此之外, 还有B+树, WAL相关实验. 本门课程适合在学完CMU15445课程之后, 对查询优化相关内容有兴趣的同学.
11+
加州理工的这门课,不同于没有提供 SQL 层功能的 CMU15-445 课程。CS122 课程 Lab 的侧重点在于 SQL 层的相关实现,涉及查询优化器的各个模块,比如SQL的解析,Translate,如何实现 Join,统计信息以及代价估计,子查询实现,Agg,Group By 的实现等。除此之外,还有 B+树,WAL 相关实验。本门课程适合在学完 CMU15-445 课程之后,对查询优化相关内容有兴趣的同学
1212

13-
每个实验的需要实现的功能点很多, 是查询优化相关内容非常好练习.
13+
下面介绍一下这门课的前 3 个 Assignment 也就是实验 Lab 所要实现的功能:
1414

15-
推荐使用Idea打开工程, Maven构建, 注意日志配置.
15+
### Assignment1:
16+
- 为 NanoDB 提供 delete,update 语句的支持。
17+
- 为 Buffer Pool Manager 添加合适的 pin/unpin 代码。
18+
- 提升 insert 语句的性能, 同时不使数据库文件大小过分膨胀。
19+
20+
### Assignment2:
21+
22+
- 实现一个简单的计划生成器,将各种已经 Parser 过的 SQL 语句转化为可执行的执行计划。
23+
- 使用 nested-loop join 算法,实现支持 inner- and outer-join 的 Join 计划节点。
24+
- 添加一些单元测试, 保证 inner- and outer-join 功能实现正确。
25+
26+
### Assignment3:
27+
28+
- 完成收集表的统计信息。
29+
- 完成各种计划节点的计划成本计算。
30+
- 计算可出现在执行计划中的各种谓词的选择性。
31+
- 根据谓词更新计划节点输出的元组统计信息。
32+
33+
剩余 Assignment 和 Challenges 可以查看课程介绍,推荐使用 IDEA 打开工程,Maven 构建,注意日志相关配置。
1634

1735
## 课程资源
1836

1937
- 课程网站:<http://courses.cms.caltech.edu/cs122/>
2038
- 课程代码:<https://gitlab.caltech.edu/cs122-19wi>
2139
- 课程教材:无
22-
- 课程作业:7 Assignments + 2 Challenges
23-
24-
## 资源汇总
40+
- 课程作业:7 Assignments + 2 Challenges

0 commit comments

Comments
 (0)