loading请求处理中...

关系型数据库问世前,DBA们都是怎么做数据存储管理的?

2021-12-02 06:14:56 阅读 12215次 标签: 关系型数据库 作者: a454466904

如果有人问你,关系型数据库发展的历史,让他看这篇文章——关于关系型数据发展的简史。我们把关系型数据库问世前、诞生时的“爱恨情仇”都好好地梳理一遍,还原最直观的数据库历史,帮助大家更全面地了解关系型数据库和数据库语言。

史前阶段

大家都知道世界上第一台通用计算机“ENIAC”于1946年在美国宾夕法尼亚大学诞生,但是很多人不知道第一台商用电脑的名字叫UNIVAC,1951交付于当时的美国的人口普查局。我们来看下UNIVAC的样子:

关系型数据库问世前,DBA们都是怎么做数据存储管理的?

(这就是UNIVAC)

那时的数据管理非常简单。通过大量的分类、比较和表格绘制的机器运行数百万穿孔卡片来进行数据的处理,其运行结果在纸上打印出来或者制成新的穿孔卡片。而数据管理就是对所有这些穿孔卡片进行物理的储存和处理。

关系型数据库问世前,DBA们都是怎么做数据存储管理的?

(穿孔卡片)

直到1956年IBM生产出第一个磁盘驱动器,驱动器有50个盘片,每个盘片直径是2英尺,可以储存5MB的数据。穿孔卡片和磁带只能顺序存取数据,而使用磁盘最大的好处就是可以随机存取数据。如此一来,计算机终于可以跑实时交易的业务了。

关系型数据库问世前,DBA们都是怎么做数据存储管理的?

(当时的机房)

于是乎,计算机开始广泛的应用于数据管理,人们对数据共享和处理的要求越来越高,传统的文件系统已经不能满足人们的需要。能够统一管理和共享数据的数据库管理系统(DBMS)应运而生。

在关系型数据库出现之前,主要是网状数据库(Network Databases)和层次数据库(Hierarchical Databases)。最早出现的是网状DBMS,是美国通用电气公司Bachman等人在1961年开发成功的IDS(Integrated DataStore),网状数据库模型对于层次和非层次结构的事物都能比较自然的模拟,当时网状DBMS要比层次DBMS用得更普遍。在数据库发展史上,网状数据库占有重要地位。

关系型数据库问世前,DBA们都是怎么做数据存储管理的?

(网状数据库)

层次型数据库紧随网络型数据库出现。最著名最典型的层次数据库系统是IBM公司在1968年开发的IMS(Information Management System),一种适合其主机的层次数据库。这是IBM公司研制的最早的大型数据库系统程序。

关系型数据库问世前,DBA们都是怎么做数据存储管理的?

(层次数据库)

关系型数据库的诞生

1970 年,IBM研究员E.F.Codd博士在刊物Communication of the ACM上发表了一篇名为“A Relational Modelof Data for Large Shared Data Banks”的论文,提出了关系模型的概念,奠定了关系模型的理论基础。

关系型数据库问世前,DBA们都是怎么做数据存储管理的?

(刊物上的论文)

1970年关系模型建立之后,IBM公司在San Jose实验室增加了更多的研究人员研究这个项目,这个项目就是著名的System R,目标是论证一个全功能关系DBMS的可行性。(该项目结束于1979年,完成了第一个实现SQL的DBMS)。

1973年加州大学伯克利分校的Michael Stonebraker 和EugeneWong利用System R已发布的信息开始开发自己的关系数据库系统Ingres(ORACLE数据库的雏形)。

由于当时IBM实验室的体制(IBM的研究人员大多是学术出身,他们最感兴趣的是理论和学术成果,而非推向市场的产品),以及当时IBM对IMS的承诺,IBM并不是第一个发布商用关系型数据库的公司。第一个商用关系型数据库是由霍尼韦尔公司在1976年发布Multics Relational Dat a Store(非SQL标准语句)。

1978年Ellison在为中央情报局做一个数据项目时,仔细阅读了codd发表的“R系统:数据库关系理论”,这个论文主要介绍了关系数据库理论和查询语言SQL。Ellison看完后,敏锐意识到在这个研究基础上可以开发商用软件系统。而当时大多数人认为关系数据库不会有商业价值。而就在几个月后,Oracle 1.0诞生了,oracle这个名字也来源于他们曾给中央情报局做过的项目名。

直到1985年IBM才发布了关系数据库DB2,那时oracle已经占有了很大的市场,Ellision已经成了千万富翁。1989年,微软发布了SQL Server 1.0版。三大商用关系型数据库的发布年份,也正好对应了市场占有率的排名。

SQL与NOSQL语言

谈起关系型数据库,那不得不谈的就是SQL语言。SQL是关系数据库通用的一种标准,如:DB2、Oracle、SQL Server、PostgreSQL、MySQL,但是用SQL的并不代表都是关系型数据库。

SQL语言诞生于1974年,是IBM提出的,但是关系型数据库在1970年已经出现,在没有出现SQL语言之前当时的查询语言依赖于复杂的数学逻辑和符号,查询语言成为关系型数据库发展的一个主要瓶颈,SQL的出现使没有接受过数学和计算机编程正规训练的用户也能简便的使用。

关系型数据库问世前,DBA们都是怎么做数据存储管理的?

(论文)

谷歌发布的 MapReduce (2004年)和 Bigtable(2006年),以及亚马逊发布的Dynamo,这些开创性的论文促使了更多非关系数据库的出现,包括 Hadoop、Cassandra和 MongoDB。这些新系统基本上都是从零开始编写的,他们并没有使用SQL而是都开发了自己的语言,这也就导致了 NoSQL 运动的兴起。

但是很快人们发现,没有SQL实际上是非常受限的。每个 NoSQL 数据库都提供了自己独特的查询语言,这意味着:学习更多的语言 (并在同事之间传播知识);增加了将数据库连接到应用程序的难度,导致代码之间有很强的耦合性;缺乏第三方生态系统,需要公司开发自己的操作和可视化工具。在这些种种原因下,SQL正在上演英勇回归,Hadoop 上的 SQL 接口蓬勃发展 (Spark 之后也是), 谷歌的Spanner论文提出spanner数据库成为一个SQL系统。

在当前数据库及数据库语言百花齐放的时代,更好地了解数据库的历史,摸清来龙去脉,能促进我们对数据库现状的理解。唯有知根知底,方能有的放矢。

Tag: 数据库

开发公司推荐

成为一品威客服务商,百万订单等您来有奖注册中

留言( 展开评论

快速发任务

价格是多少?怎样找到合适的人才?

官方顾问免费为您解答