数据库技术从诞生到现在,在不到半个世纪的时间里,形成了坚实的理论基础、成熟的商业产品和广泛的应用领域,吸引越来越多的研究者加入。数据库的诞生和发展给计算机信息管理带来了一场巨大的革命。三十多年来,国内外已经开发建设了成千上万个数据库,它已成为企业、部门乃至个人日常工作、生产和生活的基础设施。同时,随着应用的扩展与深入,数据库的数量和规模越来越大,数据库的研究领域也已经大大地拓广和深化了。30年间数据库领域获得了三次计算机图灵奖(C.W. Bachman,E.F.Codd, J.Gray),更加充分地说明了数据库是一个充满活力和创新精神的领域。就让我们沿着历史的轨迹,追溯一下数据库的发展历程。
数据库发展简史:
1. 数据管理的诞生
数据库的历史可以追溯到五十年前,那时的数据管理非常简单。通过大量的分类、比较和表格绘制的机器运行数百万穿孔卡片来进行数据的处理,其运行结果在纸上打印出来或者制成新的穿孔卡片。而数据管理就是对所有这些穿孔卡片进行物理的储存和处理。然而,1 9 5 1 年雷明顿兰德公司(Remington Rand Inc.)的一种叫做Univac I 的计算机推出了一种一秒钟可以输入数百条记录的磁带驱动器,从而引发了数据管理的革命。1956 IBM
产出第一个磁盘驱动器—— the Model305 RAMAC。此驱动器有50 个盘片,每个盘片直径是2 英尺,可以储存5MB的数据。使用磁盘最大的好处是可以随机地存取数据,而穿孔卡片和磁带只能顺序存取数据。
数据库系统的萌芽出现于60 年代。当时计算机开始广泛地应用于数据管理,对数据的共享提出了越来越高的要求。传统的文件系统已经不能满足人们的需要。能够统一管理和共享数据的数据库管理系统(DBMS)应运而生。数据模型是数据库系统的核心和基础,各种DBMS 软件都是基于某种数据模型的。所以通常也按照数据模型的特点将传统数据库系统分成网状数据库、层次数据库和关系数据库三类。最早出现的是网状DBMS,是美国通用电气公司Bachman等人在1961年开发成功的IDSIntegrated DataStore)。1961年通用电气公司(General ElectricCo.)的Charles Bachman 成功地开发出世界上第一个网状DBMS也是第一个数据库管理系统—— 集成数据存储(Integrated DataStore IDS),奠定了网状数据库的基础,并在当时得到了广泛的发行和应用。IDS 具有数据模式和日志的特征。但它只能在GE主机上运行,并且数据库只有一个文件,数据库所有的表必须通过手工编码来生成。之后,通用电气公司一个客户——BF Goodrich Chemical 公司最终不得不重写了整个系统。并将重写后的系统命名为集成数据管理系统(IDMS)。网状数据库模型对于层次和非层次结构的事物都能比较自然的模拟,在关系数据库出现之前网状DBMS要比层次DBMS用得普遍。在数据库发展史上,网状数据库占有重要地位。层次型DBMS是紧随网络型数据库而出现的。最著名最典型的层次数据库系统是IBM 公司在1968 年开发的IMSInformation Management System),一种适合其主机的层次数据库。这是IBM公司研制的最早的大型数据库系统程序
产品。从60 年代末产生起,如今已经发展到IMSV6,提供群集、N路数据共享、消息队列共享等先进特性的支持。这个具有3 0 年历史的数据库产品在如今的WWW应用连接、商务智能应用中扮演着新的角色。1973 Cullinane 公司(也就是后来的C u l l i n e t 软件公司),开始出售Goodrich 公司的IDMS 改进版本,并且逐渐成为当时世界上最大的软件公司。

 

