文章目录
接上文: 零基础科普 | 我们为什么需要数据库?(一)
先讲一个故事
作为学院的教秘老师,你收到了一张表格,是所有学生的成绩单(暂时不考虑实际有多大,假设只有三个学生,每人只有三门课程),需要你帮忙用计算机录入一下:
聪明的你想偷个懒,马上发现了这个表格存储的问题:
- 每个学生的信息被存储了多次,浪费了空间,于是你想到一个好主意:反正学生与学号一一对应,你只需要存一个学生信息表,成绩单中只要保留学号,不会造成任何信息损失,于是表格变成了这样。
- 聪明的你还发现一个问题,如果可以给课程编个号,就不需要打这么多字,也不用这么多次。于是,表格被简化成了这样。
- 聪明的你觉得还不够,发现了一个问题,如果可以存一个学院的表格多好,这样连学院也不用出现很多次了。这下,表格变成了这样。
- 这样发现有个问题,简单是简单了,但万一别人看不懂01、02、03不知道去哪里对应怎么办,你灵机一动,加了几个箭头表示这几个表之间的关系,这样就不会有任何问题了。
- 如果你70年代初参加工作,能够想到这一步,恭喜你,你已经接近图灵奖了!这里用到的,就是上文提到的E.F.Codd的关系模型。剩下的,就是如何开发这样一个的软件了。
回顾一下前文说过的好处
数据库将零散的数据组织起来,让数据变得结构化,易于管理和分析,数据不再是平铺的,而是有结构的了
。这样大家就可以理解,数据库对于数据管理的方便之处了。为了方便下面的描述,我们把四个表分别叫做:学生表,课程表,院系表,综合表。
- 我们需要导出全校课程表,只需要连接一下院系表和课程表:
- 我们需要所有学生的平均绩点,只需要连接一下学生表和综合表,然后再求平均值就可以了(大家可以理解所需信息是足够的,先忽略求平均值怎么操作)
- 我们需要还原完整的表格,只需要先把课程表和院系表连接,然后再把连接后的表格与综合表连接,最后连接学生表即可,可惜这里空白的地方太小,我写不下了。
(图片来自网络,为数学家费马)
总结全文
你体会到(关系)数据库对数据的管理了吗?
(图源网络,侵删)