老师说仿SQL Server2000做,现在最大的问题是如何存储用户建立的表的结构和如何存储表中的数据!!做其它的应用数据库的项目还没问题的,不过这回是开发一个简单的数据库系统这就不一样了!!高手给点思路,路过也帮忙UP一下!!小弟先谢各位了!!

解决方案 »

  1.   

    SQL Server不是一个人能做出来的,仔细问问你们老师吧。
    我觉得不可能这么bt
      

  2.   

    方法有聪明的,也有笨的,
    想不到聪明的,就用笨的吧。
    用文件保存数据,自己设计结构,最好有利于算法的简化与操作的速度。
    用算法实现数据操作,包括分析你自己的SQL语言系统。
    或者你就可以做一个笨的数据库引擎了,虽然效率不高,但有一些类似的功能就行,哈哈。
      

  3.   

    有免费带源码的DBMS,如InterBase,全部是用C写的,不过如果看它们的源代码你回更晕。
      

  4.   

    to  chennai(脱西炽勒):用文件保存数据,怎么保存??表中的字段个数是不定的用记录类型也不可能动态定义啊!!请在说详细点!!
      

  5.   

    偶同事以前拿c做过,不过根本不敢和SQL Server比的
    因为差距太大了,没一点实用价值
      

  6.   

    呵呵。简单的作出来一个就是了阿,我想也不会很困难。很多Perl写的论坛都是自己写的文本数据库的。只有一点!效率阿安全性阿强大的管理功能这些问题你就基本上不用去管它了。
    我觉得主要问题有:
    1.设定数据库格式。当然不能搞得太复杂,只需要能够存储数据库表就行了,反正其他东西都可以放在表里。可以参考MySQL的格式。
    2.设定SQL语句标准,还有数据类型之类的。当然搞得像SQLServer那么复杂不大可能,ANSI92 SQL也很有难度,那么就减少一点吧,呵呵
    3.然后就可以考虑如何存储数据了,还有查询,这些都是通过解析SQL语句来实现。解析最方便是用正则表达式,当然简化的SQL语句不是很复杂所以自己解析也可以拉。
    4.当然要性能好一点也可以使用索引这种东西我也没做过,大概思考了一下是这个样子。还有,SQLServer虽然用起来简单但功能过于繁复,建议还是参照MySQL来做吧,管理界面也可以是CONSOLE。
    MySQL的存储文件命名格式是这样的(内部没有分析过,应该是二进制的数据,每个字段的数据连续存放的吧):
    假设有一个数据库example,example有一个表table1
    /data
    /data/example
    /data/example/table1.frm     表的定义
    /data/example/table1.MYD     表的数据
    /data/example/table1.MYI     表的索引
    还有个mysql库是放系统数据的,包括数据库用户和各个数据库的权限等等
      

  7.   

    应付你的老师,用DBF的思想我想足够了,用文件流建立一个文件(二进制的)在开始的某个字节中记录有多少个字段和字段共多长,然后记录字段的类类型,长度等信息,字段结束标志最后记录记录是从哪个字节开始的,记录最好是固定长度,这样你修改,删除记录定位记录方便,大致这些,这是早期DBF的方法,你的老师我想也不敢说不对,不过很费时,如果你真的做出来,你对文件的操作方面你就可以称高手了,练练吧
      

  8.   

    http://sourceforge.net/projects/tdbf/这是Dbf的一个实现.
      

  9.   

    to wave_calmly(静波) :非常感谢你提供的网址,这个是不错,可光看懂那些代码都来不及了的。
    to yuehua(月):你的方法比较有可行性,有这方面的资料吗??或者你讲得更清楚些!!再次感谢各位的热心帮助!!
      

  10.   

    嗯!好呀,我还想找这方面的资料呢,这里的高人已经说的挺清楚的了,Good!
      

  11.   

    To DoorKey(剑客):我已经将代码发到你的邮箱里去了,请查收。
      

  12.   

    to  tommwang():代码已经收到!!正在学习!!非常感谢你!!
      

  13.   

    在打包的时候,在要安装的文件中在添加一个卸载的快捷方式**.lnk一同打包安装即可。