mirror of
https://github.com/PKUFlyingPig/cs-self-learning.git
synced 2026-04-02 10:22:12 +08:00
调整格式,增加 Assignment 介绍
This commit is contained in:
@@ -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,统计信息以及代价估计,子查询实现,Agg,Group By 的实现等。除此之外,还有 B+树,WAL 相关实验。本门课程适合在学完 CMU15-445 课程之后,对查询优化相关内容有兴趣的同学。
|
||||
|
||||
每个实验的需要实现的功能点很多, 是查询优化相关内容非常好练习.
|
||||
下面介绍一下这门课的前 3 个 Assignment 也就是实验 Lab 所要实现的功能:
|
||||
|
||||
推荐使用Idea打开工程, Maven构建, 注意日志配置.
|
||||
### Assignment1:
|
||||
- 为 NanoDB 提供 delete,update 语句的支持。
|
||||
- 为 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
|
||||
Reference in New Issue
Block a user