2. 关系数据库的由来
网状数据库和层次数据库已经很好1951Univac I 系统使用磁带和穿孔卡片作为数据存储管理·开发故事数据库发展史程序员2004.06 47地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。而后来出现的关系数据库较好地解决了这些问题。1970 年,IBM 的研究员E.F.Codd博士在刊物Communication of the ACM上发表了一篇名为“A Relational Modelof Data for Large Shared Data Banks”的论文,提出了关系模型的概念,奠定了关系模型的理论基础。尽管之前在1968Childs 已经提出了面向集合的模型,然而这篇论文被普遍认为是数据库系统历史上具有划时代意义的里程碑。Codd的心愿是为数据库建立一个优美的数据模型。后来Codd又陆续发表多篇文章,论述了范式理论和衡量关系系统的12条标准,用数学理论奠定了关系数据库的基础。关系模型有严格的数学基础,抽象级别比较高,而且简单清晰,便于理解和使用。但是当时也有人认为关系模型是理想化的数据模型,用来实现DBMS是不现实的,尤其担心关系数据库的性能难以接受,更有人视其为当时正在进行中的网状数据库规范化工作的严重威胁。为了促进对问题的理解,1974ACM牵头组织了一次研讨会,会上开展了一场分别以Codd Bachman为首的支持和反对关系数据库两派之间的辩论。这次著名的辩论推动了关系数据库的发展,使其最终成为现代数据库产品的主流。1970 年关系模型建立之后,IBM公司在San Jose实验室增加了更多的研究人员研究这个项目,这个项目就是著名的System R。目标是论证一个全功能关系DBMS的可行性。该项目结束于1979年,完成了第一个实现SQLDBMS。然而IBM IMS 的承诺阻止了System R的投产,一直到1980 System R 才作为一个产品正式推向市场。IBM 产品化步伐缓慢的三个原因:IBM重视信誉、重视质量、尽量减少故障;IBM 的官僚体系庞大;IBM 内部已经有层次数据库产品,相关人员不积极,甚至反对。然而同时,1973年加州大学伯克利分校的Michael Stonebraker EugeneWong利用System R已发布的信息开始开发自己的关系数据库系统Ingres。他们开发的Ingres项目最后由Oracle公司、Ingres 公司以及硅谷的其他厂商所商品化。后来,System RIngres 系统双双获得ACM1988 年“软件系统奖”。1976 年霍尼韦尔公司(Honeywell)开发了第一个商用关系数据库系统——Multics Relational Dat a Store。关系型数据库系统以关系代数为坚实的理论基础,经过几十年的发展和实际应用,技术越来越成熟和完善。其代表产品有OracleIBM 公司的DB2、微软公司的MS SQLServer 以及InformixADABASD 等等。

 

