有关构建RDBMS的资源

时间:2009-02-11 15:46:33

标签: database algorithm rdbms

我正在考虑实现RDBMS。关于数据库内部如何工作以及开始构建自己的数据时我需要知道的事情是否有任何好的资源? (请不要评论它是否是一个实用的想法 - 只是想象它是一个爱好项目或其他东西)。

再次 - 对RDBMS设计感兴趣,而不是数据库设计。效率非常重要(如果我不关心速度,似乎很容易设计某种类型的关系数据库结构)。

4 个答案:

答案 0 :(得分:6)

有一些关于这类东西的教科书,当我在大学时,我们为一个课程项目做了这个。这本书应该真正帮助你Database Systems: The Complete Book

我忘了提及它,但我的代码在googlecode上:cs4420-dbase

请原谅它是用java编写的,但是我的队友对这个决定投了赞成票。但基本的想法仍然存在。它处理文件创建和处理以及简单的SQL解析器和优化器。它处理基本索引(b-tree)和“内存”管理。请原谅一些缺乏评论和奇怪的评论,许多深夜都花在该项目上。

答案 1 :(得分:2)

我建议从Introduction to Database SystemsTransactional Information Systems开始。他们都应该有参考书目带你进一步。

答案 2 :(得分:1)

构建RDMS并不简单,您需要将来自多个领域的经典CS知识与对硬盘,操作系统细节,文件系统,内存,CPU,缓存的深入了解相结合,以提高效率。

我们需要阅读的关于架构的好文章是:

http://www.nowpublishers.com/product.aspx?product=DBS&doi=1900000002

关于数据库的理论知识,我建议购买一本关于这个主题的书,我只能谈谈我用于此的书,这是数据库系统一种面向应用的方法,由Kifer,Bernstein和Lewis。

您可能希望查看一些开源数据库以获取想法。

答案 3 :(得分:1)

我最近遇到了同样的问题,和其他人一样,努力寻找一本帮助从头开始构建实际RDBMS的书(当然是最小的)。与其他CS领域(OS,编译器等)发生的情况相反;在这方面,数据库区域的资源似乎较少。可能是因为RDBMS是最难掌握和实施的; - |

尽管如此,我终于找到了一个令人满意的答案。 Sciore的书“数据库设计与实现”:

http://www.wiley.com/WileyCDA/WileyTitle/productCd-EHEP000711.html

前两部分专门用于学习使用RDBMS,您可能已经知道了。但最后两部分涉及实施细节;有趣的是,最小的RDBMS(SimpleDB)用于说明概念,也可以作为执行编程练习的平台。 Wiley网站的引用更好:

“附带SimpleDB,一个免费下载,功能齐全的简化数据库系统(与商业数据库系统不同),小巧,易读,易于修改.SmallDB可用作学生完成家庭作业项目的平台实施书中涵盖的概念。“

不要为样本RDBMS是用Java编写的事实而烦恼;这有利于隐藏C / Unix中实现的低级细节(IMHO)。如果你像我一样来自应用程序世界,你可能不熟悉系统编程的东西;但是用Java等高级语言学习RDBMS实现概念可以作为过渡的良好桥梁。

Wiley网站允许购买该书的电子版,但无论您是否购买,都可以获得源代码。我不能发布超过两个链接,但只是谷歌这个术语(包括双引号),你会很容易找到SimpleDB主页(你可以下载它):

“SimpleDB数据库系统”

如果你不确定购买这本书(就像其他核心CS书籍一样,对学生来说并不便宜);可能你可以开始阅读代码和这篇介绍性文章:

http://www.cs.bc.edu/~sciore/papers/SIGCSE07.pdf

如果你觉得它很有吸引力,购买这本书可能是一个很好的投资。

希望有所帮助, 欢呼声。