数据库发展简史
数据管理的诞生
数据库的历史可以追溯到五十年前,那时数据管理非常简单。通过大量的机器进行分类、比较和制表,运行数百万张穿孔卡处理数据,并将运行结果打印在纸上或制成新的穿孔卡。数据管理是所有这些穿孔卡片的物理存储和处理。然而在1950年,雷明顿兰德公司一台名为Univac I的计算机推出了一种可以在一秒钟内输入数百条记录的磁带机,引发了一场数据管理的革命。1956 IBM生产了第一台磁盘驱动器——305型RAMAC。这个驱动器有50个磁盘,每个磁盘的直径为2英尺,可以存储5MB的数据。使用磁盘最大的优点是可以随机存取数据,而穿孔卡和磁带只能顺序存取数据。
1951: Univac系统使用磁带和穿孔卡片作为数据存储。
数据库系统的萌芽出现在20世纪60年代。当时计算机开始广泛应用于数据管理,对数据共享提出了越来越高的要求。传统的文件系统已经不能满足人们的需求,能够统一管理和共享数据的数据库管理系统(DBMS)应运而生。数据模型是数据库系统的核心和基础,各种DBMS软件都基于某种数据模型。因此,根据数据模型的特点,传统的数据库系统通常分为三类:网状数据库、层次数据库和关系数据库。
最早的mesh DBMS是美国通用电气公司的Bachman等人在1961年开发的IDS(集成数据存储)。1964年,美国通用电气公司的查尔斯·巴克曼(Charles Bachman)成功开发了世界上第一个mesh DBMS,即第一个数据库管理系统——集成数据存储IDS,奠定了mesh数据库的基础,并在当时得到了广泛的分布和应用。IDS具有数据模式和日志的特性,但只能在GE主机上运行,数据库只有一个文件,数据库中的所有表格都必须手工编码生成。后来,通用电气公司的一个客户BF古德里奇化学公司最终不得不重写整个系统,并将重写后的系统命名为综合数据管理系统(IDMS)。
网状数据库模型可以自然地模拟分层和非分层的事物。在关系数据库出现之前,网状DBMS比层次DBMS应用更广泛。在数据库发展史上,网状数据库占有重要的地位。
分层DBMS出现在网络数据库之后。最著名、最典型的层次数据库系统是IBM于1968年开发的IMS(信息管理系统),这是一种适合其主机的层次数据库。这是IBM开发的最早的大型数据库系统程序产品。它产生于60年代末,现在已经发展到IMSV6,提供了对集群、N路数据共享、消息队列共享等高级特性的支持。这个有30年历史的数据库产品在今天的WWW应用连接和商业智能应用中扮演着新的角色。
1973年,Cullinane公司(后来的Cullinet软件公司)开始销售古德里奇公司的IDMS改进版,逐渐成为当时世界上最大的软件公司。网状数据库和层次数据库很好地解决了数据集中和共享的问题,但仍然很缺乏数据独立性和抽象层次。用户在访问这两个数据库时,仍然需要明确数据的存储结构,指出访问路径。后来出现的关系数据库很好地解决了这些问题。
1970年,IBM的研究员E.F.Codd博士在ACM的《通讯》杂志上发表了题为《大型共享数据库的数据的关系模型》的论文,提出了关系模型的概念,奠定了关系模型的理论基础。尽管Childs在1968中提出了面向集合的模型,但这篇论文被普遍认为是数据库系统史上划时代的里程碑。Codd的愿望是为数据库建立一个漂亮的数据模型。后来Codd陆续发表了很多文章,讨论度量关系系统的范式理论和12标准,用数学理论奠定了关系数据库的基础。关系模型具有严格的数学基础,高度的抽象性,简单明了,易于理解和使用。但当时有人认为关系模型是一种理想化的数据模型,用它来实现DBMS是不现实的,尤其担心关系数据库的性能难以接受,甚至有人将其视为对正在进行的mesh数据库标准化的严重威胁。为了促进对问题的理解,1974 ACM牵头组织了一次研讨会,会上进行了一场支持和反对关系数据库两派的辩论,分别由Codd和Bachman牵头。这场著名的争论促进了关系数据库的发展,并最终使其成为现代数据库产品的主流。
1969埃德加·CODD发明了关系数据库。
1970的关系模型建立后,IBM在圣何塞实验室增加了更多的研究人员来研究这个项目,也就是著名的System R,它的目标是论证一个功能齐全的关系型DBMS的可行性。项目结束于1979,完成了第一个实现SQL的DBMS。但IBM对IMS的承诺阻止了System R的投产,直到1980,System R才作为产品正式投入市场。IBM产品化步伐缓慢的原因有三:IBM重视信誉,重视质量,尽量减少失败;IBM是一家拥有庞大官僚体系的大公司。IBM已经有了层次化的数据库产品,相关人员并不积极甚至反对。
但与此同时,在1973年,加州大学柏克莱分校的迈克尔·斯通布雷克和尤金·王(Eugene Wong)利用System R公布的资料开始开发自己的关系数据库系统Ingres,他们开发的Ingres项目最终被硅谷的Oracle、Ingres等厂商商业化。后来System R和Ingres都获得了ACM颁发的1988的“软件系统奖”。
从65438到0976,霍尼韦尔开发了第一个商用关系数据库系统——Multics关系数据存储。关系数据库系统是以关系代数为基础的。经过几十年的发展和实际应用,该技术日趋成熟和完善。其代表产品有Oracle、IBM的DB2、微软的MS SQL Server、Informix、ADABAS D等。1974年,IBM的Ray Boyce和Don Chamberlin用简单的关键字文法表达了Codd关系数据库12准则的数学定义,并提出SQL(结构化查询语言)作为里程碑。SQL语言的功能包括查询、操作、定义和控制。它是一种全面通用的关系数据库语言,也是一种高度非过程化的语言,只需要用户指出做什么,而不需要指出怎么做。SQL集成实现了数据库生命周期中的所有操作。SQL提供了一种与关系数据库交互的方式,这种方式可以与标准编程语言一起工作。SQL语言自诞生以来,就成为了检验关系数据库的试金石,SQL语言标准的每一次变化都引导着关系数据库产品的发展方向。然而,直到20世纪70年代中期,关系理论才通过SQL用于商业数据库Oracle和DB2。
1986年,ANSI采用SQL作为关系数据库语言的美国标准,并于同年发布了标准SQL文本。SQL标准有三个版本。SQL的基本定义是ANS ⅸ 3135-89《数据库语言-完整性增强的SQL》[ANS 89],俗称SQL-89。SQL-89定义了模式定义、数据操作和事务处理。SQL- 89和随后的ANS ⅸ 3168-1989,“数据库语言-嵌入式SQL”构成了第一代SQL标准。ANSⅸ3135-1992【ANS 92】描述了一个增强的SQL,叫做SQL-92标准。SQL-92包括增强的特性,如模式操作、SQL语句的动态创建和动态执行以及网络环境支持。在完成SQL-92标准之后,ANSI和ISO开始合作开发SQL3标准。SQL3的主要特点是支持抽象数据类型,为新一代的对象关系数据库提供了标准。
1976年,IBM E.F.Codd发表了一篇里程碑式的论文《R系统:数据库关系理论》,介绍了关系数据库理论和查询语言SQL。甲骨文的创始人埃里森非常仔细地看了这篇文章,被它的内容震惊了。这是第一次有人用全面一致的方案来管理数据信息。作者E.F.Codd 1966发表了关系数据库理论,并在IBM研究院开发了原型。这个项目是R系统,访问数据表的语言是SQL。读完之后,埃里森敏锐地意识到可以在这项研究的基础上开发软件系统。当时大多数人认为关系数据库不会有商业价值。埃里森认为这是他们的机会:他们决定开发通用商业数据库系统Oracle,该系统是以他们曾经为中情局做过的项目命名的。几个月后,他们开发了Oracle 1.0。但这只是一个玩具。除了完成简单的关系查询,他们什么都不会。他们花了很长时间才使Oracle可用。维持公司运转主要靠承接一些数据库管理项目和咨询工作。然而,IBM没有开发它的计划。蓝色巨人放弃这个价值数百亿的产品有很多原因:IBM的研究人员大多是学术背景,他们最感兴趣的是理论,而不是投放市场的产品。从学术角度来说,研究成果应该公开发表。论文和演讲可以让他们出名。为什么不呢?另一个主要原因是IBM有一个分层数据库产品IMS,当时卖得很好。直到1985,IBM才发布了关系数据库DB2,Ellision早已成为千万富翁。埃里森曾将IBM选择微软的MS-DOS作为IBM-PC的操作系统比喻为:“世界商业史上最严重的错误,价值超过数千亿美元。”IBM发表R系统论文而没有很快推出关系数据库产品的错误可能仅次于此。甲骨文市值在1996达到280亿美元。随着信息技术和市场的发展,人们发现虽然关系数据库系统的技术已经成熟,但其局限性也是显而易见的:它可以很好地处理所谓的“表格数据”,但对于技术领域出现的越来越复杂的数据类型却无能为力。20世纪90年代以后,技术界一直在研究和寻求新的数据库系统。但在新数据库系统的发展方向是什么的问题上,业界一度相当困惑。受当时技术趋势的影响,人们花费了大量的精力在“面向对象数据库系统”或简称“面向对象数据库系统”的研究上。值得一提的是,美国Stonebraker教授提出的面向对象的关系数据库理论一度受到业界的青睐。当时,Stonebraker本人被Informix花大价钱聘请为首席技术官。
然而,几年的发展表明,面向对象关系数据库系统产品的市场发展并不理想。理论上的完善并没有带来市场的热烈反响。其失败的主要原因是,这种数据库产品的主要设计思想是试图用新的数据库系统取代现有的数据库系统。对于很多使用数据库系统多年,积累了大量工作数据的客户,尤其是大客户来说,新旧数据转换带来的巨大工作量和巨大费用是难以承受的。此外,面向对象的关系数据库系统使得查询语言极其复杂,这使得无论是数据库开发者还是应用客户都将其复杂的应用技术视为一条令人望而生畏的道路。20世纪60年代末,出现了一种新的数据库软件——决策支持系统(DSS),旨在使管理者在决策过程中更有效地利用数据信息。于是在1970,第一个在线分析处理工具——Express诞生了。其他决策支持系统紧随其后,其中许多是由公司的IT部门开发的。
1985,第一个商业智能系统由隐喻计算机系统有限公司开发为Procter & amp;由Gamble公司开发,主要用于连接销售信息和零售扫描仪数据。同年,Pilot软件公司开始销售第一个商用客户机/服务器执行信息系统——指挥中心。也是在这一年,加州大学伯克利分校的Ingres项目演变为Postgres,目标是开发一个面向对象的数据库。次年,Graphael公司开发了第一个商用对象数据库系统——Gbase。
1988年,IBM研究人员Barry Devlin和Paul Murphy发明了一个新名词——信息仓库。之后,IT厂商开始搭建实验性的数据仓库。1991年,W.H .比尔·恩门出版了《如何构建数据仓库》一书,使数据仓库真正开始应用。
1991: W.H. "Bill "在mon发表了《构建数据仓库》。
20世纪90年代,随着基于PC的客户机/服务器计算模式和企业软件包的广泛采用,数据管理的变革基本完成。数据管理不再仅仅是存储和管理数据,而是转变为用户需要的各种数据管理方式。互联网的异军突起和XML语言的出现为数据库系统的发展开辟了一个新的天地。