日期:2013-08-06  浏览次数:20563 次


[Oracle] 书写历史的甲骨文――ORACLE公司传奇

作者:Fenng
日期:Sep 09 2004

ORACLE公司之起源
很难想象,ORACLE公司的这一段传奇竟然要从IBM开始。

1970年的6月,IBM公司的研讨员埃德加·考特 (Edgar Frank Codd) 在Communications of ACM 上发表了那篇著名的《大型共享数据库数据的关系模型》(A Relational Model of Data for Large Shared Data Banks)的论文。这是数据库发展史上的一个转机。要知道,当时还是层次模型和网状模型的数据库产品在市场上占次要位置。从这篇论文开始,拉开了关系型数据库软件反动的尾声。

虽然早在1970年就诞生了关系模型理论,但是市场上迟迟不见关系型数据库管理软件的推出。次要缘由是很多反对者认为关系型数据库速度太慢,比不上当时的层次式数据库。值得好笑的是,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养的猫的名字)加盟进来,在Miner和Oates有些厌倦了那种合同式的开发任务后,他们决定开发通用软件,不过们还不知道本人能开发出来什么样的产品。Oates最先看到了埃德加·考特的那篇著名的论文连同其他几篇相关的文章并推荐Ellison和Miner也阅读一下。Ellison和Miner预见到数据库软件的巨大潜力(跟着IBM走,没错),于是,SDL开始策划构建可商用的关系型数据库管理系统(RDBMS)。

很快他们就弄出来一个不太像样的产品,或者具体的说,更像一个Demo。依据Ellison和Miner他们在前一家公司从事的一个由地方情报局投资的项目代码,他们把这个产品命名为ORACLE。由于他们置信,ORACLE(字典里的解释有“神谕, 预言”之意)是一切智慧的源泉。1979年,SDL更名为关系软件无限公司(Relational Software,Inc.,RSI),毕竟“软件开发实验室”不太像一个大公司的名字。1983年,为了突出公司的核心产品,RSI再次更名为ORACLE。


图1 美国ORACLE公司总部一瞥

发展与壮大

RSI在1979年的夏季发布了可用于DEC公司的PDP-11计算机上的商用ORACLE产品,这个数据库产品整合了比较完整的SQL实现,其中包括子查询、连接及其他特性。但不得不说,软件不是很稳定,并缺少事务处理这样的重要功用。出于市场策略,公司声称这是该产品的第二版,但却是实际上的第一版。之所以被命名为第2版而不是第1版,是由于Ellison认为潜在的客户更情愿购置第2个版本,而不是初始版本。(虽然这样做有些不太诚实,还是要承认这是个十分高明的技巧。到如今还有一些公司把本人卖给客户的版本叫做1.0 ,学学1979年的ORACLE吧!)多年当前的今天,ORACLE公司声称是他们第一个提供了第一个SQL关系型数据库管理系统。

虽然软件不是很好,但是客户还是有的。美国地方情报局迫不及待的想买一套这样的软件来满足他们的需求。但在咨询了IBM公司之后发现IBM没有可以商用的产品,他们联系了RSI。于是RSI有了第一个客户。在当时,政府和军方的机构往往同时有几种计算机,而那时还没有什么“软件可移植”这样的说法,当然,也几乎没有具有这样的能力的使用软件。也就是说,给PDP-11开发的ORACLE数据库不能用在IBM主机和DEC的VAX上。很快用户就表现出来这样的需求:ORACLE能否同时在不同的操作系统上运转?这给RSI带来了新的挑战(次要是Miner和Scott)。70年代末期和80年代晚期的软件普通都设计成在单一操作系统上运转,具有可移植能力的软件很少。

1983年3月,RSI发布了ORACLE第三版。Miner和Scott历尽艰苦用C言语重新写就这一版本。要知道,C言语当时推出不久,用它来写ORACLE软件也是具有一定的风险的,但除此之外,别无他法。很快就证明了这样做是多么的正确,C编译器便宜而又无效。从如今起,ORACLE产品有了一个关键的特性:可移植性。ORACLE第3版还推出了SQL语句和事务处理的“原子性”――SQL语句要么全部成功,要么全部失败,事务处理要么全部提交,要么全部回滚。ORACLE第3版还引入了非阻塞查询,使用存储在"before image file"中的数据来查询和回滚事务,从而避免了读锁定(read lock)的使用(虽然通过使用表级锁定限制了它的吞吐量)。同样是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没有那么多的想法,他只是太累了。



图二 Bruce Scott 如今是PointBase公司的发起人之一

ORACLE最先将其软件移植到DEC VAX计算机上的VMS操作系统上。早在1979年公司就曾经雇了一位DEC公司的技术高手Robot Brandt进行VAX上ORACLE的开发。开始的时候资金无限,只能到加州大学伯克利分校去蹭机器进行开发,后来好一些,但机器也是借来的。虽然困难重重,Brandt还是比较成功的完成了移植任务。随着VAX小型机的大量销售乃至供不应求,ORACLE软件也成为VAX上最受欢迎的程序。这一点要归功于Larry对市场的先知先觉。如果说,是IBM引领着ORACLE公司走上数据库的大船,那么DEC公司的VAX就是带着他们扬帆出海了。短短的几年之后,ORACLE数据库被移植到各种次要平台之上。ORACLE产品也不断由于有可移植性这个关键特性而被那些潜在的客户关注。

Oates这个时候由于婚姻趋于破裂而情绪沮丧,曾经不能把精力全部放到公司上,不得不离开公司。几年后,他又重返公司,重新为ORACLE带来巨大的奉献,他许下诺言,在公司员工超过1万人的时候会再度离开。1999年,他完成了希望。如今他正在尽情于音乐,自得其乐。

很长一段时间里,公司研发由Miner独力承担。Miner视金钱如无物,为人低调,和Ellison的锋芒必露构成鲜明的对比。在公司里,大家分歧认为他是老好人,他也深受员工爱戴。Ellison是公司的大脑,Miner则当之无愧的成为公司的心脏。他是个沉默的英雄,正如Steve Jobs背后的Steve Wozniak一样。

1984年10月,ORACLE发布了第4版产品。产品的稳定性总算得到了得到了一定的加强,用Miner的话说,达到了“工业强度”。但是还不够令人满意,用户对产品的抱怨似乎永无休止。这一版添加了读分歧性(read consistency),这是数据库的一个关键特性,可以确保用户在查询期间看到分歧的数据。也就是说,当一个会话正在修正数据时,其他的会话将看不到该会话未提交的修正。可以看到,在ORACLE第四版之前,产品一直是不稳定的,但是ORACLE的这群销售人员,次要是Ellison,他在宣传ORACLE的时候总是要夸大其词,但他就是有能力把软件卖出去,而且,还卖得很好,不得不承认,这的确有些神奇。让我们看看1984年软件市场的情形,在数据库市场上的霸主是Asnton-Tale公司,他们的拳头产品是刚推出不久的dBase III(确切的说dBase是PC上的数据库软件霸主),刚刚成为全球第三大的