书写历史的甲骨文--ORACLE公司传奇[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 taozhuo 的 blog


[oracle] 书写历史的甲骨文--oracle公司传奇

整理:fenng
日期:09-sep-2004  
出处:http://www.dbanotes.net
版本:1.01 (本文已经发表在《程序员》杂志)


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)。

oracle company gang of four
图1 左起 ed oates、bruce scott、bob miner、larry ellison


很快他们就弄出来一个不太像样的产品,或者具体的说,更像一个demo。根据ellison和miner他们在前一家公司从事的一个由中央情报局投资的项目代码,他们把这个产品命名为oracle。因为他们相信,oracle(字典里的解释有“神谕, 预言”之意)是一切智慧的源泉。1979年,sdl更名为关系软件有限公司(relational software,inc.,rsi),毕竟“软件开发实验室”不太像一个大公司的名字。1983年,为了突出公司的核心产品,rsi再次更名为oracle。

oracle company
图2 美国 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主机和decvax上。很快用户就表现出来这样的需求: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

本文关键:书写历史的甲骨文--ORACLE公司传奇
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top