数据库的前世今生

【CSDN 编者按】被称之为基础软件三驾马车之一的数据库,在经历了层次型和网状型、关系型数据型库以及更加强大的数据管理功能等三个时期之后,其在未来的发展历程中还有哪些更多的可能性?
基于此,卡内基梅隆大学计算机科学系数据库学副教授 Andy Pavlo 曾于 2015 年为 CMU 计算机科学系 50 周年庆典上写下了自己对于数据库未来 50 年的构想 。
在本文中,他提出了几点:关系模型对于大多数应用而言仍将占据主导地位,开发框架和数据库管理系统将更加紧密地耦合在一起,从而使所有数据库交互都透明化,SQL 仍然是与 DBMS 交互的实际语言,但人类永远都不会真正编写 SQL,将以自然语言查询相关数据问题,这将导致编程方式发生重大变化 。无所不在的「物联网」意味着每个设备都能收集其环境的数据,对于新硬件,更灵活和可编程的处理结构将更为普遍,人类作为数据库管理员的角色将不复存在,DBMS 最终将完全自治和自我修复,星际设备的数据库事务将兴起,最终,「我将在 50 年后去世」 。

数据库的前世今生

文章插图
作者 | Andy Pavlo
【数据库的前世今生】译者 | 谭开朗,责编 | 屠敏
出品 | CSDN(ID:CSDNnews)
以下为译文:
最终,我还是从事了我曾扬言不会从事的职业:成为一名教授,有自己的博客,但从不更新 。我知道,距离我上次发表文章已有一年之久,我也需要给事务处理数据库系统这一开放议题撰写第三部分内容 。去年在CMU发生了很多事情,我计划在项目更加完善后再在这里讨论 。预告几点:
  1. 我们正在开发一个新的分布式DBMS;
  2. 我们正在构建一个用于测试和基准化分析的“准备启用的”大型OLTP应用程序库;
  3. 我们正在创建一个在线数据库系统百科全书 。
当然,还有很多并发控制和非易失性内存工作 。毫无疑问,我的课外教授活动已经顾不太上了 。
以下是我写的一篇文章,作为下个月CMU计算机科学系50周年庆典的一部分 。我们每个教员的任务是:针对自身所在的领域,展望其在2065年的发展概况 。所以,我的任务是概述数据库系统在50年后的样子 。但是,在我展望未来之前,我首先花一些时间来讨论数据库的过去和现在 。
1.数据库的过去
第一个数据库管理系统(DBMS)在1968年上线 。IBM的IMS用于跟踪土星5号和阿波罗太空探索项目的供应和零部件库存 。它引入了这样一种思想,即应用程序的代码应该与它所操作的数据分离 。由此支持开发人员编写只关注数据访问和操作的应用程序,而不关注与执行这些操作和确保数据安全相关的复杂性和开销 。IMS之后,在20世纪70年代早期,IBM的System R和加州大学的INGRES率先开发了第一个关系型DBMS 。
第一批系统的数据库工作负载没有今天那么复杂和多样化 。在这些早期的应用程序中,操作员通过终端启动事务,然后手动向系统输入新数据 。此时,DBMS的预期峰值吞吐量仅为每秒数十到数百个事务,响应时间以秒为单位度量 。这些早期DBMS的体系结构也基于当时流行的计算硬件 。它们通常部署在只有一个CPU核心和少量主内存的计算机上 。对于这些系统来说,磁盘是数据库的主要存储位置,因为磁盘能够存储比内存更大的数据,而且成本更低 。
2.数据库的现在
尽管在50年后,我们使用数据库的方式发生了很大的变化,关系模型和SQL仍然是组织数据库并与之交互的主要方式 。许多互联网应用程序需要每秒支持数十万甚至数百万个事务,每个事务的处理延迟以毫秒为单位 。这是因为它们同时与数百万用户和其他计算机系统相连 。现在,企业和组织能够从这些应用程序中收集大量的数据,他们希望分析这些数据来推断新的信息,以指导他们的决策 。基于此,近年来我们看到了针对特定应用场景的专门系统的兴起,这些应用场景的性能比基于1970年代架构的通用DBMS要好得多 。现在有一些DBMS旨在为联机事务处理(OLTP)应用程序快速获取新信息,还有一些DBMS旨在为复杂的联机分析处理(OLAP)程序存储大量数据 。
这些较新的DBMS还利用了近年来出现的三种主要硬件趋势 。首先是大内存计算机的出现,这使得现在可以部署少量的机器,这些机器有足够的DRAM来存储除了最大的OLTP数据库之外的所有数据 。将数据存储在内存中可以确保DBMS能够以较低的延迟同时处理许多事务 。根据我们的经验,用于现代OLTP应用程序的数据库的大小通常为几百GB 。与OLAP数据仓库相比,DBMS可以管理几个PB大小的数据库 。这是因为OLTP数据库存储应用程序的当前状态(例如,最近90天的订单),而OLAP数据库存储组织的所有历史信息(例如,所有下过的订单) 。因此,OLAP DBMS仍然主要存储在磁盘上,并使用一些优化,如压缩或柱状存储,以克服它们较长的访问时间 。


推荐阅读