专栏名称: 码农翻身
工作15年的前IBM架构师分享好玩有趣的编程知识和职场的经验教训, 不容错过。
目录
相关文章推荐
程序员的那些事  ·  字节跳动:辞退 353 人,追刑责 39 人 ·  2 天前  
程序员的那些事  ·  刚刚!TypeScript 之父宣布一重大好消息 ·  2 天前  
美团技术团队  ·  空降复旦!上海首条高校无人机配送航线启航 ·  2 天前  
OSC开源社区  ·  MCP这么火,来一波简单实操记录 ·  4 天前  
架构师之路  ·  DeepSeek开源的DualPipe,居然 ... ·  3 天前  
51好读  ›  专栏  ›  码农翻身

小李的数据库之旅(上)

码农翻身  · 公众号  · 程序员 架构  · 2016-09-11 19:36

正文

1
无纸化办公
小李是这个大学计算机科学与技术系的知名学生,他的编程能力了得,使用Pascal 炉火纯青,这都是高中期间参加全国青少年信息学奥林匹克竞赛打下的底子,  虽然没有获过奖,但在80年代末,90年代初很多人都不知道计算机是何物的时候,人家就可以在上面写程序了, 是非常让人敬佩的事情。

所以一入学,辅导员就找到小李让他帮忙给系里开发个信息系统, 记录系里的学生信息,课程信息, 还有选课, 这样的话就可以无纸化办公了 。

小李觉得这只是一个基于命令行的程序, 无非是增删改查嘛,就满口应承下来, 然后祭出Pascal 大法,准备大干一场。

辅导员把相关的资料也送来了, 这学生信息无非是[学号,姓名,性别,身份证号,入学日期,班级] 等信息。
课程信息也就是[课程号,课程名,授课老师] ,    选课是[学号,课程号,成绩]

有了基本的数据结构, 小李决定用三个独立的文本文件来存储这些信息, 比如说student.txt 中的内容是这样:
第一行是表头, 其他行是内容,都用逗号分开 。
剩下的两个文件的格式和这个差不多。

编程工作进展的非常顺利, 最重要的部分无非就是用Pascal读写文件而已, 一周不到就完工了, 现在程序架构是这个样子的:
这个单机版的信息系统就这么运行了起来,效果还不错。
2
数据的冗余和不一致
商学院的主任听说计科系有了这么一个系统, 不由的也打起来注意, 辅导员就让小李用软盘拷贝了一份过去, 商学院也顺利用来起了。

可是有些计科系的学生到商学院去选修经济学的课程时, 发现还得再输入一遍学生信息, 这实在是太烦人了。

小李也没办法, 毕竟这是两套系统啊, 只有采用土办法, 把计科系的student.txt 复制了一份到商学院。

这样一来数据的重复难于避免了, 更有可能出现数据不一致的地方, 比如地址信息在计科系改了, 但是商学院没改。

后来辅导员说数学系自己也搞了一个类似的系统, 不是用Pascal而是用C写的, 数据格式和小李定义的还不一样, 小李想把Student.txt复制过去也不可能了。

小李想要是学校所有的院系都用这么一套系统就好了。 其实学校领导也看到了这个问题, 只是现在的校内局域网还没有建立起来, 大家用同一套系统并不现实。
3
李氏查询
到了期末, 计科系和商学院的老师纷纷给小李打电话:
“小李,我想统计一下这个学期操作系统课有哪些人没及格, 多少人在80分以上, 你能帮忙弄弄吗?”

“小李,我想算一下经济学的平均分, 能不能程序实现一下? 学生太多,手工算太麻烦了 ”
......

为了应付这些“变态”的需求, 小李假期几乎没怎么休息, 不停的用PASCAL写各种各样的功能。

可是这种需求似乎无穷无尽, 总结一下,无非就是对这些文件的各种各样的查询而已。

难道让老师们直接去文件中查找和计算吗? 显然不行。

小李想起了一句话: “ 所有计算机的问题都可以通过增加一个中间层来解决”

那提供一个中间层吧, 把文件层屏蔽掉, 让老师们在这个中间层用自己熟悉的术语进行查询。







请到「今天看啥」查看全文


推荐文章
程序员的那些事  ·  字节跳动:辞退 353 人,追刑责 39 人
2 天前
程序员的那些事  ·  刚刚!TypeScript 之父宣布一重大好消息
2 天前
OSC开源社区  ·  MCP这么火,来一波简单实操记录
4 天前
六神磊磊读金庸  ·  最后益条 | 十岁山里娃的小诗
8 年前
大呲花  ·  东北话神总结2016年!
8 年前
同道大叔  ·  12星座谁最坏坏哒!
8 年前
顶尖文案TOPYS  ·  是广告!让我沉迷学习无法自拔
8 年前
考研研学姐  ·  读研,有这几种重要能力需养成
7 年前