Advanced Database Systems: History of Databases
《Advanced Database Systems: History of Databases》聚焦数据库系统发展脉络。本文先阐述研究背景,梳理课程核心要点;再系统追溯数据库历史演进,总结关键论文的理论突破与实践价值;最后列出参考文献。通过多维度梳理,呈现数据库从萌芽到成熟的历程,为理解现代数据库系统提供全景视角。
What Goes Around Comes Around
介绍了数据模型发展的 35年历史,一共有9种模型
网络模型、层次模型、关系模型这几个是主导的
实体关系、R++、语义模型、OO、对象关系,是对关系模型的一些补充
schema-last 是个很不错的补充
严格机构化、严格结构+半结构、半结构、文本数据
第1、第2都有很多场景,第4 用于文本信息检索
第3 种场景实际不多
历史的轮回
数据模型的发展历史,从复杂、到简单,简单模型最后获胜
可见简单模型、逻辑-物理结构、高层级API 是非常有用的
随后就是一系列的功能增强,但这些没能吸引市场,因为增加了很多复杂度,但却没能带来更多的好处
比如 XML 倡导者 vs关系模型,就很像 关系模型 vs CODASYL
只有 UDF,以及自定义访问方式 能吸引人注意
以及 code in data base、schema last 真正新的发明
大多数新发明则是对过去的模型的重新发明而已
总数据库的历史看
最初是有三种形态的数据模型,网络模型、层次模型、关系模型(出现更靠后)
网络模型和层次模型都有它的优点,相对于关系模型,这两个最大的问题是 逻辑数据、物理数据耦合
也没有提供一种高层级别 API
所以关系模型出现后,提供了一种更简单的数据结构、更高层级别API、更重要的是 物理、逻辑数据解耦
很快关系模型就占据市场主导地位了
商业市场的 IBM、Oracle,以及学术界的 PostGRE都相继出现,但这个时候还是商业主导
之后出现了各种对关系模型的补充
实体关系模型、R++模型、OO模型、对象关系模型,这些模型都不能算主导地位
2000年之后
互联网的出现,使的数据库并发大增,商业数据库显得太贵了,开源 + 自研就称为主导了
这时候出现了一批开源的 NoSQL数据库,他们只能解决一类问题,并对关系模型、事务做了减法
这些数据库都是互联网头部公司搞出的开源产品,加上MapReduce的出现,看起来在数据库之外可能要有一条新的路线
但是过了十年后,这些NoSQL还是缺乏一些基本保障、纯MapReduce 太底层了,跟最初的 CODASYL 一样是跟底层紧耦合的
所以从历史看,这就是一个错误的选择,高层级 API、尽可能的抽象是数据库发展的一个必经之路
2010年之后
NewSQL的出现,因为有更大的业务需求,所以一定要分布式,但是关系模型还是很好用的
一个大的趋势是单纯的自建Hadoop 集群成本太高,远不如云厂商的对象存储划算,在替代Hadoop 的同时,出现了存储计算分离
存储计算分离之后,就是各种云数据库,有云厂商的、有独立新兴公司、以及老牌公司转型的
此外基因数据库、流计算、图数据库、时序数据库、区块链数据库、向量数据库等等各种专业方向的数据库也出现了
随着业务规模的变大,各种更细分主题的主题的数据库也跟着出现,他们都用来解决一些特定场景的问题,而这些特定场景的市场也不小
可能以后会有更多的数据库,但是解耦、高层级 API 应该是一个不变的主题每种数据库都会各自的解决场景,但又会扩大自己的领域,都会支持SQL,所以边界也模糊了而关系模型,SQL这种声明式语言,则又进一步增强了
参考
Charles Bachman
Culliane Database Systems
Paper: Derivability, redundancy and consistency of relations stored in large data banks
Paper: A relational model of data for large shared data banks
The difference between God and Larry Ellison
Data Cube
The (sorry) State of Graph Database Systems
Duck PGQ: Efficient Property Graph Queries in an analytical RDBMS
Merkle Trees
相关文章
Column-Stores vs. Row-Stores: How Different Are They Really?
Lakehouse A New Generation of Open Platforms that Unify Data Warehousing and Advanced Analytics
Building An Elastic Query Engine on Disaggregated Storage
Efficiently Compiling Efficient Query Plans for Modern Hardware
Generating code for holistic query evaluation