3. 结构化查询语言 (SQL)
1974 年,IBM Ray Boyce DonChamberlin Codd关系数据库的12条准则的数学定义以简单的关键字语法表现出来,里程碑式地提出了S Q LStructured Query Language)语言。SQL语言的功能包括查询、操纵、定义和控制,是一个综合的、通用的关系数据库语言,同时又是一种高度非过程化的语言,只要求用户指出做什么而不需要指出怎么做。SQL集成实现了数据库生命周期中的全部操作。SQL提供了与关系数据库进行交互的方法,它可以与标准的编程语言一起工作。自产生之日起,SQL语言便成了检验关系数据库的试金石,而SQL语言标准的每一次变更都指导着关系数据库产品的发展方向。然而,直到二十世纪七十年代中期,关系理论才通过SQL在商业数据库OracleDB2中使用。1986ANSISQL作为关系数据库语言的美国标准,同年公布了标准1969Edgar F. Codd发明了关系数据库数据库发展史1976IBM E.F.Codd发表了一篇里程碑的论文“R系统:数据库关系理论”,介绍了关系数据库理论和查询语言SQLOracle的创始人Ellison非常仔细地阅读了这篇文章,被其内容震惊,这是第一次有人用全面一致的方案管理数据信息。作者E.F.Codd十年前就发表了关系数据库理论,并在IBM 研究机构开发原型,这个项目就是R系统,存取数据表的语言就是SQLEllison看完后,敏锐意识到在这个研究基础上可以开发商用软件系统。而当时大多数人认为关系数据库不会有商业价值。Ellison认为这是他们的机会:他们决定开发通用商用数据库系统Oracle,这个名字来源于他们曾给中央情报局做过的项目名。几个月后,他们就开发了Oracle 1.0 。但这只不过是个玩具,除了完成简单关系查询不能做任何事情,他们花相当长的时间才使Oracle变得可用,维持公司运转主要靠承接一些数据库管理项目和做顾问咨询工作。而IBM却没有计划开发,为什么蓝色巨人放弃了这个价值上百亿的产品,原因有很多:IBM的研究人员大多是学术出身,他们最感兴趣的是理论,而非推向市场的产品,从学术上看,研究成果应公开,发表论文和演讲能使他们成名,为什么不呢?还有一个很主要的原因就是IBM 当时有一个销售得还不错的层次数据库产品IMS。直到1985I B M 才发布了关系数据库D B 2 ,Ellision那时已经成了千万富翁。Ellison曾将IBM 选择Microsoft MS-DOS作为IBM-PC机的操作系统比为:“世界企业经营历史上最严重的错误,价值超过了上千亿美元。”IBM 发表R系统论文,而且没有很快推出关系数据库产品的错误可能仅仅次之。Oracle 的市值在1996年就达到了280亿美元。Oracle 的由来48 程序员2004.06SQL文本。目前SQL标准有3个版本。基本SQL定义是ANSIX3135-89,“DatabaseLan guage —— SQ L w it h I nt e gri t yEnhancement[ANS89]一般叫做SQL-89SQL-89 定义了模式定义、数据操作和事务处理。S Q L - 8 9 和随后的ANSIX3168-1989,“Database Language——Embedded SQL”构成了第一代SQL标准。ANSIX3135-1992[ANS92]描述了一种增强功能的SQL,现在叫做SQL-92标准。SQL-92 包括模式操作,动态创建和SQL语句动态执行、网络环境支持等增强特性。在完成SQL-92标准后,ANSIISO即开始合作开发SQL3标准。SQL3的主要特点在于抽象数据类型的支持,为新一代对象关系数据库提供了标准。

 

4. 面向对象数据库
随着信息技术和市场的发展,人们发现关系型数据库系统虽然技术很成熟,但其局限性也是显而易见的:它能很好地处理所谓的“表格型数据”,却对越来越多复杂类型的数据无能为力。九十年代以后,技术界一直在研究和寻求新型数据库系统。但什么是新型数据库系统的发展方向,产业界一度相当困惑。受当时技术风潮的影响,在相当一段时间内,人们把大量的精力花在研究“面向对象的数据库系统(O b j e c t - O r i e n t e dDatabase)”或简称“OO数据库系统”。值得一提的是,美国Stonebraker教授提出的面向对象的关系型数据库理论曾一度受到产业界的青睐。而Stonebraker本人也在当时被Informix花大价钱聘为技术总负责人。然而,数年的发展表明,面向对象的关系型数据库系统产品的市场发展情况并不理想。理论上的完美性并没有带来市场的热烈反应。不成功的主要原因在于,这种数据库产品的主要设计思想是企图用新型数据库系统来取代现有的数据库系统。这对许多已经运用数据库系统并积累了大量工作数据的客户,尤其是大客户来说,无法承受新旧数据间的转换而带来的巨大工作量及巨额开支。另外, 面向对象的关系型数据库系统使查询语言变得极其复杂,从而使得无论是数据库的开发商家还是应用客户都视其复杂的应用技术为畏途。

 

