From ab5c7342ef9a409eefdad270e2ac239c221dbc10 Mon Sep 17 00:00:00 2001 From: MedivhGO Date: Sat, 6 Aug 2022 13:23:01 +0800 Subject: [PATCH 1/3] add course and book --- docs/好书推荐.md | 1 + docs/数据库系统/CS122.md | 24 ++++++++++++++++++++++++ mkdocs.yml | 1 + 3 files changed, 26 insertions(+) create mode 100644 docs/数据库系统/CS122.md diff --git a/docs/好书推荐.md b/docs/好书推荐.md index 7b63033c..0937ab5e 100644 --- a/docs/好书推荐.md +++ b/docs/好书推荐.md @@ -69,6 +69,7 @@ - Database System Concepts - [Architecture of a Database System](https://dsf.berkeley.edu/papers/fntdb07-architecture.pdf) +- [Readings in Database Systems, 5th Edition](http://www.redbook.io/) ## 计算机图形学 diff --git a/docs/数据库系统/CS122.md b/docs/数据库系统/CS122.md new file mode 100644 index 00000000..127bfefd --- /dev/null +++ b/docs/数据库系统/CS122.md @@ -0,0 +1,24 @@ +# 加州理工学院 Caltech CS 122: Database System Implementation + +## 课程简介 + +- 所属大学:Caltech +- 先修要求:无 +- 编程语言:Java +- 课程难度:🌟🌟🌟🌟🌟 +- 预计学时:150 小时 + +加州理工的这门课, 不同于CMU15445(没有提供SQL层的功能), CS122课程lab的侧重点在于SQL的层的相关实现, 涉及查询优化器的各个模块, 比如SQL的解析, Translate, 如何实现Join, 统计信息以及代价估计, 子查询实现, Agg, Group By的实现等. 除此之外, 还有B+树, WAL相关实验. 本门课程适合在学完CMU15445课程之后, 对查询优化相关内容有兴趣的同学. + +每个实验的需要实现的功能点很多, 是查询优化相关内容非常好练习. + +推荐使用Idea打开工程, Maven构建, 注意日志配置. + +## 课程资源 + +- 课程网站: +- 课程代码: +- 课程教材:无 +- 课程作业:7 Assignments + 2 Challenges + +## 资源汇总 \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 65b07b6b..8a4f6170 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -141,6 +141,7 @@ nav: - 数据库系统: - "UCB CS186: Introduction to Database System": "数据库系统/CS186.md" - "CMU 15-445: Database Systems": "数据库系统/15445.md" + - "Caltech CS122: Database System Implementation": "数据库系统/CS122.md" - 编译原理: - "Stanford CS143: Compilers": "编译原理/CS143.md" - 计算机图形学: From 1260551acfa72d7954c5f64f96f6d9e6a097ae31 Mon Sep 17 00:00:00 2001 From: MedivhGO Date: Sat, 6 Aug 2022 22:36:39 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=20Assignment=20=E4=BB=8B=E7=BB=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/数据库系统/CS122.md | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/docs/数据库系统/CS122.md b/docs/数据库系统/CS122.md index 127bfefd..163d6d38 100644 --- a/docs/数据库系统/CS122.md +++ b/docs/数据库系统/CS122.md @@ -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 构建,注意日志相关配置。 ## 课程资源 - 课程网站: - 课程代码: - 课程教材:无 -- 课程作业:7 Assignments + 2 Challenges - -## 资源汇总 \ No newline at end of file +- 课程作业:7 Assignments + 2 Challenges \ No newline at end of file From 19c8ba0fc9e03d44e9e263a4ab1f9a1f5fd96129 Mon Sep 17 00:00:00 2001 From: MedivhGO Date: Sat, 6 Aug 2022 22:42:34 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/数据库系统/CS122.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/数据库系统/CS122.md b/docs/数据库系统/CS122.md index 163d6d38..e0d12ec4 100644 --- a/docs/数据库系统/CS122.md +++ b/docs/数据库系统/CS122.md @@ -18,13 +18,11 @@ - 提升 insert 语句的性能, 同时不使数据库文件大小过分膨胀。 ### Assignment2: - - 实现一个简单的计划生成器,将各种已经 Parser 过的 SQL 语句转化为可执行的执行计划。 - 使用 nested-loop join 算法,实现支持 inner- and outer-join 的 Join 计划节点。 - 添加一些单元测试, 保证 inner- and outer-join 功能实现正确。 ### Assignment3: - - 完成收集表的统计信息。 - 完成各种计划节点的计划成本计算。 - 计算可出现在执行计划中的各种谓词的选择性。