首页 > 大数据 > 正文

有数据的地方必有库,详解关系型数据库的发展历史

2019-05-05 17:44:30  来源:今日头条

摘要:信息系统产生了海量的数据,有数据必须要有数据的存放位置,本文主要考虑对于OLTP和OLAP占据主流的关系型数据库,目前关系型数据库软件主要有:Oracle,DB2,SQL Sever Sybase,MySQL,PostgreSQL,SQLite。
关键词: 数据库
 
  信息系统产生了海量的数据,有数据必须要有数据的存放位置,本文主要考虑对于OLTP和OLAP占据主流的关系型数据库,目前关系型数据库软件主要有:Oracle,DB2,SQL Sever/Sybase,MySQL,PostgreSQL,SQLite。
 
 \
 
  数据库发展史
 
  信息系统产生了海量的数据,有数据必须要有数据的存放位置,
 
  无库时代 :没有专门的数据库,数据大多以文件形式存放
 
  层次状数据库 :使用层次状模型进行数据库设计和存放
 
  网状数据库 :使用网状模型进行数据库设计和存放
 
  关系型数据库 :使用关系型模型进行数据库设计和存放
 
  非关系型数据库:为适应水平扩展性和处理超大量的数据环境,近几年发展非常迅速的发展,衍生类型非常多。
 
  本文主要考虑对于OLTP和OLAP占据主流的关系型数据库,目前关系型数据库软件主要有:
 
  大型商用关系型数据库:Oracle,DB2,SQL Sever/Sybase;
 
  近年发展较快的开源关系型数据库:MySQL,PostgreSQL,SQLite
 
  关系型数据库主要人物与发展历史
 
  关系型数据库的发展,大致可分为理论奠基、SQL标准、商用成型、多家发展等几个阶段,在每个阶段都有对应的重要人物与贡献。
 
  首先是数学家E.F.Codd发表了数学论文《用于大型共享数据库的关系数据模型》,提出关系和关系运算的概念,奠定了关系型数据库的理论模型;
 
  然后是Codd的同事DonChamberlin将Codd的论文和关系运算,转换成为比较容易理解和使用的SQL语言,并且在后面成为所有关系型数据库的标准;
 
  有了上面的数据理论和SQL基础,LarryElision和他的同事看到商机,开发出第一个商用大型关系型数据库Oracle,Scott作为一个开发的员工,将其测试账户放在里面了;
 
  除了Oracle数据库,IBM也开发出了DB2数据库,但其他主流的关系型数据库都与Michael Stonebraker有关,开发了Postgres并放在BSD版权下,后来演变成了Postgres SQL;87年微软和Sybase合作,开发除了MS SQL和Sybase;后又加入Ingres和Informax,其他的主流关系型数据库几乎都和Michael Stonebraker有关。
 
  关系型数据库之父:E.F.Codd
 
  1970年,Codd划时代的论文《用于大型共享数据库的关系数据模型》
 
  Codd全关系系统十二准则
 
  准则0
 
  一个关系形的关系数据库系统必须能完全通过它的关系能力来管理数据库。
 
  准则1 信息准则
 
  关系数据库系统的所有信息都应该在逻辑一级上用表中的值这一种方法显式的表示。
 
  准则2 保证访问准则
 
  依靠表名、主码和列名的组合,保证能以逻辑方式访问关系数据库中的每个数据项。
 
  准则3 空值的系统化处理
 
  全关系的关系数据库系统支持空值的概念,并用系统化的方法处理空值。
 
  准则4 基于关系模型的动态的联机数据字典
 
  数据库的描述在逻辑级上和普通数据采用同样的表述方式。
 
  准则5 统一的数据子语言
 
  一个关系数据库系统可以具有几种语言和多种终端访问方式,但必须有一种语言,它的语句可以表示为严格语法规定的字符串,并能全面的支持各种规则。
 
  准则6 视图更新准则
 
  所有理论上可更新的视图也应该允许由系统更新。
 
  准则7 高级的插入、修改和删除操作
 
  系统应该对各种操作进行查询优化。
 
  准则8 数据的物理独立性
 
  无论数据库的数据在存储表示或存取方法上作任何变化,应用程序和终端活动都保持逻辑上的不变性。
 
  准则9 数据逻辑独立性
 
  当对基本关系进行理论上信息不受损害的任何改变时,应用程序和终端活动都保持逻辑上的不变性。
 
  准则10 数据完整的独立性
 
  关系数据库的完整性约束条件必须是用数据库语言定义并存储在数据字典中的。
 
  准则11 分布独立性
 
  关系数据库系统在引入分布数据或数据重新分布时保持逻辑不变。
 
  准则12 无破坏准则
 
  如果一个关系数据库系统具有一个低级语言,那么这个低级语言不能违背或绕过完整性准则。
 
  SQL之父:唐-钱伯林(Don Chamberlin)
 
  唐·钱伯林(DonChamberlin),是IBM Fellow,ACM及IEEE 特别会员。他是SQL关系数据库语言的发明人之一,也是XQuery语言的设计基础Quilt语言的发明人之一。Don拥有加利福尼亚大学博士学位。他目前在IBM Almaden 研究中心工作,在过去几年中,他代表IBM参与W3C XML Query工作组的工作。
 
  Scott和他的猫的故事
 
  第一个商用关系型数据库——Oracle
 
  左起 Ed Oates、Bruce Scott、Bob Miner、Larry Ellison
 
  Oracle与Larry Ellison
 
  主流数据库的奠基人——Michael Stonebraker
 
  Michael Stonebraker,SQL Server/Sysbase奠基人。
 
  著名的数据库科学家,他在1992 年提出对象关系数据库模型在加州伯克利分校计算机教授达25年。在此期间他创作了Ingres,Illustra, Cohera, StreamBase Systems和Vertica等系统。Stonebraker教授也曾担任过Informix的CEO,目前他是MIT麻省理工学院客席教授。
 
  Stonebraker 教授领导了称为Postgres的后Ingres项目。这个项目的成果非常巨大,在现代数据库的许多方面都做出的大量的贡献。Stonebraker 教授还做出了一件造福全人类的事情,那就是把Postgres 放在了BSD 版权的保护下。如今Postgres名字已经变成了PostgreSQL,功能也是日渐强大。
 
  87年左右,Sybase联合了微软,共同开发SQL Server。原始代码的来源与Ingres有些渊源。后来1994年,两家公司合作终止。此时,两家公司都拥有一套完全相同的SQLServer代码。可以认为,Stonebraker教授是目前主流数据库的奠基人。
 
  1973 年 IBM 启动了 System R 项目,项目组发表了一系列关于关系数据库的的文章。两个伯克莱大学的科学家,Michael Stonebraker 和 Eugene Wong 读了这些文章后非常感兴趣,于是决定自己启动一个关系数据的研究项目。他们已经为一个地理数据库系统申请到了资金,他们称为 ingres,意思是交互式图形获取系统
 
  Ingres的代码是可以免费获得的,到 1980 年止,共分发了 1000 份拷贝,不少公司使用这些代码形成了自己的产品线。Informix 是最早的用户之一,并且其员工完全是 Ingres 项目的人员。他们在 1984 发布了基于 Ingres 的第一版产品,到 1997 年已经成了第二大数据库供应商。然而,一系列管理和财会方面的失误在短短两年内毁了公司的信誉,并于 2000 年被 IBM 收购。
 
  Robert Epstein 在伯克立大学项目中的重要的程序员,创建了 Britton-Lee,后来的 Sybase,Sybase 在 80 到 90 年期间是第二号数据库产品,Sybase 于1992年将产品卖给微软,微软称之为 MSSQLServer。
 
  Stonebraker 自己离开了伯克立大学在1982年创建了Ingres 公司,Stonebraker 在这个公司工作到 1991 年,然后公司卖给了 ASK,1994年 ASK/ingres 被 CA Computer Associates 收购。2004 年 CA 在开源许可下发布了 Ingres release 3,并继续开发销售 Ingres。
 
  在返回 Berkeley 之后,Stonebraker 开始了一项后-Ingres 计划来致力于解决关系模型的数据库管理现有实现的局限性。其中主要的是它们不能让用户定义组合更简单域的新域(或者叫类型)(参见关系模型获得对术语域的解释。)结果的计划叫做 Postgres,以介入对增加完整的类型支持所需要的最小数目的特征为目标。其中包括定义类型的功能,还有完全描述联系的能力 - 联系至今已经广泛使用但仍由用户完全维护。在 Postgres 中数据库理解联系,并能以使用规则的自然方式在有关联的表中检索信息。详情请参见 PostgreSQL 的文章。在 1990 年 Stonebraker 再次离开 Berkeley 去商业化 Postgres,使用了名字 Illustra。Illustra 后来被 Informix 并购,而 Stonebraker 再次回去搞高等教育了。
 
  数据库厂商的发展历史之Oracle
 
  所有这一切要从IBM的一篇论文谈起,1970年的6月,IBM公司的研究员埃德加·考特(Edgar Frank Codd) 在 Communications ofACM 上发表了那篇著名的《大型共享数据库数据的关系模型》(A Relational Model ofData for Large Shared Data Banks)的论文。这是数据库发展史上的一个转折。要知道,当时还是层次模型和网状模型的数据库产品在市场上占主要位置。从这篇论文开始,拉开了关系型数据库软件革命的序幕。IBM虽然1973年就启动了SystemR的项目来研究关系型数据库的实际可行性,也没有及时推出这样的产品,因为当时IBM的的IMS(著名的层次型数据库)市场不错,如果推出关系型数据库,牵涉到IBM很多人的自身利益。再者,IBM庞大复杂的官僚机构处在决策上远不那么灵活
 
  1977年6月,Larry Ellison与Bob Miner和Ed Oates在硅谷共同创办了一家名为软件开发实验室(Software Development Laboratories,SDL)的计算机公司(ORACLE公司的前身)。那个时候,32岁的Larry Ellison,这个读了三家大学都没能毕业的辍学生,还只是一个普通的软件工程师。公司创立之初,Miner是总裁,Oates为副总裁,而Ellison,因为一个合同的事情,还在另一家公司上班。没多久,第一位员工Bruce Scott(用过ORACLE数据库软件的人都知道有个Scott用户的吧?没错,就是这个Scott,至于Scott用户的密码Tiger,那是Scott养的猫的名字, Oracle也一直没有忘记她的第一位程序员)加盟进来,在Miner和Oates有些厌倦了那种合同式的开发工作后,他们决定开发通用软件,不过们还不知道自己能开发出来什么样的产品。Oates最先看到了埃德加·考特的那篇著名的论文连同其他几篇相关的文章并推荐Ellison和Miner也阅读一下。Ellison和Miner预见到数据库软件的巨大潜力(跟着IBM走,没错),于是,SDL开始策划构建可商用的关系型数据库管理系统(RDBMS)。
 
  根据Ellison和Miner他们在前一家公司从事的一个由中央情报局投资的项目代码,他们把这个产品命名为ORACLE。因为他们相信,ORACLE(字典里的解释有“神谕, 预言”之意)是一切智慧的源泉。1979年,SDL更名为关系软件有限公司(Relational Software,Inc.,RSI),毕竟“软件开发实验室”不太像一个大公司的名字。1983年,为了突出公司的核心产品,RSI再次更名为ORACLE。Oracle从此正式走入人们的视野。
 
  RSI在1979年的夏季发布了可用于DEC公司的PDP-11计算机上的商用ORACLE产品,这个数据库产品整合了比较完整的SQL实现,其中包括子查询、连接及其他特性。出于市场策略,公司宣称这是该产品的第二版,但却是实际上的第一版。这就是Oracle这种“要命”的市场策略,事实上,这种策略有时候也是非常成功的。
 
  1983年3月,RSI发布了ORACLE第三版。Miner和Scott历尽艰辛用C语言重新写就这一版本。(说老实话,太佩服这两个大牛了,为什么一直没多少媒体宣传这两个人呢,怀疑Miner简直就是“少林老僧”般的人物。)要知道,C语言当时推出不久,用它来写ORACLE软件也是具有一定的风险的,但除此之外,别无他法。很快就证明了这样做是多么的正确:C编译器便宜而又有效,还有很好的移植性。从现在起,ORACLE产品有了一个关键的特性:[可移植性]。同样是1983年,IBM发布了姗姗来迟的Database 2(DB2),但只可在MVS上使用。不管怎么说,ORACLE已经占取了先机。
 
  在开发第三版还没有结束的时候,Scott离开了ORACLE。当时用C语言改写ORACLE的压力很大,无休止的软件调试终于让Scott不堪重负,选择了一走了之。把剩下的重担交给了Miner一个人。在出售了自己的4%的股票之后,Scott 后来创建了Gupta公司(现更名为Centura Software)和PointBase公司(提供百分之百纯Java嵌入式数据库),都是开发和数据库相关的产品。多年后有人问到他的4%的ORACLE股票的时候,Scott,这个曾经给ORACLE写出第一行代码的技术高手,也只能报以一笑了。如果能坚持下来,那是一笔几亿美金的财富。不过当时的Scott没有那么多的想法,他只是太累了。
 
  很长一段时间里,公司研发由Miner独力承担。Miner视金钱如无物,为人低调,和Ellison的锋芒必露形成鲜明的对比。在公司里,大家一致认为他是老好人,他也深受员工爱戴。Ellison是公司的大脑,Miner则当之无愧的成为公司的心脏。他是个沉默的英雄,正如Steve Jobs背后的Steve Wozniak一样。
 
  1984年10月,ORACLE发布了第4版产品。产品的稳定性总算得到了得到了一定的增强,用Miner的话说,达到了“工业强度”。
 
  在1985年,ORACLE发布了5.0版。有用户说,这个版本算得上是ORACLE数据库的稳定版本。这也是首批可以在Client/Server模式下运行的的RDBMS产品,在技术趋势上,ORACLE数据库始终没有落后。
 
  那是在1985年,当时曾经的最大的独立软件公司Cullinet(主要销售网状数据库)已经如流星般陨落。ORACLE的主要竞争对手是Ingres数据库。Ingres在加州大学伯克利分校诞生,主要的设计者是当时鼎鼎大名的MichaelStonebraker教授。可以说Ingres数据库软件是上个世纪80年代技术上最好的数据库,Ingres市场分额的快速增长已经给ORACLE早成了很大的压力。巧的是,这个时候,IBM公司再一次伸出“上帝之手”。
 
  Ingres使用的是Stonebraker 发明的QUEL(Query Language))的查询技术,这和IBM的SQL大不相同。在某些地方QUEL甚至要优于SQL。IBM当时担心Ingres把QUEL变成标准会对自己不利。经过一番衡量,决定把自己的SQL提交给数据库标准委员会。而Stonebraker教授可不打算把QUEL提交给数据库标准委员会,学院派的他认为这麽做实际上是扼杀了创新精神。可以看出,学院派,大都会把事情搞杂。
 
  1986年3月12日,ORACLE公司以每股15美元公开上市,当日以20.75美元收盘,公司市值2.7亿美元。3月13日,微软以每股21美元的发行价上市,以28美元收市,公司市值达到7亿美元。远远超过了ORACLE。成功的光环的微软和盖茨遮盖住了ORACLE和Ellison的光芒,可能这也是Ellison敌视微软的开始。
 
  ORACLE第6版于1988年发布。由于过去的版本在性能上屡受诟病,Miner带领着工程师对数据库核心进行了重新的改写。引入了行级锁(row-level locking)这个重要的特性,也就是说,执行写入的事务处理只锁定受影响的行,而不是整个表。这个版本引入了还算不上完善的PL/SQL(Procedural Language extension to SQL)语言。第6版还引入了联机热备份功能,使数据库能够在使用过程中创建联机的备份,这极大地增强了可用性。
 
  在第六版刚发布之后,很多迫不及待开始使用的用户就怨声载道。这是个根本就没有测试好就进行发布的产品(也怪Ellison,大话总要说在前头,只好自尝苦果)。用户开始对ORACLE大肆抨击,ORACLE的一些对手也开始落井下石,针对ORACLE产品的一些弱点进行攻击。
 
  噩梦延续到ORACLE第七版的推出而结束。这个公司已经空谈了好几年的新版本(一度被讥讽为不过是Ellison的故计重施而已),直到1992年6月才终于闪亮登场,这一次公司吸取了第六版匆忙上市的教训,听取了用户的多方面的建议,并集中力量对新版本进行了大量而细致的测试。该版本增加了许多新的性能特性:分布式事务处理功能、增强的管理功能、用于应用程序开发的新工具以及安全性方法。
 
  ORACLE 第七版是ORACLE真正出色的产品,取得了巨大的成功。这个版本的出现真是好时机,当时Sybase公司的数据库已经占据了不少份额,ORACLE借助这一版本的成功,一具击退了咄咄逼人的Sybase。公司的销售人员这次算到了给用户兑现空头许诺的时候。公司经过两三年的治理,终于摆脱了种种麻烦,重新开始健康发展,销售额也从92年的15亿美元变为四年后的42亿美元。
 
  1997年6月,ORACLE第八版发布。ORACLE8支持面向对象的开发及新的多媒体应用,这个版本也为支持Internet、网络计算等奠定了基础。同时这一版本开始具有同时处理大量用户和海量数据的特性。
 
  1998年9月,ORACLE公司正式发布ORACLE 8i。“i”代表Internet,这一版本中添加了大量为支持Internet而设计的特性。这一版本为数据库用户提供了全方位的Java支持。ORACLE 8i成为第一个完全整合了本地Java运行时环境的数据库,用Java就可以编写ORACLE的存储过程。对,Java,只要是能够打击微软的武器,ORACLE都要派上用场。
 
  在2001年6月的ORACLEOpenWorld大会中,ORACLE发布了ORACLE 9i。在ORACLE 9i的诸多新特性中,最重要的就是Real Application Clusters(RAC)了。说起ORACLE集群服务器,早在第五版的时候,ORACLE就开始开发ORACLE并行服务器(ORACLE Parallel Server ,OPS),并在以后的版本中逐渐的完善了其功能,不过,严格来说,尽管OPS算得上是个集群环境,但是并没有体现出集群技术应有的优点。
 
  2003年9月8日,旧金山举办的ORACLE World大会上,Ellison宣布下一代数据库产品为“ORACLE 10g”。ORACLE应用服务器10g(ORACLEApplication Server 10g)也将作为甲骨文公司下一代应用基础架构软件集成套件。“g”代表“grid ,网格”。这一版的最大的特性就是加入了网格计算的功能。(Oracle绝对是造概念的能手,只要是能引领出新的卖点,出些新概念,也是值得的)。
 
  最近两年,Oracle先后又收购了People soft(103亿$), BEA(80多亿$),还有Sibel之类的就不说了。通过收购,实力大增。
 
  2007年11月,Oracle 11g正式发布,功能上大大加强。11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(InformationLifecycle Management)等多项创新。大幅提高了系统性能安全性,全新的Data Guard最大化了可用性,利用全新的高级数据压缩技术降低了数据存储的支出,明显缩短了应用程序测试环境部署及分析测试结果所花费的时间,增加了RFID Tag、DICOM医学图像、3D空间等重要数据类型的支持,加强了对Binary XML的支持和性能优化。
 
  从Oracle的发展来看,它的市场策略直接引导着公司的发展。与别的公司有很大的不同。
 
  数据库厂商的发展历史之DB2
 
  1973年,IBM研究中心启动System R项目,为DB2的诞生打下良好基础。System R 是 IBM 研究部门开发的一种产品,这种原型语言促进了技术的发展并最终在1983年将 DB2 带到了商业市场。
 
  在这期间,IBM发表了很多数据库领域的精典论文,前边E.F.Codd就不说了,1976年, 身在IBM的Gim Gray发有了他的代表作:共享数据库的一致性和锁的粒度。他同样也是数据库领域的图灵奖获得之一。后来被微软挖走(应该是在他退休之后),去年他独自一人出海,失踪,不知下落如何。此君因为不喜欢Seattle的雨天,使得Bill Gates为拉他入Microsoft在San Francisco为其新建了一座研究院让他做院长。据说此君在一次学术会议上demo他的新程序,听众中有人提出界面可以如何改进,此君竟然在讲坛上就打开VC++开始改起代码来,然后给人看新效果。这样的大师,太让人尊敬了。
 
  1981年, E.F.Codd因为发明关系数据库模型,获得ACM图灵奖,当然他前边还有一位大师,Charles W.Bachman。
 
  1982年,IBM发布SQL/DS for VSE and VM,以System R为原型。
 
  1983年,发布Database2 (DB2) forMVS, 内部代号为"Eagle",于是DB2正式诞生。
 
  1986年,System/38 V7发布,首次配置查询优化器,能对应用的存取计划进行优化。
 
  1987年,DB2完成了到OS/2的扩展,进入微机领域。
 
  1988年,发布SQL/400,为AS/400服务器提供SQL支持。到此时为止,感觉IBM的数据库产品的发展十分凌乱,似乎同时在做多个产品,平台又不统一。
 
  1992年,IDUG大会在瑞士如开,DB2应用开始全球化。DB2 for OS2 V1和DB2 for RS/6000 V1推出,这是第一次在Intel和Unix平台上推出DB2产品。
 
  1993年,郭士纳进入IBM,大刀改革。
 
  1994年,DB2实现了HP unix和Solaris版本。实际上,还真不知道这两个平台上有多少用户。
 
  也是在1994年,AIX平台上DB2开始支持对象型数据。
 
  1995年,DB2开始支持Windows NT, Unix等多个平台。(标志性的一年?)
 
  1995年,收购Lotus,晕,现在我们还在用Lotus的邮件系统。不好用,但是不容易中毒。
 
  1996年,DB2正式更名为DB2 通用数据库。
 
  1997年, DB2 UDB forUnix/windows/OS2同时发布
 
  1998年,DB2 开始支持SCO Unixware
 
  1998年, DB2 UDB5.2出现。(不知道以前的版本是怎么定义的,有些乱。。。)
 
  1999年,DB2支持Linux on intel cpu
 
  2000年,DB2 支持XML扩展
 
  2000年,进一步支持Linux集群
 
  2002年,收购Rational Soft,从此, rose这个大炮工具被IBM弄走了
 
  2002/2003,DB2 V8.1出现
 
  2007年, DB2 V9出现,好像是第一个混合模式(关系型、层次型)数据库出现,既有关系模型,又有直接支持XML的层次模型。不知道是否属于叫好不叫座。
 
  在这期间,忘了是哪一年,印象中,好像是2001/2002年的光景,IBM还收购了Informix,花了1个Billion$,那也是一家曾经响当当的数据库厂商。
 
  数据库厂商的发展历史之MySQL
 
  MySQL这个名字,起源不是很明确。一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQL AB创始人之一的Monty Widenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个密,包括开发者在内也不知道。
 
  MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。
 
  MySQL,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。它的历史也富有传奇性。
 
  MySQL的历史最早可以追溯到1979年,那时Oracle也才小打小闹,微软的SQL Server影子都没有。有一个人叫Monty Widenius, 为一个叫TcX的小公司打工,并用BASIC设计了一个报表工具,可以在4M主频和16KB内在的计算机上运行。过了不久,又将此工具,使用C语言重写,移植到Unix平台,当时,它只是一个很底层的面向报表的存储引擎。这个工具叫做Unireg。
 
  可是,这个小公司资源有限,Monty天赋极高,面对资源有限的不利条件,他反而更能发挥潜能,总是力图写出最高效的代码。并因此养成了习惯。与Monty同在一起的还有一些别的同事,很少有人能坚持把那些代码持续写到20年后,而Monty却做到了。
 
  1990年,TcX的customer 中开始有人要求要为它的API提供SQL支持,当时,有人想到了直接使用商用数据库算了,但是Monty觉得商用数据库的速度难令人满意。于是,他直接借助于mSQL的代码,将它集成到自己的存储引擎中。但不巧的是,效果并不太好。于是, Monty雄心大起,决心自己重写一个SQL支持。
 
  1996年,MySQL 1.0发布,只面向一小拨人,相当于内部发布。到了96年10月,MySQL 3.11.1发布了,呵呵,没有2.x版本。最开始,只提供了Solaris下的二进制版本。一个月后,Linux版本出现了。
 
  紧接下来的两年里,MySQL依次移植到各个平台下。它发布时,采用的许可策略,有些与众不同:允许免费商用,但是不能将MySQL与自己的产品绑定在一起发布。如果想一起发布,就必须使用特殊许可,意味着要花银子。当然,商业支持也是需要花银子的。其它的,随用户怎么用都可以。这种特殊许可为MySQL带来了一些收入,从而为它的持续发展打下了良好的基础。(细想想,PostgreSQL曾经有几年限入低谷,可能与它的完全免费,不受任何限制有关系)。
 
  MySQL3.22应该是一个标志性的版本,提供了基本的SQL支持。
 
  1999-2000年,有一家公司在瑞典成立了,叫MySQL AB(不知道AB是什么意思,待查)。 雇了几个人,与Sleepycat合作,开发出了 Berkeley DB引擎, 因为BDB支持事务处理,所以,MySQL从此开始支持事务处理了。
 
  2000年4月,MySQL对旧的存储引擎进行了整理,命名为MyISAM。同时,2001年,Heikiki Tuuri向MySQL提出建议,希望能集成他们的存储引擎InnoDB,这个引擎同样支持事务处理,还支持行级锁。
 
  如今,遗憾的是,BDB和InnoDB好像都被Oracle收购了,为了消灭竞争对手,哪怕是开源的,都是不择手段。
 
  MySQL与InnoDB的正式结合版本是4.0。
 
  到了MySQL5.0,2003年12月,开始有View, 存储过程之类的东东,当然,其间, bug也挺多。
 
  在2008年1月16号 MySQL被Sun公司收购。
 
  最近,MySQL的创始人Monty Widenius已经向Sun提交了辞呈。head都要走了。
 
  据说,被Sun收购的公司多薄命,不知道MySQL今后前途如何,希望一路走好。相信MySQL的生命力还是很长久的。
 
  派生版本
 
  派生版本有Drizzle,MariaDB,Percona Server及OurDelta等。
 
  数据库厂商的发展历史之Sybase
 
  Sybase公司成立于1984年,公司名称“Sybase”取自“system”和“database”相结合的含义。Sybase公司的创始人之一Bob Epstein 是Ingres 大学版(与System/R同时期的关系数据库模型产品)的主要设计人员。
 
  Sybase公司的第一个关系数据库产品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出Client/Server 数据库体系结构的思想,并率先在SybaseSQLServer 中实现。
 
  提到Ingres数据库,不得不提一下Michael Stonebraker,他是Ingres的创始人。他是加州大学伯克利分校的教授,著名的数据库学者,他在1992 年提出对象关系数据库模型。Stonebraker 教授领导了称为Postgres 的后Ingres 项目。这个项目的成果是非常巨大的,在现代数据库的许多方面都做出的大量的贡献。Stonebraker 教授还做出了一件造福全人类的事情,那就是把Postgres 放在了BSD 版权的保护下。如今Postgres名字已经变成了PostgreSQL,功能也是日渐强大,我也非常喜爱这个数据库。你可自由的浏览它的代码库,可以实时了解一线工程的思路。
 
  话说,87年的时候,Sybase觉得单靠一家力量,难以把SQLServer(那时不叫ASE)做到老大,于是联合微软,共同开发。至于原始的代码从何而来,这个应该与Ingres有些渊源。后来1994年,两家公司合作终止。截止此时,应该是都拥有一套完全相同的SQLServer代码。
 
  然后可想而知了,Sybase继续开发,将Sybase SQLServer往各个平台移植,版本也是跳跃式的变化,从4.2,好像一下子就到了11.0。
 
  Sybase SQLServer后来为了与微软的MS SQL Server相区分,改名叫:Sybase ASE(Adaptive Server Enterprise),其实,应该改名字的是微软。代码的最初拥有者是Sybase,结果得到正式名字的居然是微软。这笔交易,实在是有些亏。不过,ASE也还好记,把Sybase的前边三个字母去就是ase了。
 
  ASE如今已经发展到了15.0.2版了。13和14两个数,对于老美来说,都不是好数,所以直接从12.5.4跳到15.0了。估计Oracle以后也会这样命名。
 
  现在的Sybase,产品策略已经有了调整,在移动数据库市场上,它的ASA (SQL Anywhere)占据了绝对的老大地位,70%以上的市场。同时,Sybase ASE仍然保持着大型数据库厂商的地位。在电信、交通、市政、银行等领域,拥有强大的市场。它的产品全是多平台支持。
 
  Sybase ASE又分出了Replication Server(复制服务器), Sybase IQ等重量级产品,相当于对大型数据库市场又进行了细分。
 
  算起来,MS SQL Server应该算是Sybase ASE的同胞兄弟了,不过,ASE血统更纯正。无论谁更成功,都证明当初的那个SQL Server生命力还在持续,它仍拥有强大的生命力。

第三十五届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:pingxiaoli

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。