咋实现一个简单的数据库系统

没实现过,看过丁点MySQL源码。要想实现,首先要有优秀的C/C++功底,其次要对开源数据库的源码了若指掌,然后要对操作系统、网络有很深入的理解,接着还要有较好的英文基础,最后,还要有快速解决问题的能力、坚韧不拔的毅力。MySQL,PostgreSQL,SQLite都是开源的,他们的代码值得一读。
【咋实现一个简单的数据库系统】 其他参考资料:
1. http://t.cn/RzMgx0O
2. http://t.cn/RzMgiWL
Good Luck!

■网友
今天看到的一个C实现的Btree数据库:
How Does a Database Work?
代码量不大,教学性质。

■网友
这里有两个教学项目,都配有相应的教材。http://www.cs.bc.edu/~sciore/simpledb/是java编写的多用户,cs结构。http://pages.cs.wisc.edu/~dbbook/openAccess/Minibase/project.html这个是c实的。
■网友
#!/bin/bashdb_set () { echo "$1,$2" \u0026gt;\u0026gt; database}db_get () { grep "^$1," database | sed -e "s/^$1,//" | tail -n 1} 这两个函数实现了键值存储的功能。执行 db_set key value ,会将 键(key)和值(value) 存储在数据库中。键和值(几乎)可以是你喜欢的任何东西,例如,值可以是JSON文档。然后调用 db_get key ,查找与该键关联的最新值并将其返回。
麻雀虽小,五脏俱全:
$ db_set 123456 \u0026#39;{"name":"London","attractions":}\u0026#39; $ $ db_set 42 \u0026#39;{"name":"San Francisco","attractions":}\u0026#39;$ db_get 42{"name":"San Francisco","attractions":}摘自http://shop.oreilly.com/product/0636920032175.do

■网友
从sqlite看下应该会有思路的吧。
引擎层的东西的确比较复杂,特别涉及到sql解析的部分。
下层的索引、硬盘空间管理、缓冲区等,这块的难度应该还好,有一定工作量,但不是特别的困难。

或者考虑下再看看nosql的一些思路,学习下nosql的做法。对比sql和nosql的设计思路和想法


    推荐阅读