5. 数据管理的变革
二十世纪六十年代后期出现了一种新型数据库软件:决定支持系统(DSS),其目的是让管理者在决策过程中更有效地利用数据信息。于是在1970 年,第一个联机分析处理工具—— Express 诞生了。其他决策支持系统紧随其后,许多是由公司的IT 部门开发出来的。1 9 8 5 年,第一个商务智能系统(business intelligence)由Metaphor计算机系统有限公司为Procter & Gamble公司开发出来,主要用来连接销售信息和零售的扫描仪数据。同年, Pilot软件公司开始出售第一个商用客户/ 服务器执行信息系统—— Command Center。同样在这年,加州大学伯克利分校Ingres 项目演变成Postgres,其目标是开发出一个面向对象的数据库。此后一年,Graphael公司开发了第一个商用的对象数据库系统—— Gbase1988 年,IBM 公司的研究者BarryDevlinPaul Murphy发明了一个新的术语——信息仓库,之后,IT厂商开始构建实验性的数据仓库。1991年,W.H.Inmon出版了一本《如何构建数据仓库》的书,使得数据仓库真正开始应用,因此Inmon 也被尊称为“数据仓库之父”。二十世纪九十年代,随着客户/ 服务器计算模式和企业软件包的广泛采用,数据管理的变革基本完成。数据管理不再仅仅是存储和管理数据,而转变成用户需要的各种数据管理的方式。Internet的异军突起以及XML语言的出现,给数据库系统的发展开辟了一片新天地。数据库未来发展趋势随着信息管理内容的不断扩展,出现了丰富多样的数据模型(层次模型,网状模型,关系模型,面向对象模型,半结构化模型等),新技术也层出不穷(数据流,Web数据管理,数据挖掘等)。目前每隔几年,国际上一些资深的数据库专家就会聚集一堂,探讨数据库研究现状,存在的问题和未来需要关注的新技术焦点。过去已有的几个类似报告包括:1989 Future Directions inDBMS Research-The Laguna BeachParticipants 1990 DatabaseS y s t e m s : A c h i e v e m e n t s a n dOpportunities 1995 年的Database1991W.H. Inmon 发表了《构建数据仓库》数据库发展大事记1951Univac系统使用磁带和穿孔卡片作为数据存储。1956IBM公司在其Model 305 RAMAC中第一次引入了磁盘驱动器1961:通用电气(GE)公司的CharlesBachman开发了第一个数据库管理系统—— IDS1969E.F. Codd发明了关系数据库。1973John J.Cullinane领导Cullinane公司开发了 IDMS ——一个针对IBM 主机的基于网络模型的数据库。1976Honeywell 公司推出了MulticsRelational Data Store ——第一个商用关系数据库产品。1979Oracle公司引入了第一个商用SQL 关系数据库管理系统。1983IBM 推出了DB2 数据库产品。1985:为Procter & Gamble 系统设计的第一个商务智能系统产生。1991W.H.Inmon发表了《构建数据仓库》。管理·开发故事程序员2004.06 49Research; Achievements and Opportunitiesinto the 21st Century1996Strategic Directions in DatabaseSystems-Breaking Out of the Box 1998 年的The Asilomar Report onDatabase Research2003 年的聚会于5月初在Lowell Mass举行,共25位资深数据库学者参加,集中讨论了信息存储、组织、管理和访问等问题。信息的本质和来源在不断变化,InternetWeb、自然科学、电子商务是信息和信息处理的巨大源泉。而廉价的微型传感器技术使得大部分物体可以实时汇报他们的位置和状态。这类信息能支持对移动对象的状态和位置的监视应用。传感信息的处理将会引发许多新环境下极有趣味的数据库问题。而在应用领域,Internet是目前主要的驱动力,特别是在支持“跨企业”的应用上。历史上,应用都是企业内部的,可以在一个行政领域内进行完善的指定和优化。但现在,大部分企业感兴趣的是如何与供应商、客户进行更密切的交流以便共享信息,以便提供更好的客户支持。这类应用需要安全和信息集成的有力工具。由此产生了数据库相关的新问题。另一个重要应用领域是自然科学,特别是物理科学、生物科学、保健科学和工程领域。这些领域产生了大量复杂的数据集,需要比现有的数据库产品更高级的数据库支持。这些领域同样也需要信息集成机制的支持。除此之外,还需要对数据分析器产生的数据管道的管理,需要对有序数据的存储和查询(如:时间序列、图像分析、网格计算和地理信息),需要世界范围内数据网格的集成。除了在信息管理领域的这些挑战外,在传统的DBMS 上,诸如数据模型、访问方法、查询处理代数、并发控制、恢复、查询语言和DBMS的用户界面等也面临着巨大的变化。这些问题过去已经得到充分的研究,但是技术的发展不断改变其应用规则。比如说,磁盘和RAM容量的不断变大,存储每个比特数据的花费不断降低。虽然访问次数和带宽也在不断提高,但是他们不像前者发展得那样快,不断变化的比率要求重新评估存储管理和查询处理代数。除此之外,处理器高速缓存的规模和层次的提高,要求DBMS 算法能够适应cache大小的变化。上述只是由于技术改变而对原有算法重新评价的两个例子。另一个推动数据库研究发展的动力是相关技术的成熟。如过去几十年里,数据挖掘技术已成为数据库系统重要的组成部分。Web搜索引擎导致了信息检索的商品化,并和传统的数据库查询技术集成。许多人工智能领域的研究成果也和数据库技术融合起来,这些新组件使得我们处理语音、自然语言、进行不确定性推理和机器学习等。整体上,这些都要求一个与我们现在完全不同的信息管理架构,并重新考虑信息存储、组织、管理和访问等方面的问题。近40年中,数据库研究工作集中在数据库管理系统开发的核心领域上,而数据管理的研究范畴远比这宽的多。如果忽视一些新的应用领域面临的数据管理问题,就会使数据库研究局限于传统的数据管理应用上而失去活力。在众多新技术应用中,对数据库研究最具影响力推动数据库研究进入新纪元的无疑将是I n t e r n e t 的发展。Internet从深度和广度两方面对数据库技术提出了挑战。从深度上讲,Internet环境中,一些数据管理的基本假设不再成立需要重新考虑在新情况下对传统数据库技术的改进。从广度上讲,新问题的出现需要开拓思路,寻求创新性的技术突破。数据库发展史上重要人物埃德加·考特(EdgarF.Codd)计算机界公认的关系数据库之父。1970年他提出了关系模型的理论,1970年以后,E.F.Codd继续完善和发展关系理论;之后创办了一个研究所The RelationalInstitute和一个公司Codd & Associations1990 年出版了专著The Relational Modelfor Database ManagementVersion 2E.F.Codd 以其对关系数据库的卓越贡献获得了1983 ACM图灵奖。C.J.戴特(C.J.Date)C.J.Date 是最早认识到Codd 在关系模型方面所做的开创性贡献的学者之一,他关系数据库技术领域中非常著名的独立撰稿人、学者和顾问,他使得关系模型的概念普及化。他参与了IBM公司的SQL/DSDB2两大产品的技术规划和设计。30多年来,Date 一直活跃在数据库领域中,其著作有《数据库系统导论》,《对象关系数据库基础:第三次宣言》(1998)等。吉姆·格雷(Jim GrayJim Gray使关系模型的技术实用化,他为RDBMS成熟并顺利进入市场起到了关键性的作用。他在事务处理方面取得了突出的贡献,使他成为该技术领域公认的权威,他也成为图灵奖诞生32 年来第三位在数据库技术的发展中作出重大贡献而获此殊荣的学者。曾参与主持过IMSSystem RSQL/DSDB2等项目的开发。他的研究成果反映在他发表的一系列论文和研究报告之中,最后结晶为一部厚厚的专著TransactionProcessing: Concepts andTechniquesMichael StonebrakerMichael StonebrakerIngres的创始人。他是加州大学伯克利分校的教授,著名的数据库学者,他在1992 年提出对象关系数据库模型。S t o n e b r a k e r 教授领导了称为Postgres 的后Ingres 项目。这个项目的成果是非常巨大的,在现代数吉姆·格雷50 程序员2004.06据库的许多方面都做出的大量的贡献。Stonebraker 教授还做出了一件造福全人类的事情,那就是把Postgres 放在了BSD 版权的保护下。Jeffrey D. UllmanJeffrey D. Ullman 是国际知名的数据库专家。现为斯坦福大学的Stanford W. Ascherman计算机科学教授。1996 年获得Sigmod 贡献奖和1998Karl V. Karstrom 杰出教育家奖获得者。出版了多本数据库专著。数据库领域研究组织和机构ACM SIGMOD国际计算机学会数据管理专业委员会(ACM SIGMOD)是国际数据库领域最高级别的国际会议。其主要致力于数据库以及信息技术的研究,开发和应用。SIGMOD 每年召开一次,SIGMODRecord 是其发行的数据库期刊。VLDB国际超大型数据库会议(Int ernationalConference on Very Large Data Bases,VLDB)是一个专门从事超大规模数据库管理理论、方法和应用研究的专业性学术机构,它涉及的内容也很丰富,包括研究及应用的诸多方面,基本上 能够较全面地反映当前数据库研究的前沿方向、工业界的最新技术以及各国的研发水平。1975年,以美籍华裔科学家肖开美教授(Dave Hsiao)为首的一批数据库
学者发起组织了第一届VLDB会议。此后每年召开一次,已成为是数据库领域中最主要、规模最大的国际学术会议。ICDE数据工程国际学术会议(ICDE)是由IEEE计算机数据工程技术学会(TCDE)主办的数据库领域的最高级别的国际性会议之一。会议产生出版季刊数据工程通报(英文Data Engineering Bulletin)TCDE致力于研究数据在信息系统的设计、实现与管理中的作用,面向的主要问题包括数据库设计、数据处理、数据库存储与操纵语言、数据采集的策略与机制、数据库的安全性与完整性控制、数据库的工程应用以及分布式系统。
CCF DBS中国计算机学会数据库专业委员会(CHINA COMPUTER FEDERATIONDATABASE SOCIETY,简称CCFDBS)是中国计算机学会领导下的数据库学术组织,于1999 8 24日在兰州大学召开的第十六届全国数据库学术会议上正式成立。由数据库专业委员会主办的全国数据库学术会议(NDBC)始于1977 年,至今已举办20 届。NDBC这一传统的数据库盛会已成为国内数据库领域较为权威的会议。商业公司及数据库产品
1. IBM DB2
作为关系数据库领域的开拓者和领航人IBM1997年完成了System R系统的原型,1980年开始提供集成的数据库服务器—— System/38,随后是SQL/DSforVSEVM,其初始版本与SystemR研究原型密切相关。DB2 forMVSV1 1983年推出。该版本的目标是提供这一新方案所承诺的简单性,数据不相关性和用户生产率。1988DB2for MVS 提供了强大的在线事务处理(OLTP)支持,1989 年和1993 年分别以远程工作单元和分布式工作单元实现了分布式数据库支持。最近推出的DB2Universal Database 6.1则是通用数据库的典范,是第一个具备网上功能的多媒体关系数据库管理系统,支持包括Linux在内的一系列平台。

 

2. Oracle
O r a c l e 前身叫SDL,由LarryEllison 和另两个编程人员在1977创办,他们开发了自己的拳头产品,在市场上大量销售,1979 年,Oracle公司引入了第一个商用SQL 关系数据库管理系统。Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有率名列前茅。

 

3. Informix
Informix1980年成立,目的是为Unix等开放操作系统提供专业的关系型数据库产品。公司的名称Informix便是取自Information Unix的结合。Informix第一个真正支持SQL语言的关系数据库产品是I n f o r m i x S EStandardEngine)。InformixSE是在当时的微机Unix 环境下主要的数据库产品。它也是第一个被移植到Linux上的商业数据库产品。

 

