This topic has been archived. It cannot be replied.
-
枫下拾英 / 人生足迹 / 每个时代都有当时有乐趣的事。当年本科生毕业设计做了一个数据库管理系统。测试的时候,提交了一个查询语句,结果1分钟才转出来。看着自己的数据库也能查询了,虽然慢,但是还是很兴奋。做的很粗糙,只支持NLJ。好像mysql现在也是。
-**🐥;
2022-12-1
(#14993928@0)
+1
-
算法是系统自带还是编程实现?
-once01(一切都还没结束);
2022-12-1
(#14993985@0)
+1
-
数据库查询的算法难吗?我一个半吊子30年前就会写
-lifewillbebetter(XYY);
2022-12-1
(#14994003@0)
+1
-
好像是要用到B+树算法,当时实验室里有位在读博士用C实现B+树算法时,受到导师的表扬,印象特别深刻。
-**🐴;
2022-12-11
(#15015942@0)
-
当时还很幼稚,眼界也窄,要是现在的话,肯定会参考别的数据库的internal。现在源程序还都在,打印出来的,看不懂了。但估计慢的主要原因是没有太注意data block buffer/cache, dictionary /library cache,这类东西,更别说freelist, hash这些东西了。印象,为了解决unix file lock都废了好大劲。
-**🐥;
2022-12-1
{204}
(#14994086@0)
-
现在的话,都是网络环境运行,对并发操作及死锁问题的考虑就够你折腾了,呵呵.....
-see1see(Isee);
2022-12-2
(#14994339@0)
-
当时也考虑并发,所谓的多用户,但不是多机系统,还是UNIX单机系统,也没有考虑多个CPU。多节点的cluster数据库,当时想都不敢想。那时国内还没有互联网,找不到资料。唯一有用的就是那个UNIX系统C programmer guide
我现在回忆,那个系统,我主要实现了SQL语言的解释执行,包括语法语义分析,转化成四元组,执行四元组,索引等基本功能。连statistics都没有做,buffer管理也基本没有。既然没有statistics信息,所以也没有做查询方案优化。JOIN只有NLJ,Access Method只有KeyLookup,和全表scan.
好像也不支持交易恢复,因为我不记得做了logical log。就是说数据库坏了,没法恢复。
我那个数据库比关系库强的地方是支持对象,包括集合,class。参考了IBM的SQL82,但是增加了对象之间的查询。
-**🐥;
2022-12-2
{464}
(#14994375@0)
-
你做了这么多,也算是很牛了哈....记得当年评职称时有个软件方面的评委问的问题中有涉及DBS的,居然问dBaseIII 的数据结构啥的,俺说只是知道算法主要用的是B+树,人家若再问细节估计俺就写不出来了,也是没资料没反汇编过,好在没再问下去...
-see1see(Isee);
2022-12-2
(#14994396@0)
-
我当年也很牛,因为不想用盗版软件,直接用c写了个foxBase数据库文件的读写功能,用在我的毕业工控软件里了
-wuyg719(平平);
2022-12-2
(#14994415@0)
-
我的暑假暑期作业是学校图书馆检索系统。源代码是DATABASE3,懒得看,干脆用FOXpro重头做。接我的下一届也懒,用visual foxpro重写。
-sane0898(第2杯咖啡);
2022-12-1
(#14994312@0)
-
呵呵,什么DATABASE3 ?是dBbse III吧.....80年代国内最流行的PC版本.....大部分人都用过,后来90年代也曾用过Visual Foxpro当Web后台数据库...有中间件的支持,在用户不很多(少于几千)的情况下响应速度还是挺快的...
-see1see(Isee);
2022-12-2
(#14994325@0)
+1
-
我还用过FoxBase, DOS 的XT机器,当时我们单位算有钱的,产值若干亿
-lifewillbebetter(XYY);
2022-12-2
(#14994942@0)
+1
-
我校当时还有台小型机,能跑COBOL,可惜当时太年轻太简单,谁能想到COBOL居然这么长寿。
-sane0898(第2杯咖啡);
2022-12-3
(#14996828@0)
-
现在还在跑吗
-curve(curve);
2022-12-3
(#14996920@0)
-
你这个是应用水平的,应该是非CS专业的人干的,后来进化成Access 了,因为太好友所以淘汰不掉。楼主做的是CS硬核,就是写个dBASE, foxpro的简化版给人用。
-**🍭;
2022-12-3
(#14996879@0)
+4