我想深入学习数据库系统的实现。是否有一个用于教育目的的开源简单数据库实现,我可以通过代码?就像有很多操作系统实现(Minix,Pintos ...)。我想知道是否也有类似的数据库教育系统。
我读了几本教科书,它们主要侧重于理论和概念。
非常感谢!阿尔弗雷德
我想深入学习数据库系统的实现。是否有一个用于教育目的的开源简单数据库实现,我可以通过代码?就像有很多操作系统实现(Minix,Pintos ...)。我想知道是否也有类似的数据库教育系统。
我读了几本教科书,它们主要侧重于理论和概念。
非常感谢!阿尔弗雷德
然后找一些教育材料 :) 当我学习 db 概念时,我的教授要求我们编写一个简单的 dbms。一个重要的参考是Redbase:
http://infolab.stanford.edu/~widom/cs346/
希望有帮助。
MySQL、PostgreSQL、SQlite都是开源的。你可以找到他们的源代码和相关文档。
还要检查NoSQL数据库组。
是什么让您认为实现数据库很简单?
您对数据库的哪些部分感兴趣?存储管理?索引?查询语言?查询计划?交易?
现代(甚至是“玩具”)关系系统具有所有这些组件,这使得它们从一开始就相当复杂。其他数据库,例如基于 dbm 的数据库要简单得多。然后你有像 Lucene 这样的东西,它是一个文档和自由格式文本的数据库——概念上很简单,但在扩展方面付出了很多努力。
如果您对查询语言感到好奇,可以查看 SPARQL 的实现,因为它们适用于 RDF 三元存储(这不是超级复杂)。
还有像 Prevlayer 这样的东西,它是一个内存数据库,使用了一个叫做流行度的概念。可能是所有这些中最简单的,当你真正开始时。