4. Sybase
Sybase公司成立于1984年,公司名称“Sybase”取自“system”和“database”相结合的含义。Sybase公司的创始人之一Bob Epstein Ingres 大学版(与System/R同时期的关系数据库模型产品)的主要设计人员。公司的第一个关系数据库产品是19875月推出的SybaseSQLServer1.0Sybase首先提出了Client/Server 数据库体系结构的思想,并率先在Sybase SQLServer 中实现。

 

5. SQL Server
1987 年,微软和IBM合作开发完成OS/2IBM 在其销售的OS/2 ExtendedEdition 系统中绑定了OS/2Database Manager,而微软产品线中尚缺少数据库产品。为此,微软将目光投向Sybase,同Sybase 签订了合作协议,使用Sybase的技术开发基于OS/2平台的关系型数据库。1989年,微软发布了SQL Server 1.0 版。

 

6. PostgreSQL
PostgreSQL 是一种特性非常齐全的自由软件的对象——关系性数据库管理系统(ORDBMS),它的很多特性是当今许多商业数据库的前身。PostgreSQL最早开始于BSDIngres项目。PostgreSQL 的特性覆盖了SQL-2/SQL-92SQL-3。首先,它包括了可以说是目前世界上最丰富的数据类型的支持;其次,目前PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统.