×

Loading...

Topic

  • 枫下拾英 / 人生足迹 / 每个时代都有当时有乐趣的事。当年本科生毕业设计做了一个数据库管理系统。测试的时候,提交了一个查询语句,结果1分钟才转出来。看着自己的数据库也能查询了,虽然慢,但是还是很兴奋。做的很粗糙,只支持NLJ。好像mysql现在也是。 +1
    • 算法是系统自带还是编程实现? +1
      • 数据库查询的算法难吗?我一个半吊子30年前就会写 +1
        • 好像是要用到B+树算法,当时实验室里有位在读博士用C实现B+树算法时,受到导师的表扬,印象特别深刻。
      • 当时还很幼稚,眼界也窄,要是现在的话,肯定会参考别的数据库的internal。
        现在源程序还都在,打印出来的,看不懂了。但估计慢的主要原因是没有太注意data block buffer/cache, dictionary /library cache,这类东西,更别说freelist, hash这些东西了。印象,为了解决unix file lock都废了好大劲。
        • 现在的话,都是网络环境运行,对并发操作及死锁问题的考虑就够你折腾了,呵呵.....
          • 当时也考虑并发,所谓的多用户,但不是多机系统,还是UNIX单机系统,也没有考虑多个CPU。多节点的cluster数据库,当时想都不敢想。那时国内还没有互联网,找不到资料。唯一有用的就是那个UNIX系统C programmer guide

            我现在回忆,那个系统,我主要实现了SQL语言的解释执行,包括语法语义分析,转化成四元组,执行四元组,索引等基本功能。连statistics都没有做,buffer管理也基本没有。既然没有statistics信息,所以也没有做查询方案优化。JOIN只有NLJ,Access Method只有KeyLookup,和全表scan.

            好像也不支持交易恢复,因为我不记得做了logical log。就是说数据库坏了,没法恢复。

            我那个数据库比关系库强的地方是支持对象,包括集合,class。参考了IBM的SQL82,但是增加了对象之间的查询。

            • 你做了这么多,也算是很牛了哈....记得当年评职称时有个软件方面的评委问的问题中有涉及DBS的,居然问dBaseIII 的数据结构啥的,俺说只是知道算法主要用的是B+树,人家若再问细节估计俺就写不出来了,也是没资料没反汇编过,好在没再问下去...
              • 我当年也很牛,因为不想用盗版软件,直接用c写了个foxBase数据库文件的读写功能,用在我的毕业工控软件里了
    • 我的暑假暑期作业是学校图书馆检索系统。源代码是DATABASE3,懒得看,干脆用FOXpro重头做。接我的下一届也懒,用visual foxpro重写。
      • 呵呵,什么DATABASE3 ?是dBbse III吧.....80年代国内最流行的PC版本.....大部分人都用过,后来90年代也曾用过Visual Foxpro当Web后台数据库...有中间件的支持,在用户不很多(少于几千)的情况下响应速度还是挺快的... +1
        • 我还用过FoxBase, DOS 的XT机器,当时我们单位算有钱的,产值若干亿 +1
        • 我校当时还有台小型机,能跑COBOL,可惜当时太年轻太简单,谁能想到COBOL居然这么长寿。
          • 现在还在跑吗
      • 你这个是应用水平的,应该是非CS专业的人干的,后来进化成Access 了,因为太好友所以淘汰不掉。楼主做的是CS硬核,就是写个dBASE, foxpro的简化版给人用。 +4