我想深入了解数据库系统实现。是否有一个开源的简单数据库实现教育目的,我可以通过代码?就像有很多操作系统的实现(Minix,Pintos ...)。我想知道是否有类似的数据库教育系统。用于教育目的的简单数据库实现
我读了几本教科书,主要关注理论和概念。
非常感谢! Alfred
我想深入了解数据库系统实现。是否有一个开源的简单数据库实现教育目的,我可以通过代码?就像有很多操作系统的实现(Minix,Pintos ...)。我想知道是否有类似的数据库教育系统。用于教育目的的简单数据库实现
我读了几本教科书,主要关注理论和概念。
非常感谢! Alfred
MySQL,PostgreSQL,SQlite都是开源的。你可以找到他们的源代码和相关文档。
还检查NoSQL组数据库。
是什么让你觉得实现一个数据库很简单?
你对数据库有什么兴趣?存储管理?索引?查询语言?查询计划?交易?
现代(甚至“玩具”)关系系统具有所有这些组件,这使得它们从一开始就相当复杂。其他数据库,例如基于dbm的数据库要简单得多。然后你就可以拥有像Lucene这样的文件和自由格式文本数据库 - 这在概念上很简单,但是在缩放方面做了很多努力。
如果您对查询语言感兴趣,您可以查看SPARQL的实现,因为它们对RDF三重存储(这不是非常复杂)有效。
还有一些像Prevlayer这样的内存数据库,它使用了一种叫做“普遍性”的概念。可能是所有这些中最简单的一件事情,实际上当你着手它时。
谢谢!我从来不认为数据库系统很简单。我对所有人都感兴趣,但希望逐一学习,而不是全部一起学习。如果有一个系统显示其中一个概念,那就是我正在寻找的。我会看看你在这里提到的系统。 – 2012-04-20 06:19:36
然后找到一些教育材料:) 当我学习db概念时,我的教授要求我们编写一个简单的dbms。其中一个重要的参考是Redbase:
http://infolab.stanford.edu/~widom/cs346/
希望有所帮助。
谢谢!我被授予了这一点。但是,我认为它们对于初学者来说太复杂了......我正在寻找一种功能非常有限但展示了概念的产品。 – 2012-04-20 06:05:00
SQLite看起来不错,结构很清晰。我建立并查看了代码。虽然它不是很小,但可以处理。 – 2012-04-20 14:51:56
@AlfredZhong,SQLite是一个基于文件的数据库。它目前正在使用Android和HTML5作为本地存储。它也有一个很好的空间扩展Spatialite – Habib 2012-04-20 14:55:09