Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 关于构建RDBMS的参考资料_Database_Algorithm_Rdbms - Fatal编程技术网

Database 关于构建RDBMS的参考资料

Database 关于构建RDBMS的参考资料,database,algorithm,rdbms,Database,Algorithm,Rdbms,我正在考虑实现一个RDBMS。关于数据库如何在内部工作,以及在开始构建自己的数据库时我需要知道的事情,有什么好的资源吗?(请不要评论这是否是一个实用的想法——想象一下这是一个爱好项目或什么的) 同样,我对RDBMS设计感兴趣,而不是数据库设计。效率非常重要(如果我不关心速度的话,设计类似关系数据库的结构似乎相当容易)。我建议从和开始。这两本书都应该有参考书目,让你更进一步。有一些关于这类东西的教科书,当我在大学的时候,我们做了一个课堂项目。这本书真的应该对你有所帮助 我忘了提了,但我的代码在谷歌

我正在考虑实现一个RDBMS。关于数据库如何在内部工作,以及在开始构建自己的数据库时我需要知道的事情,有什么好的资源吗?(请不要评论这是否是一个实用的想法——想象一下这是一个爱好项目或什么的)


同样,我对RDBMS设计感兴趣,而不是数据库设计。效率非常重要(如果我不关心速度的话,设计类似关系数据库的结构似乎相当容易)。

我建议从和开始。这两本书都应该有参考书目,让你更进一步。

有一些关于这类东西的教科书,当我在大学的时候,我们做了一个课堂项目。这本书真的应该对你有所帮助

我忘了提了,但我的代码在谷歌代码上:


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

构建RDMS不是一件琐事,您需要将多个领域的经典CS知识与关于硬盘、操作系统细节、文件系统、内存、cpu、缓存的深入知识结合起来,以提高效率

我们需要阅读一篇关于体系结构的好文章:

关于数据库的理论知识,我建议买一本关于这个主题的书,我只能谈谈我在这方面使用的书,这本书是Kifer、Bernstein和Lewis的《数据库系统——一种面向应用的方法》


你可能想看看一些开源数据库的想法。

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

尽管如此,我最终还是找到了一个令人满意的答案。Sciore的书《数据库设计与实现》:

前两部分致力于学习使用RDBMS,您可能已经知道了。但最后两部分涉及实施细节;有趣的是,最小关系型数据库(SimpleDB)用于说明这些概念,也可以作为执行编程练习的平台。威利网站上有一句话说得更好:

“随附SimpleDB,一个免费下载、功能齐全的简化数据库系统(与商业数据库系统不同),体积小、易读且易于修改。SimpleDB可用作学生完成家庭作业项目和实施本书所述概念的平台。”

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

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

“SimpleDB数据库系统”

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

如果你觉得它很吸引人,那么买这本书可能是一项不错的投资

希望有帮助,
干杯。

祝你好运找到它。我自己也试着去寻找信息,但得到的信息很少。我认为你应该灵活运用。让它工作起来,然后让它更有效率。”“工作”很简单,老实说。实际上我正在尝试这种方法,但发现制作一个简单但难以置信的、缓慢且低效的RDBMS很容易,现在还不清楚如何优化它。谢谢-这两个看起来都像我感兴趣的-对理论有更深的了解..项目看起来已经结束了-我还能得到代码吗?代码仍然可用,我只是说,万一人们想要更多的信息或者正在看它,自从我们完成这门课后,它就一直没有被修改过。再去源代码处获取代码。啊,没有注意到(不太熟悉谷歌代码-尽管我想它与任何SVN web界面都没有太大的不同)+1那么-这是非常有用的,看起来确实像一本好书;谢谢你提到这件事。