1.
数据管理的诞生
数据库的历史可以追溯到五十年前,那时的数据管理非常简单。通过大量的分类、比较和表格绘制的机器运行数百万穿孔卡片来进行数据的处理,其运行结果在纸上打印出来或者制成新的穿孔卡片。而数据管理就是对所有这些穿孔卡片进行物理的储存和处理。然而,
1 9 5 1
年雷明顿兰德公司(
Remington Rand Inc.
)的一种叫做
Univac I
的计算机推出了一种一秒钟可以输入数百条记录的磁带驱动器,从而引发了数据管理的革命。
1956
年
IBM
生产出第一个磁盘驱动器
—— the Model 305 RAMAC
。此驱动器有
50
个盘片,每个盘片直径是
2
英尺,可以储存
5MB
的数据。使用磁盘最大的好处是可以随机地存取数据,而穿孔卡片和磁带只能顺序存取数据。
1951
:
Univac
系统使用磁带和穿孔卡片作为数据存储。
数据库系统的萌芽出现于
60
年代。当时计算机开始广泛地应用于数据管理,对数据的共享提出了越来越高的要求。传统的文件系统已经不能满足人们的需要。能够统一管理和共享数据的数据库管理系统(
DBMS
)应运而生。数据模型是数据库系统的核心和基础,各种
DBMS
软件都是基于某种数据模型的。所以通常也按照数据模型的特点将传统数据库系统分成网状数据库、层次数据库和关系数据库三类。
最早出现的是网状
DBMS
,是美国通用电气公司
Bachman
等人在
1961
年开发成功的
IDS
(
Integrated DataStore
)。
1961
年通用电气公司(
General ElectricCo.
)的
Charles Bachman
成功地开发出世界上第一个网状
DBMS
也是第一个数据库管理系统
——
集成数据存储(
Integrated DataStore IDS
),奠定了网状数据库的基础,并在当时得到了广泛的发行和应用。
IDS
具有数据模式和日志的特征。但它只能在
GE
主机上运行,并且数据库只有一个文件,数据库所有的表必须通过手工编码来生成。之后,通用电气公司一个客户
——BF Goodrich Chemical
公司最终不得不重写了整个系统。并将重写后的系统命名为集成数据管理系统(
IDMS
)。
网状数据库模型对于层次和非层次结构的事物都能比较自然的模拟,在关系数据库出现之前网状
DBMS
要比层次
DBMS
用得普遍。在数据库发展史上,网状数据库占有重要地位。
层次型
DBMS
是紧随网络型数据库而出现的。最著名最典型的层次数据库系统是
IBM
公司在
1968
年开发的
IMS
(
Information Management System
),一种适合其主机的层次数据库。这是
IBM
公司研制的最早的大型数据库系统程序产品。从
60
年代末产生起,如今已经发展到
IMSV6
,提供群集、
N
路数据共享、消息队列共享等先进特性的支持。这个具有
3 0
年历史的数据库产品在如今的
WWW
应用连接、商务智能应用中扮演着新的角色。
1973
年
Cullinane
公司(也就是后来的
Cullinet
软件公司),开始出售
Goodrich
公司的
IDMS
改进版本,并且逐渐成为当时世界上最大的软件公司。
2.
关系数据库的由来
网状数据库和层次数据库已经很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。而后来出现的关系数据库较好地解决了这些问题。
1970
年,
IBM
的研究员
E.F.Codd
博士在刊物《
Communication of the ACM
》上发表了一篇名为
“A Relational Model of Data for Large Shared Data Banks”
的论文,提出了关系模型的概念,奠定了关系模型的理论基础。尽管之前在
1968
年
Childs
已经提出了面向集合的模型,然而这篇论文被普遍认为是数据库系统历史上具有划时代意义的里程碑。
Codd
的心愿是为数据库建立一个优美的数据模型。后来
Codd
又陆续发表多篇文章,论述了
范式
理论和衡量关系系统的
12
条标准,用数学理论奠定了关系数据库的基础。关系模型有严格的数学基础,抽象级别比较高,而且简单清晰,便于理解和使用。但是当时也有人认为关系模型是理想化的数据模型,用来实现
DBMS
是不现实的,尤其担心关系数据库的性能难以接受,更有人视其为当时正在进行中的网状数据库规范化工作的严重威胁。为了促进对问题的理解,
1974
年
ACM
牵头组织了一次研讨会,会上开展了一场分别以
Codd
和
Bachman
为首的支持和反对关系数据库两派之间的辩论。这次著名的辩论推动了关系数据库的发展,使其最终成为现代数据库产品的主流。
1969
:
Edgar F
。
“Ted” Codd
发明了关系数据库
1970
年关系模型建立之后,
IBM
公司在
San Jose
实验室增加了更多的研究人员研究这个项目,这个项目就是著名的
System R
。其目标是论证一个全功能关系
DBMS
的可行性。该项目结束于
1979
年,完成了第一个实现
SQL
的
DBMS
。然而
IBM
对
IMS
的承诺阻止了
System R
的投产,一直到
1980
年
System R
才作为一个产品正式推向市场。
IBM
产品化步伐缓慢的三个原因:
IBM
重视信誉,重视质量,尽量减少故障;
IBM
是个大公司,官僚体系庞大;
IBM
内部已经有层次数据库产品,相关人员不积极,甚至反对。
然而同时,
1973
年加州大学伯克利分校的
Michael Stonebraker
和
Eugene Wong
利用
System R
已发布的信息开始开发自己的关系数据库系统
Ingres
。他们开发的
Ingres
项目最后由
Oracle
公司、
Ingres
公司以及硅谷的其他厂商所商品化。后来,
System R
和
Ingres
系统双双获得
ACM
的
1988
年
“
软件系统奖
”
。
1976
年霍尼韦尔公司
(Honeywell)
开发了第一个商用关系数据库系统
——Multics Relational Data Store
。关系型数据库系统以关系代数为坚实的理论基础,经过几十年的发展和实际应用,技术越来越成熟和完善。其代表产品有
Oracle
、
IBM
公司的
DB2
、微软公司的
MS SQL Server
以及
Informix
、
ADABASD
等等。
3.
结构化查询语言
(
SQL
)
1974
年,
IBM
的
Ray Boyce
和
Don Chamberlin
将
Codd
关系数据库的
12
条准则的数学定义以简单的关键字语法表现出来,里程碑式地提出了
SQL(Structured Query Language)
语言。
SQL
语言的功能包括查询、操纵、定义和控制,是一个综合的、通用的关系数据库语言,同时又是一种高度非过程化的语言,只要求用户指出做什么而不需要指出怎么做。
SQL
集成实现了数据库生命周期中的全部操作。
SQL
提供了与关系数据库进行交互的方法,它可以与标准的编程语言一起工作。自产生之日起,
SQL
语言便成了检验关系数据库的试金石,而
SQL
语言标准的每一次变更都指导着关系数据库产品的发展方向。然而,直到二十世纪七十年代中期,关系理论才通过
SQL
在商业数据库
Oracle
和
DB2
中使用。
1986
年,
ANSI
把
SQL
作为关系数据库语言的美国标准,同年公布了标准
SQL
文本。目前
SQL
标准有
3
个版本。基本
SQL
定义是
ANSIX3135-89
,
“Database Language - SQL with Integrity Enhancement”[ANS89]
,一般叫做
SQL-89
。
SQL-89
定义了模式定义、数据操作和事务处理。
SQL- 89
和随后的
ANSIX3168-1989
,
“Database Language-Embedded SQL”
构成了第一代
SQL
标准。
ANSIX3135-1992[ANS92]
描述了一种增强功能的
SQL
,现在叫做
SQL-92
标准。
SQL-92
包括模式操作,动态创建和
SQL
语句动态执行、网络环境支持等增强特性。在完成
SQL-92
标准后,
ANSI
和
ISO
即开始合作开发
SQL3
标准。
SQL3
的主要特点在于抽象数据类型的支持,为新一代对象关系数据库提供了标准。
4
、数据库巨人的诞生
——
甲骨文公司(
Oracle
)
1976
年
IBM E.F.Codd
发表了一篇里程碑的论文
“R
系统
:
数据库关系理论
”
,介绍了关系数据库理论和查询语言
SQL
。
Oracle
的创始人
Ellison
非常仔细地阅读了这篇文章,被其内容震惊,这是第一次有人用全面一致的方案管理数据信息。作者
E.F.Codd
十年前就发表了关系数据库理论,并在
IBM
研究机构开发原型,这个项目就是
R
系统,存取数据表的语言就是
SQL
。
Ellison
看完后,敏锐意识到在这个研究基础上可以开发商用软件系统。而当时大多数人认为关系数据库不会有商业价值。
Ellison
认为这是他们的机会
:
他们决定开发通用商用数据库系统
Oracle
,这个名字来源于他们曾给中央情报局做过的项目名。几个月后,他们就开发了
Oracle 1.0
。但这只不过是个玩具,除了完成简单关系查询不能做任何事情,他们花相当长的时间才使
Oracle
变得可用,维持公司运转主要靠承接一些数据库管理项目和做顾问咨询工作。而
IBM
却没有计划开发,为什么蓝色巨人放弃了这个价值上百亿的产品,原因有很多:
IBM
的研究人员大多是学术出身,他们最感兴趣的是理论,而非推向市场的产品,从学术上看,研究成果应公开,发表论文和演讲能使他们成名,为什么不呢?还有一个很主要的原因就是
IBM
当时有一个销售得还不错的层次数据库产品
IMS
。直到
1985
年
I B M
才发布了关系数据库
D B 2 ,Ellision
那时已经成了千万富翁。
Ellison
曾将
IBM
选择
Microsoft
的
MS-DOS
作为
IBM-PC
机的操作系统比为:
“
世界企业经营历史上最严重的错误,价值超过了上千亿美元。
”IBM
发表
R
系统论文,而且没有很快推出关系数据库产品的错误可能仅仅次之。
Oracle
的市值在
1996
年就达到了
280
亿美元。
5.
面向对象数据库
随着信息技术和市场的发展,人们发现关系型数据库系统虽然技术很成熟,但其局限性也是显而易见的:它能很好地处理所谓的
“
表格型数据
”
,却对技术界出现的越来越多的复杂类型的数据无能为力。九十年代以后,技术界一直在研究和寻求新型数据库系统。但在什么是新型数据库系统的发展方向的问题上,产业界一度是相当困惑的。受当时技术风潮的影响,在相当一段时间内,人们把大量的精力花在研究
“
面向对象的数据库系统
(object oriented database)”
或简称
“OO
数据库系统
”
。值得一提的是,美国
Stonebraker
教授提出的面向对象的关系型数据库理论曾一度受到产业界的青睐。而
Stonebraker
本人也在当时被
Informix
花大价钱聘为技术总负责人。
然而,数年的发展表明,面向对象的关系型数据库系统产品的市场发展的情况并不理想。理论上的完美性并没有带来市场的热烈反应。其不成功的主要原因在于,这种数据库产品的主要设计思想是企图用新型数据库系统来取代现有的数据库系统。这对许多已经运用数据库系统多年并积累了大量工作数据的客户,尤其是大客户来说,是无法承受新旧数据间的转换而带来的巨大工作量及巨额开支的。另外,面向对象的关系型数据库系统使查询语言变得极其复杂,从而使得无论是数据库的开发商家还是应用客户都视其复杂的应用技术为畏途。
6.
数据管理的变革
二十世纪六十年代后期出现了一种新型数据库软件:决定支持系统
(DSS)
,其目的是让管理者在决策过程中更有效地利用数据信息。于是在
1970
年, 第一个联机分析处理工具
——Express
诞生了。其他决策支持系统紧随其后,许多是由公司的
IT
部门开发出来的。
1985
年,第一个商务智能系统
(business intelligence)
由
Metaphor
计算机系统有限公司为
Procter & Gamble
公司开发出来,主要是用来连接销售信息和零售的扫描仪数据。同年,
Pilot
软件公司开始出售第一个商用客户
/
服务器执行信息系统
——Command Center
。同样在这年,加州大学伯克利分校
Ingres
项目演变成
Postgres
,其目标是开发出一个面向对象的数据库。此后一年,
Graphael
公司开发了第一个商用的对象数据库系统
—Gbase
。
1988
年,
IBM
公司的研究者
Barry Devlin
和
Paul Murphy
发明了一个新的术语
—
信息仓库,之后,
IT
的厂商开始构建实验性的数据仓库。
1991
年,
W.H. "Bill" Inmon
出版了一本
“
如何构建数据仓库
”
的书,使得数据仓库真正开始应用。
1991
:
W.H.“Bill” Inmon
发表了
”
构建数据仓库
”
二十世纪九十年代,随着基于
PC
的客户
/
服务器计算模式和企业软件包的广泛采用,数据管理的变革基本完成。数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。
Internet
的异军突起以及
XML
语言的出现,给数据库系统的发展开辟了一片新的天地。