您的位置:首页 > 数据库

数据库制作步骤

2017-03-22 15:56 23 查看
做过一个 ANSI-SQL兼容 事物化 分布式 内存数据库,还只是用于某内部项目而不需要实现得特别完整的情况下,写了我好一段时间昼夜不分。

简单来说还是几个步骤:

1. 学习:了解数据库中各个概念,弄不清概念接下来就是一头雾水。

2. 实践:从使用数据库开始,至少使用过几款数据库后,最好是在实际项目中使用,才能对各个概念有实际的印象。

3. 借鉴:读现有数据库的源代码,强烈推荐 SQLite 的代码。

4. 准备:根据已有知识,来决定自己要一个用于什么目的的数据库,需要什么特性,比起其他数据库有什么优劣,如何实现。使用什么语言,自己是不是熟悉这门语言的特性,这些都很重要。

5. 原型:数据库这种大体量的东西,千万不可能一口气吃成大胖子,一次性写出成品数据库是很难的。可以先开发一个原型,拥有数据库的主要特性。

6. 重构:现在你已经跳入过很多坑,在重构中你已经可以规避其中大多数。不要无限地重构,这样会没完没了。

7. 迭代:设计升级迭代的路径很重要,如果你想做一个越来越成熟的产品的话。

原型阶段,个人经验一两个月就行了。但重构阶段和迭代阶段会非常漫长,挖坑容易填坑难。

我设计的虽然是内存数据库,但是分布式特性,所以网络 I/O 以及分布式相关的内容成为了很多坑,我是一遍读别人代码一遍读论文度过的。写到后面突然需求要加持久化和备份的功能,又落入了磁盘 I/O 坑,苦不堪言。一上来准备充足还是有必要的,当然写了这玩意对我也有很大的帮助。

看到题主是 ACMer,有必要说点别的:

一定要写文档,否则别人没法用,时间长了你自己也不知道自己在干嘛,虽然写文档很烦。

一定要写测试,自动化测试是任何可靠的大型项目所必须的。完善的测试也能说服别人使用你的数据库。

搞 ACM 对数据库算法优化应该会起到很大的帮助。但 ACMer 也要养成良好的工程习惯,否则面对十万行的代码,一堆 a b c d 的变量绝对是无法维护的。注释、文档和测试都是相当反人类的,但是面对软件工程,是非常必须的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: