直至 20 世纪 90 年代,数据库的演变主要受到企业不断变化的需求驱动。
译自 A Brief DevOps History: Databases to Infinity and Beyond ,还有第二部分,敬请期待。
这是一个由两部分组成的系列文章中的第一部分。
我们距离一项技术的起源越远,就越容易认为所需的大量工作和创新飞跃是理所当然的,这些工作和创新飞跃使我们达到了今天的地步。数据库就是这样一项技术。在第一个数据库实施之后的几十年里,许多人都已经出生了,虽然我们知道这项技术很古老,但我们对于达到今天的地步所经历的过程一无所知。
为了理解数据存储和组织是如何演变的,我们首先需要了解计算机在计算机初期是如何使用的。当时并不存在我们今天所知的“数据存储”概念,只有一大堆的打孔卡盒子。机器本身没有真正的存储设备,没有操作系统,什么都没有。这在当时大多数情况下还算可以。计算机一次只能运行一个任务,因此你会按约定时间出现在计算机前,运行打孔卡,拿走打印输出,然后离开。否则你无法与计算机交互。它们更像是巨大而先进的计算器。
1951 年,Univac I 计算机发布了,并且随之推出了第一个磁带存储驱动器。这使得写入速度更快,每秒可以处理数百条记录,但是如果需要查找某个数据,磁带存储速度会相对较慢,因为只能按顺序访问。
在短短几年后的 1956 年,IBM 推出了 305 RAMAC ,引入了磁盘存储。与磁带不同,存储在磁盘上的数据可以随机访问,这加快了读取和写入速度。直到那时,我们只能按顺序访问数据和执行程序,因此从概念上讲,这对人们来说是一个相当大的飞跃。但没有一个系统来更轻松地组织和访问数据,实际上这并没有带来太大的好处。
1961 年,查尔斯·巴赫曼(Charles Bachman)为通用电气编写了第一个数据库管理系统,名为集成数据存储(Integrated Data Store,简称IDS),这为许多新技术打开了大门。从架构上看,它是一项杰作,至今仍有使用 IDS 类型数据库。对于某些应用程序来说,它的性能是导航式数据库所无法匹敌的。
几年后,虽然其他通用数据库系统进入市场,但并未制定与之交互的真正标准,巴赫曼成立了数据系统语言委员会(CODASYL),开始制定标准的编程语言。于是,COBOL 诞生了。
1966 年,另一个导航式数据库发布,这将改变历史的进程 —— IBM 的信息管理系统(Information Management System,简称 IMS),它是为阿波罗任务开发并在令人难以置信的 IBM System/360 上发布的。从计算角度来看,我们今天拥有的一切都不可能没有 System/360 以及为其构建的东西。从虚拟化到数据存储,IBM 在 System/360 大型机上开创了无数的计算创新。在这种情况下,IMS 通过处理炫酷的火箭“土星五号”的材料清单,将我们送上了月球。IBM 将其称为分层数据库,但 IDS 和 IMS 都是最早的导航式数据库的例子。
在 20 世纪 70 年代,数据库变得关联起来。当时,埃德加·科德(Edgar Codd)正在 IBM 工作,他对 CODASYL 的方法感到相当沮丧,因为从功能上讲,一切都是一个链表,导致搜索功能不可能实现。
在他的论文《A Relational Model of Data for Large Shared Data Banks》中,他描述了一种将数据组织成一组表的替代模型,每个表包含不同类别的数据。在表内,数据将被组织成固定数量的列,其中一列包含该特定项的唯一标识符,其余列包含该项的属性。从这个模型中,他描述了基于这些唯一键之间关系的查询,以返回结果。听起来很熟悉,对吗?
最初,科德用数学术语来描述这个模型。他使用关系、元组和域,而不是表、行和列。模型本身的名称“关系数据库”来自于这个模型中允许连接的操作所建立的关系演算数学系统。据说,他对于人们没有使用他描述的数学术语,而将表、行和列变成标准感到不是很开心。
1974 年,IBM 也在基于科德的论文进行原型开发。System R 是我们今天所熟知和喜爱的 SQL 的首个实现,也是关系模型可以提供稳定性能的首个证明,对许多后来的系统产生了算法影响。IBM 一直在对此进行调试,直到 1979 年,才意识到需要一个生产版本,最终成为了 Db2 。IBM 关于 System R 的论文成为了 Larry Ellison 的 Oracle Database 的基础,最终在 1979 年通过 Oracle v2 的公开发布赶超 IBM 进入市场。
同样在 1979 年,Eugene Wong 和 Michael Stonebraker 发布了 INGRES ,它基于科德的思想。它最初使用一种叫做 QUEL 的查询语言,但后来转向 SQL ,因为清晰地看到标准朝着这个方向发展。虽然 INGRES 本身并没有长期存在,但从中学到的经验教训却留存下来:将近 20 年后, Michael Stonebraker 发布了我们都熟知和喜爱的数据库: PostgreSQL 。
直到此时,数据库的演变在很大程度上是受企业和企业硬件不断变化的需求所驱动的。计算机还没有以适合普通人(无论是在家还是办公室)使用的形式和价格存在。我们需要另一个飞跃,另一个在人们根本使用和思考计算机的方式上的转变,才能再次看到数据库的演变。要了解更多信息,请继续关注本系列的第二部分。