关系型数据库
Relational Databases
大多数企业存储数据,其中大多数是通过一个复杂的数据库系统来存储的。更好的数据库引擎已经带来了业务能力的提升,几十年的市场压力已经导致了高度强大、复杂的系统。但权力越大,责任越大:误解数据库引擎可能会带来巨大的成本。本课程将为你提供深入了解数据库系统内部的机会,帮助你获得做出明智选择所需的了解。
《数据库系统阅读材料》,通常被称为数据库“红皮书”,是我建议你在完成本课程后,或者在课程期间有空时阅读的论文。通过完成本课程的主要练习序列,你将偶然实现一个简单的数据库管理系统。像往常一样,你应该尽量自己完成每个练习,并在需要时使用演示视频和补充解释。在一些课程中,一个练习何时“完成”是非常明确的——对于这个课程,我留给你的范围更多,我自己实现核心目标和一些有趣的挑战目标。有关如何处理 CS Primer 的更多建议,请参阅使用指南 。
还包括为 CS Primer 学生录制的研讨会,旨在涵盖更丰富概念性材料,这些材料在练习形式中更难涵盖。通常,学生在参加相应的研讨会之前会完成一些练习。
对于补充资源,我推荐使用两组视频讲座之一:加州大学伯克利分校 Joe Hellerstein 的 CS 186 2015 年春季课程 ,或者卡内基梅隆大学的 Andy Pavlo 的 数据库系统导论 。两者都非常出色,选择可能取决于个人风格。有一些数据库教科书,但过去的同学往往发现它们帮助不大。不过,我确实链接了一些论文,特别是来自 数据库红皮书 的论文,以及 PostgreSQL 内部机制 。
Oz 的笔记:我目前正在积极制作这门课程。它已经准备好开始,我会尽快发布问题以跟上你的进度,但请注意,结构可能会突然改变。
查询执行
我们将通过关注基本的查询执行来开始对关系数据库管理系统的探索。我们的主要项目目标是编写一个内存中的简单单表查询执行器,设计上易于在未来的项目步骤中扩展。在这个过程中,我们还将开始以 PostgreSQL 作为案例研究,深入研究源代码并阅读解释语句。
评论(0)