读书人

简易内存数据库(1)总述

发布时间: 2012-12-19 14:13:14 作者: rapoo

简易内存数据库(一)总述

项目的要求是:

需要接受create,insert,select, update,delete等语句,在内存中建立一个数据库表。并对这个表进行相应的操作。

?

动手之前有一些提示。

?

不管我们处理哪一种语句,要做的都是2件事:1)解析相关的语句。2)把语句所表述的内容保存在内存中。

我先解释一下这两点:

?

首先,你的程序是运行在内存中,程序所要处理的内容当然需要预先保存在内存中,这样你才可以进行内容操作。

保存在内存中,换句话说你可以申明变量,把文件中所表述的内容赋值到变量中。

?

那么这个或这些变量应该是什么类型的呢。

你第一个想到的,既然是文本形式读到的内容,就保存在一大块char[]中了。这当然是可以的。

只是整块的保存不利于我们今后对相应数据的处理。比如每次取某一条数据,我们都会需要对整个文本进行解析。这样做效率太低。

?

因此我们要做的是,先把整块文本解析好,然后把它保存在比较利于今后处理的类型中。

这就是我说的要做的2件事

?

把问题分解了来解决。

遇到一些问题很难马上想明白,正常人都是这样的。这种时候把问题分解开来就方便解决了。

比如实现SELECT的时候,我们会觉得非常复杂,无从下手。SELECT要选择某些字段,要符合某个或某些条件,还要符合一定的顺序。SELECT函数我是这样写的

struct Table{char  name[50];Column * columns;};

?这样设计并没有解决所有的问题。但是这样的设计就是为了把问题分解开来。

?

?

这些个内容需要同学一边开发一边自己体会。

读书人网 >其他数据库

热点推荐