Oracle、DB2、Sybase、MySQL的这些年(截至2007年)

关系模型提出已有40年,而关系数据库管理系统(DBMS)如今也早已成为 一类重要的软件,应用甚广,影响甚远。借这篇转载的文章,一起来回顾一下现今活跃的这些产品的前世今生吧。

 

Oracle ( 1979 - 2007 )

起源与成长

所有这一切要从 IBM 的一篇论文谈起, 1970 年的 6 月, IBM 公司的研究员埃德加·考特 ( Edgar Frank Codd ) 在 Communications of ACM 上发表了那篇著名的《大型共享数据库数据的关系模型》( A Relational Model of Data for Large Shared Data Banks )的论文。这是数据库发展史上的一个转折。要知道,当时还是层次模型和网状模型的数据库产品在市场上占主要位置。从这篇论文开始,拉开了关系型数据库软件革命的序幕。 IBM 虽然 1973 年就启动了 System R 的项目来研究关系型数据库的实际可行性,但没有及时推出这样的产品,因为当时 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 在加州大学伯克利分校诞生,主要的设计者是当时鼎鼎大名的 Michael Stonebraker 教授。可以说 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 月的 ORACLE OpenWorld 大会中, 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 ( ORACLE Application Server 10g )也将作为甲骨文公司下一代应用基础架构软件集成套件。“ g ”代表“ grid , 网格”。这一版的最大的特性就是加入了网格计算的功能。 (Oracle 绝对是造概念的能手,只要是能引领出新的卖点,出些新概念,也是值得的 ) 。

最近两年, Oracle 先后又收购了 People soft(103 亿 $) , BEA(80 多亿 $) ,还有 Sibel 之类的就不说了。通过收购,实力大增。

2007 年 11 月, Oracle 11g 正式发布,功能上大大加强。 11g 是甲骨文公司 30 年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理( Information Lifecycle Management )等多项创新。大幅提高了系统性能安全性,全新的 Data Guard 最大化了可用性,利用全新的高级数据压缩技术降低了数据存储的支出,明显缩短了应用程序测试环境部署及分析测试结果所花费的时间,增加了 RFID Tag 、 DICOM 医学图像、 3D 空间等重要数据类型的支持,加强了对 Binary XML 的支持和性能优化。

从 Oracle 的发展来看,它的市场策略直接引导着公司的发展。与别的公司有很大的不同。

DB2 ( 1983 - 2007 )

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) for MVS ,内部代号为 "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 for Unix/windows/OS2 同时发布

1998 年, DB2 开始支持 SCO Unixware

1998 年, DB2 UDB 5.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$ ,那也是一家曾经响当当的数据库厂商。(转载注: 2001 年, IBM 以 10 亿美金收购了 Informix 数据库业务,详见IBM官方的“DB2大事记 ”

Sybase ( 1987 - 2007 )

Sybase 公司成立于 1984 年,公司名称“ Sybase ”取自“ system ”和“ database ”相结合的含义。 Sybase 公司的创始人之一 Bob Epstein 是 Ingres 大学版(与 System/R 同时期的关系数据库模型产品)的主要设计人员。

Sybase 公司的第一个关系数据库产品是 1987 年 5 月推出的 Sybase SQLServer 1.0 。 Sybase 首先提出 Client/Server 数据库体系结构的思想,并率先在 Sybase SQLServer 中实现。

提到 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 生命力还在持续,它仍拥有强大的生命力。

MySQL ( 1996 - 2007 )

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 曾经有几年陷入低谷,可能与它的完全免费,不受任何限制有关系)。

MySQL 3.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 。

到了 MySQL 5.0 , 2003 年 12 月,开始有 View, 存储过程之类的东东,当然,其间, bug 也挺多。

在 2008 年 1 月 16 号 MySQL 被 Sun 公司收购。

最近, MySQL 的创始人 Monty Widenius 已经向 Sun 提交了辞呈。 head 都要走了。

据说,被 Sun 收购的公司多薄命,不知道 MySQL 今后前途如何,希望一路走好。相信 MySQL 的生命力还是很长久的。(转载注:一语成谶,如今 SUN 连同 MySQL 一起都被 Oracle 照单全收 , MySQL 前路茫茫。)

--------------------------
转自51cto.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值