知识卡片
关系模型战胜层次模型的根本原因:简单易用,而不是数学上更自洽
内容
关系数据库诞生于上世纪70年代,但直到80年代IBM发布第一代全功能关系数据库系统System R之后,人们才真正大规模进入关系数据库时代。很多人会下意识地认为关系模型能够胜出,是因为它有严格的数学理论支撑、比早期的层次模型更”科学”——但这个判断本身值得警惕:自从爱因斯坦把牛顿那套由完美数学保证的自洽理论踢出神坛之后,”数学自洽”就不再是判断一个理论/模型能不能真正胜出的唯一标准,真正决定胜负的往往是”哪个的用户最多”。关系模型最终打败层次模型,核心原因是它更简单易用——用一个具体查询案例来说明:假设要在所有汽车里,找出左轮胎供应商是某个特定品牌的记录,用层次模型实现,需要写代码遍历每一辆车、从车对象里找到左轮子、查看轮子供应商属性,符合条件的留下、不符合的丢弃,是一套完整的过程式遍历逻辑;而用关系模型,只需要一句select * from 轮子表 where 轮子位置='左' and 轮子供应商='某品牌'就能完成同样的查询——这种表达能力上的巨大差距,才是关系模型最终能够普及、层次模型逐渐退出历史舞台的根本原因。这个案例给出了一条评估任何”理论/技术方案为什么能够胜出”这类问题的重要提醒:不要想当然地把”技术上更严谨、更有理论支撑”直接等同于”实际会被更多人选择、最终会赢”——真正决定一项技术能否被广泛采纳的,往往是它能不能用更少的心智负担、更简单直接的方式,解决使用者真正关心的问题;理论上的优雅和实践中的易用性未必总是正相关,评估一项技术方案的前景时,应当认真审视它对使用者而言”用起来到底有多简单”,而不能只停留在”它的理论基础是不是更牢固”这个维度上。
参考来源
- 位置:《高可用架构(第1卷)》第6章《大数据与数据库》"6.7 从NoSQL历史看未来"节,"6.7.3 1980年:Know SQL"(源文件:_epub-src/OEBPS/Text/Chapter6_7_4.xhtml)
- 结论依据:原文说明"自从爱因斯坦把牛顿那由完美数学保证的自洽理论踢出了神坛,数学自洽就再也不是真理的标准了。哪个的用户最多,哪个就是真理。为什么关系模型最终赢得了比赛,而层次模型死掉了呢?很简单,因为哪个简单易用,哪个就赢了",并给出层次模型代码遍历与关系模型SQL一句话对比的具体例子,直接支撑本卡片结论。
- 原始内容:数学自洽就再也不是真理的标准了。哪个的用户最多,哪个就是真理。为什么关系模型最终赢得了比赛,而层次模型死掉了呢?很简单,因为哪个简单易用,哪个就赢了……select*from轮子表where轮子位置='左'and轮子供应商='DRDS'……只用一句就完成。