当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/587635.html

相关文章:

  • 代数基本定理最简短的证明
  • C++ 中常见的字符串定义方式及其用法
  • 正运动与您相聚2025青岛国际工业自动化技术及装备展览会!
  • 前端字体使用操作
  • YOLOv11调参指南
  • 管程! 解决互斥,同步问题的现代化手段(操作系统os)
  • Linux操作系统从入门到实战(八)详细讲解编译器gcc/g++编译步骤与动静态库链接
  • Rocket常见问题及解决方案
  • H2 与高斯数据库兼容性解决方案:虚拟表与类型处理
  • 第12章:【系统架构设计师】系统架构设计-数据流风格
  • Oracle中的INSTR函数
  • 衡石科技技术手册--仪表盘过滤控件详解
  • 空间智能-李飞飞团队工作总结(至2025.07)
  • Spring Cloud分布式配置中心:架构设计与技术实践
  • 2025前端面试题
  • (懒人救星版)CNN_Kriging_NSGA2_Topsis(多模型融合典范)深度学习+SCI热点模型+多目标+熵权法 全网首例,完全原创,早用早发SCI
  • 【前端:Typst】--let关键字的用法
  • ethers.js-5–和solidity的关系
  • Popover API 实战指南:前端弹层体验的原生重构
  • 七、深度学习——RNN
  • C语言-流程控制
  • 详解从零开始实现循环神经网络(RNN)
  • 使用 keytool 在服务器上导入证书操作指南(SSL 证书验证错误处理)
  • kafka的部署
  • Android系统的问题分析笔记 - Android上的调试方式 bugreport
  • 论文阅读:WildGS-SLAM:Monocular Gaussian Splatting SLAM in Dynamic Environments
  • 深入浅出Kafka Consumer源码解析:设计哲学与实现艺术
  • Angular 框架下 AI 驱动的企业级大前端应用开
  • Kafka 时间轮深度解析:如何O(1)处理定时任务
  • 【Python】-实用技巧5- 如何使用Python处理文件和目录