📄 csdn技术中心 书写历史的甲骨文--oracle公司传奇.htm
字号:
<TD height=19>
<TABLE cellSpacing=3 cellPadding=3 width="100%" border=0>
<TBODY>
<TR>
<TD><A href="http://www.csdn.net/">CSDN</A> - <A
href="http://dev.csdn.net/">文档中心</A> - <FONT color=#003399><A
id=ArticleTitle1_ArticleTitle1_hlClass
href="http://dev.csdn.net/articlelist.aspx?c=8">数据库开发</A></FONT>
</TD>
<TD align=right>阅读:<SPAN
id=ArticleTitle1_ArticleTitle1_lblReadCount>286</SPAN>
评论: <SPAN
id=ArticleTitle1_ArticleTitle1_lblCommentCount>0</SPAN>
<A
href="http://dev.csdn.net/article/69/69776.shtm#Comment">参与评论</A>
</TD></TR></TBODY></TABLE>
<TABLE cellSpacing=3 cellPadding=3 width="100%" bgColor=#eeeeee
border=0>
<TBODY>
<TR>
<TD noWrap width=60 height=0></TD>
<TD></TD></TR>
<TR>
<TD noWrap align=middle bgColor=#003399 height=16><FONT
color=#ffffff>标题</FONT></TD>
<TD><B> <SPAN
id=ArticleTitle1_ArticleTitle1_lblTitle>书写历史的甲骨文--ORACLE公司传奇</SPAN></B>
选择自 <A id=ArticleTitle1_ArticleTitle1_AuthorLink
href="http://dev.csdn.net/user/taozhuo">taozhuo</A> 的 Blog
</TD></TR>
<TR>
<TD align=middle bgColor=#003399 height=16><FONT
color=#ffffff>关键字</FONT></TD>
<TD width=500> <SPAN
id=ArticleTitle1_ArticleTitle1_lblKeywords>书写历史的甲骨文--ORACLE公司传奇</SPAN></TD></TR>
<TR>
<TD align=middle bgColor=#003399 height=16><FONT
color=#ffffff>出处</FONT></TD>
<TD> <SPAN
id=ArticleTitle1_ArticleTitle1_lblSource></SPAN></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width=10></TD>
<TD><SPAN id=ArticleContent1_ArticleContent1_lblContent><BR>
<DIV>
<H1>[Oracle] 书写历史的甲骨文--ORACLE公司传奇</H1>整理:Fenng <BR>日期:09-Sep-2004
<BR>出处:<A
href="http://www.dbanotes.net/">http://www.dbanotes.net/</A>
<BR>版本:1.01 (本文已经发表在《程序员》杂志) <BR></DIV>
<HR>
<BR>
<H2>ORACLE公司之起源</H2><BR>很难想象,ORACLE公司的这一段传奇居然要从<ACRONYM
title="International Business Machines">IBM</ACRONYM>开始。
<BR><BR>1970年的6月,<ACRONYM
title="International Business Machines">IBM</ACRONYM>公司的研究员埃德加·考特
(Edgar Frank Codd) 在 Communications of ACM
上发表了那篇著名的《大型共享数据库数据的关系模型》(A Relational Model of Data for Large
Shared Data
Banks)的论文。这是数据库发展史上的一个转折。要知道,当时还是层次模型和网状模型的数据库产品在市场上占主要位置。从这篇论文开始,拉开了关系型数据库软件革命的序幕。
<BR><BR>虽然早在1970年就诞生了关系模型理论,但是市场上迟迟不见关系型数据库管理软件的推出。主要原因是很多反对者认为关系型数据库速度太慢,比不上当时的层次式数据库。值得好笑的是,<ACRONYM
title="International Business Machines">IBM</ACRONYM>虽然1973年就启动了System
R的项目来研究关系型数据库的实际可行性,也没有及时推出这样的产品,因为当时<ACRONYM
title="International Business Machines">IBM</ACRONYM>的的IMS(著名的层次型数据库)市场不错,如果推出关系型数据库,牵涉到<ACRONYM
title="International Business Machines">IBM</ACRONYM>很多人的自身利益。再者,<ACRONYM
title="International Business Machines">IBM</ACRONYM>庞大复杂的官僚机构处在决策上远不那么灵活。
<BR><BR>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预见到数据库软件的巨大潜力(跟着<ACRONYM
title="International Business Machines">IBM</ACRONYM>走,没错),于是,SDL开始策划构建可商用的关系型数据库管理系统(<ACRONYM
title="Relational Database Mangement System">RDBMS</ACRONYM>)。 <BR>
<P align=center><IMG alt="Oracle Company Gang of four"
src="CSDN技术中心 书写历史的甲骨文--ORACLE公司传奇.files/Oracle_Gang_of_4.jpg">
<BR>图1 左起 Ed Oates、Bruce Scott、Bob Miner、Larry
Ellison</P><BR>很快他们就弄出来一个不太像样的产品,或者具体的说,更像一个Demo。根据Ellison和Miner他们在前一家公司从事的一个由中央情报局投资的项目代码,他们把这个产品命名为ORACLE。因为他们相信,ORACLE(字典里的解释有“神谕,
预言”之意)是一切智慧的源泉。1979年,SDL更名为关系软件有限公司(Relational
Software,Inc.,<ACRONYM
title="Relational Software,Inc.">RSI</ACRONYM>),毕竟“软件开发实验室”不太像一个大公司的名字。1983年,为了突出公司的核心产品,<ACRONYM
title="Relational Software,Inc.">RSI</ACRONYM>再次更名为ORACLE。 <BR><BR>
<P align=center><IMG height=415 alt="Oracle Company"
src="CSDN技术中心 书写历史的甲骨文--ORACLE公司传奇.files/Oracle_Company.jpg"
width=553> <BR>图2 美国 Oracle 公司总部一瞥</P><BR>
<HR>
<BR>
<H2>发展与壮大</H2><BR>RSI在1979年的夏季发布了可用于<ACRONYM
title="Digital Equipment Corporation">DEC</ACRONYM>公司的<ACRONYM
title="Progammable Data Processor">PDP</ACRONYM>-11计算机上的商用ORACLE产品,这个数据库产品整合了比较完整的<ACRONYM
title="Structured Query Language">SQL</ACRONYM>实现,其中包括子查询、连接及其他特性。但不得不说,软件不是很稳定,并缺少事务处理这样的重要功能。出于市场策略,公司宣称这是该产品的第二版,但却是实际上的第一版。之所以被命名为第2版而不是第1版,是因为Ellison认为潜在的客户更愿意购买第2个版本,而不是初始版本。(虽然这样做有些不太诚实,还是要承认这是个十分高明的技巧。到现在还有一些公司把自己卖给客户的版本叫做1.0
,学学1979年的ORACLE吧!)多年以后的今天,ORACLE公司声称是他们第一个提供了第一个<ACRONYM
title="Structured Query Language">SQL</ACRONYM>关系型数据库管理系统。
<BR><BR>虽然软件不是很好,但是客户还是有的。美国中央情报局迫不及待的想买一套这样的软件来满足他们的需求。但在咨询了<ACRONYM
title="International Business Machines">IBM</ACRONYM>公司之后发现<ACRONYM
title="International Business Machines">IBM</ACRONYM>没有可以商用的产品,他们联系了<ACRONYM
title="Relational Software,Inc.">RSI</ACRONYM>。于是<ACRONYM
title="Relational Software,Inc.">RSI</ACRONYM>有了第一个客户。在当时,政府和军方的机构往往同时有几种计算机,而那时还没有什么“软件可移植”这样的说法,当然,也几乎没有具有这样的能力的应用软件。也就是说,给<ACRONYM
title="Progammable Data Processor">PDP</ACRONYM>-11开发的ORACLE数据库不能用在<ACRONYM
title="International Business Machines">IBM</ACRONYM>主机和<ACRONYM
title="Digital Equipment Corporation">DEC</ACRONYM>的<ACRONYM
title="Virtual Address eXtended">VAX</ACRONYM>上。很快用户就表现出来这样的需求:ORACLE能否同时在不同的操作系统上运行?这给<ACRONYM
title="Relational Software,Inc.">RSI</ACRONYM>带来了新的挑战(主要是Miner和Scott)。70年代末期和80年代早期的软件一般都设计成在单一操作系统上运行,具有可移植能力的软件很少。
<BR><BR>1983年3月,<ACRONYM
title="Relational Software,Inc.">RSI</ACRONYM>发布了ORACLE第三版。Miner和Scott历尽艰辛用C语言重新写就这一版本。要知道,C语言当时推出不久,用它来写ORACLE软件也是具有一定的风险的,但除此之外,别无他法。很快就证明了这样做是多么的正确:C编译器便宜而又有效,还有很好的移植性。从现在起,ORACLE产品有了一个关键的特性:<STRONG>[可移植性]</STRONG>。ORACLE第3版还推出了<ACRONYM
title="Structured Query Language">SQL</ACRONYM>语句和事务处理的“原子性”--<ACRONYM
title="Structured Query Language">SQL</ACRONYM>语句要么全部成功,要么全部失败,事务处理要么全部提交,要么全部回滚。ORACLE第3版还引入了非阻塞查询,使用存储在<STRONG>"Before
Image File"</STRONG>中的数据来查询和回滚事务,从而避免了读锁定(read
lock)的使用(虽然通过使用表级锁定限制了它的吞吐量)。同样是1983年,<ACRONYM
title="International Business Machines">IBM</ACRONYM>发布了姗姗来迟的Database
2(<ACRONYM
title="Database 2">DB2</ACRONYM>),但只可在MVS上使用。不管怎么说,ORACLE已经占取了先机。
<BR><BR>在开发第三版还没有结束的时候,Scott离开了ORACLE。当时用C语言改写ORACLE的压力很大,无休止的软件调试终于让Scott不堪重负,选择了一走了之。把剩下的重担交给了Miner一个人。在出售了自己的%4的股票之后,Scott
后来创建了Gupta公司(现更名为Centura
Software)和PointBase公司(提供百分之百纯Java嵌入式数据库),都是开发和数据库相关的产品。多年后有人问到他的%4的ORACLE股票的时候,Scott,这个曾经给ORACLE写出第一行代码的技术高手,也只能报以一笑了。如果能坚持下来,那是一笔几亿美金的财富。不过当时的Scott没有那么多的想法,他只是太累了。
<BR><BR>
<P align=center><BR><IMG height=76 alt="Bruce Scott"
src="CSDN技术中心 书写历史的甲骨文--ORACLE公司传奇.files/Scott.jpg" width=65> <BR>图3
Bruce Scott 现在是PointBase公司的创办者之一</P><BR>ORACLE最先将其软件移植到<ACRONYM
title="Digital Equipment Corporation">DEC</ACRONYM> <ACRONYM
title="Virtual Address eXtended">VAX</ACRONYM>计算机上的VMS操作系统上。早在1979年公司就已经雇了一位<ACRONYM
title="Digital Equipment Corporation">DEC</ACRONYM>公司的技术高手Robot
Brandt进行<ACRONYM
title="Virtual Address eXtended">VAX</ACRONYM>上ORACLE的开发。开始的时候资金有限,只能到加州大学伯克利分校去蹭机器进行开发,后来好一些,但机器也是借来的。尽管困难重重,Brandt还是比较成功的完成了移植工作。随着<ACRONYM
title="Virtual Address eXtended">VAX</ACRONYM>小型机的大量销售乃至供不应求,ORACLE软件也成为<ACRONYM
title="Virtual Address eXtended">VAX</ACRONYM>上最受欢迎的程序。这一点要归功于Larry对市场的先知先觉。如果说,是<ACRONYM
title="International Business Machines">IBM</ACRONYM>引领着ORACLE公司走上数据库的大船,那么<ACRONYM
title="Digital Equipment Corporation">DEC</ACRONYM>公司的<ACRONYM
title="Virtual Address eXtended">VAX</ACRONYM>就是带着他们扬帆出海了。短短的几年之后,ORACLE数据库被移植到各种主要平台之上。ORACLE产品也一直因为有可移植性这个关键特性而被那些潜在的客户关注。
<BR><BR>Oates这个时候因为婚姻趋于破裂而情绪沮丧,已经不能把精力全部放到公司上,不得不离开公司。几年后,他又重返公司,重新为ORACLE做出巨大的贡献,他许下诺言,在公司员工超过1万人的时候会再度离开。1999年,他完成了心愿。现在他正在纵情于音乐,自得其乐。
<BR><BR>很长一段时间里,公司研发由Miner独力承担。Miner视金钱如无物,为人低调,和Ellison的锋芒必露形成鲜明的对比。在公司里,大家一致认为他是老好人,他也深受员工爱戴。Ellison是公司的大脑,Miner则当之无愧的成为公司的心脏。他是个沉默的英雄,正如Steve
Jobs背后的Steve Wozniak一样。
<BR><BR>1984年10月,ORACLE发布了第4版产品。产品的稳定性总算得到了得到了一定的增强,用Miner的话说,达到了“工业强度”。但是还不够令人满意,用户对产品的抱怨似乎永无休止。这一版增加了<STRONG>读一致性(Read
Consistency)</STRONG>,这是数据库的一个关键特性,可以确保用户在查询期间看到一致的数据。也就是说,当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改。可以看到,在ORACLE第四版之前,产品始终是不稳定的,但是ORACLE的这群销售人员,主要是Ellison,他在宣传ORACLE的时候总是要夸大其词,但他就是有能力把软件卖出去,而且,还卖得很好,不得不承认,这的确有些神奇。让我们看看1984年软件市场的情形,在数据库市场上的霸主是Asnton-Tale公司,他们的拳头产品是刚推出不久的dBase
III(确切的说dBase是PC上的数据库软件霸主),刚刚成为全球第三大的独立软件公司(第一和第二分别是微软、Lotus,ORACLE在当时还排不上号),这一年,也是苹果公司Macintosh诞生的年度,Steven
Jobs用这个拳头产品挑战老大哥<ACRONYM
title="International Business Machines">IBM</ACRONYM>。同样在这一年中,ORACLE公司的开发人员刚刚把产品移植到PC上。这是最好的年代,也是最坏的年代。数以千计的小公司在软件领域里争斗不休,新公司如雨后春笋般成立,ORACLE如何才能于不败之地?
<BR><BR>在1985年,ORACLE发布了5.0版。有用户说,这个版本算得上是ORACLE数据库的稳定版本。这也是首批可以在Client/Server模式下运行的的<ACRONYM
title="Relational Database Mangement System">RDBMS</ACRONYM>产品,在技术趋势上,ORACLE数据库始终没有落后。这意味着运行在桌面PC机(客户机)上的商务应用程序能够通过网络访问数据库服务器。1986年发布的5.1版还支持<STRONG>分布式查询</STRONG>,允许通过一次性查询访问存储在多个位置的数据。
<BR><BR>那是在1985年,当时曾经的最大的独立软件公司Cullinet(主要销售网状数据库)已经如流星般陨落。ORACLE的主要竞争对手是Ingres数据库。Ingres在加州大学伯克利分校诞生,主要的设计者是当时鼎鼎大名的Michael
Stonebraker教授。可以说Ingres数据库软件是上个世纪80年代技术上最好的数据库,Ingres市场分额的快速增长已经给ORACLE早成了很大的压力。巧的是,这个时候,<ACRONYM
title="International Business Machines">IBM</ACRONYM>公司再一次伸出“上帝之手”。
<BR><BR>Ingres使用的是Stonebraker 发明的<ACRONYM
title="QUEry Language">QUEL</ACRONYM>(Query
Language))的查询技术,这和<ACRONYM
title="International Business Machines">IBM</ACRONYM>的<ACRONYM
title="Structured Query Language">SQL</ACRONYM>大不相同。在某些地方<ACRONYM
title="QUEry Language">QUEL</ACRONYM>甚至要优于<ACRONYM
title="Structured Query Language">SQL</ACRONYM>。<ACRONYM
title="International Business Machines">IBM</ACRONYM>当时担心Ingres把<ACRONYM
title="QUEry Language">QUEL</ACRONYM>变成标准会对自己不利。经过一番衡量,决定把自己的<ACRONYM
title="Structured Query Language">SQL</ACRONYM>提交给数据库标准委员会。而Stonebraker教授可不打算把<ACRONYM
title="QUEry Language">QUEL</ACRONYM>提交给数据库标准委员会,学院派的他认为这麽做实际上是扼杀了创新精神。鹬蚌相争,渔翁得利。ORACLE看到并抓住了这个绝佳的机会,大肆宣布ORACLE全面与<ACRONYM
title="Structured Query Language">SQL</ACRONYM>兼容,加上ORACLE当时对Ingres
PC上的版本的攻击(弱化对手优势,化解自己弱势是他们最拿手的本领),再加上ORACLE公司销售上的强势,Ingres不断丢城失地,等到后来推出支持<ACRONYM
title="Structured Query Language">SQL</ACRONYM>的数据库的时候为时已晚。紧跟<ACRONYM
title="International Business Machines">IBM</ACRONYM>让ORACLE得以成长、壮大,拥抱标准,拥抱开放,拥抱变化,让ORACLE立于不败之地。
<BR><BR>1986年3月12日,ORACLE公司以每股15美元公开上市,当日以20.75美元收盘,公司市值2.7亿美元。3月13日,微软以每股21美元的发行价上市,以28美元收市,公司市值达到7亿美元。远远超过了ORACLE。成功的光环的微软和盖茨遮盖住了ORACLE和Ellison的光芒,可能这也是Ellison敌视微软的开始。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -