编辑我刚开始略读Codd着名的1970年论文,启动了这一切,甲骨文基于(大型共享数据库的数据关系模型[pdf]),并且惊讶地发现它似乎会回答这个问题.题.它讨论了当时市场上的数据库("层级"和"网络" - 如NoSQL?),内部表示独立的必要性,以及如何将数学"关系"应用于数据库的明确解释.
从历史上看,关系数据库的哪些特性给了企业采用它带来了哪些好处,使其大获成功?
今天,有很多理由使用RDB:它是标准的,产品是成熟的,调试的,功能齐全的,有供应商选择,有支持,有训练有素的劳动力等等.但为什么它变得如此受欢迎?
我听说" 分层数据库 "在关系数据库之前很流行 - 它们听起来像一个键值存储,其中值可以是另一组键值.如果是这样,那就类似于十年或两年前公布的面向对象数据库; 还有XML /文档数据库和NoSQL.
也许ACID交易(原子性等)?但这似乎并不特定于RDB.
也许是因为关系数据库使您能够定义纯粹与数据相关的数据模式 - 独立于特定编程语言,应用程序版本(演化)或应用程序的目的(这使得"阻抗不匹配"不可避免)但任何具有数据模式的数据库具有此功能.
也许是因为关系模型在数学上是合理的?但这听起来并不能说服管理者采用它 - 这将带来什么商业利益.
也许是因为数学模型为您提供了一种方法,可以将数据库重新排列为不同的常规形式,以提供不同的性能特征,这在数学上保证不会改变数据的含义?这似乎是合理的,我的单一教科书对此有很大帮助,但这对我来说听起来并不具有实际的商业利益(也许我错过了一些东西)?
总结一下:历史上,是什么让关系模型在层次模型中如此果断地获胜?我也对RDB是否仍然具有某些特殊品质感兴趣,这些品质能够使它们成为企业更好的实用选择(除了作为上述标准的好处之外).
非常感谢你能否解释一下 - 我一直很好奇这一点.
出于同样的原因,脚本语言很受欢迎.
您可以使用自己喜欢的文本编辑器进行查询,只需发出它,而无需考虑实际的物理架构.
它不是最快的型号,也不是最可靠的型号 - 它只是最高效的型号.您可以在一小时内编写十倍的查询.
您可能希望在我的博客中阅读这篇文章,其中比较了最流行的数据库模型:
什么是关系数据库?