与其他知名软件公司创业者多是技术精湛的开发高手不同,Oracle创始人Larry Ellison并非在技术上有什么独特创新或者过人之处,这和微软的Bill Gates、Google的Larry Page,国内知名公司如百度的李彦宏、网易的丁磊有差异,但这并不影响Oracle成为一家伟大的公司,甚至一度是大型数据库的代名词。
1.1 起源
如今Oracle数据库占据着整个数据库软件领域近一半的市场份额,在大型数据库领域更是影响力巨大。关于Oracle数据库的故事要从1970年的6月,IBM公司Edgar F. Codd发表的那篇论文“大型共享数据库的关系模型”(A Relational Model of Data for Large Shared Data Banks)谈起,正是这篇论文拉开了关系型数据库的大幕。当时在行业中受欢迎的还是层次型数据库软件,并且最著名也最典型的层次型数据库系统就是IBM公司的Information Management System(IMS),有意思的是,当时IBM并没有预见到职员Edgar F. Codd发表论文后会带来一股新的潮流,这股潮流虽然不会将其彻底葬送,但是却直接导致其数据库领域第一的宝座不保。
话说1977年6月,Larry Ellison跟合伙人Bob Miner和Edward Oates(这两个人也是Larry一生中最重要的合作伙伴,其中Bob Miner还曾是Larry的老领导,这位仁兄绝对是位技术天才)一起在美国硅谷创建了一家计算机公司——Software Development Laboratories(SDL)。公司创立之初,Bob Miner任总裁(还是Larry Ellison的领导,虽然Larry持有新公司60%的股份),Edward Oates任副总裁,时年已经32岁的Larry依然默默无名(读了三所大学都没能毕业),只是一个普通的软件工程师,并且因为受限于合同问题还在另一家公司上班。
不过,没过多久他们就招来了第一名员工Bruce Scott,这可是一个重量级人物,拥有着纪念意义的名字,所以必须在这里提及。接触过Oracle数据库的朋友是否还记得Oracle数据库中的一个默认用户SCOTT,没错,就是这个Bruce Scott,而SCOTT用户的密码tiger,是当时Scott养的一只猫的名字。你看看,谁说程序员不懂得生活。Scott那真是相当有艺术、有品味、有激情、有爱心哪,用本山大叔的话讲,那是相当有才。
创建初期,他们主要与其他公司合作进行开发(按照今天的流行词汇,叫外包),哥几个在三十年前就预见到这行不好干,费时费力还不一定挣得着钱。他们觉着最省事的方式就是只开发一套程序,然后在市场上反复卖、反复数钱就行了,因此他们决定从事通用软件的开发。不过,此时他们还没有想好具体做哪方面软件,直到他们看到了Edgar F. Codd的那篇论文,以及其他几篇与关系型数据库相关的文章。
当然,在后来所有描述Oracle公司发展历史的文章中,关于这个决定的描述,都一致认为当时Ellison预见到了数据库软件的巨大潜力(是否真是如此?我不知道,但是我认为这就是赶上了机遇),于是,他们将开发的方向定为可用于商业应用的“关系型数据库管理软件”(简称RDBMS,一定要记住这个词,至今Oracle已经升级到了11g,但是其程序目录中仍然有一个rdbms目录)。
此时,另外几个传奇公司,微软已于两年前,即1975年成立,Bill Gates,这位Larry Ellison视为最强对手的技术天才(与Larry Ellison不同哟,Bill Gates可是个真正的技术高手)还憋在自己家的车库中琢磨着写MS-DOS1.0。而苹果也于一年前,即1976年成立,Steve Jobs跟他的合作伙伴Steven Wozniak也还在自己家的车库中研制苹果I号。
这三个如今在业内影响力巨大的公司,虽然产品、理念、文化几乎完全不同,但却有着近乎同样的成功模式,创立者中都有一个技术天才和一个偏执狂一样的人物,比如微软的Bill Gates有Paul Allen,苹果的Steve Jobs有Steven Wozniak(也是个当之无愧的技术奇才),而Larry Ellison有Bob Miner。
再回到SDL,1979年,其更名为Relational Software INC.,简称RSI,毕竟一个公司起名叫什么实验室还是不太合适,甭管它究竟实验什么。为了突出自己的产品,RSI在1983年又再次将公司改名为Oracle(Oracle System Corporation),既是公司名也是产品名,这个名字源自于他们曾为中情局做过的一个项目的名称,也是他们于1979年推出的第一版产品的名字,字典中对该词的解释有“神喻”的含义(看过黑客帝国?对,象征意义都是一样的,说明老外起名也要讲究吉利,得天时之类寓意)。
如今的Oracle用户众多,影响力巨大,但在当时不过是个不知名的小企业和不知名的数据库软件,1979年RSI发布了可用于DEC公司的PDP-11计算机上的商用Oracle产品,虽然推出的产品是第一个版本,但基于市场策略和商业销售方面的考虑,RSI公司宣称这是该产品的第二版,但实际上就是第一版,不过这也正是Larry Ellison高明的地方,直接将新推出的产品定义为第二版,打消了用户认为第一版不够成熟的顾虑。事实证明,这一策略确实有效(对比看看,现在是2009年,如果说当前发布的初始软件版本仍然从1.0开始,并且这还是业内潮流的话——Beta版咱们就不说它,不得不说,1979年时的Larry Ellison在产品营销上起码领先国内30年)。不过这个版本基本上就是个玩具,除了做些简单的关系查询外,什么也做不了。
Oracle数据库最初的两个用户是美国中央情报局和海军情报所,在那个时代不同机构往往同时用多种计算机,而且也没有软件可移值性之类的概念,20世纪70年代末期和80年代早期的软件,一般都设计成在单一操作系统上运行,因此很快就遇到新的需求:Oracle能不能在不同的操作系统上运行?用户提出的需求,迫使Ellison和Miner作出了重要的决定:Oracle第三版全部用C语言开发。这在当时是有风险的,C语言也是刚刚推出,但最终他们获得了成功,因为所有机器都能支持C语言,而且C编译器便宜且有效,还拥有很好的移植性,因此Oracle又拥有了一项关键特性,即“可移植性”。
此后,Larry Ellison便向客户宣称Oracle能运行在所有的机器上,虽然这到现在都不可能实现(Oracle公司目前宣称的是能够在100多种不同的计算机上运行,没说所有的哟),但必须承认,这也是非常聪明的市场策略,那个年月还没有PC这个概念,各种大型计算机和操作系统都不一样,因此大的机构通常更愿意购买一种能通用的数据库(如果有的话)。此时的Larry Ellison绝对算得上大话王,这哥们完全将市场放在第一位,坚信较早占领大块的市场份额才是最重要的,因此虽然早期版本的Oracle几乎无法正常工作,到处是Bug,程序错误很多,用户也抱怨不断,但有意思的是Oracle公司的早期用户似乎不在意损失金钱和数据(FBI都没意见),Larry Ellison也只管持续不断吹嘘,同他们描述产品将能达到的美好功能(虽然现在没有)。如果Larry Ellison拥有匹诺曹血统的话,美国就不用研制航天飞机、宇宙飞船、运载火箭了,想去月球的话顺着他的鼻子向上爬就行了。几年后,Ellison总结了公司早期对待客户的态度:“喏!这是我们的软件,拿去用吧!敢不敢?”
1.2 发展
Oracle的第三个版本(实际是第二版,后面再说到版本号就不再强调,大家知道是怎么回事儿就行了)在1983年3月推出,除了增加了可移值性的特性外,在软件方面最重要的改进是引入事务的概念,即SQL要么成功、要么失败,取决于事务是否提交;同时还引入了另一关键特性——写不阻塞读(通过回滚段中的数据实现查询和回滚事务,避免了读锁定),对于大访问量、高并发的应用,这点非常重要。因为这一特性,想要在Oracle中实现读锁是非常麻烦的(即使你主动希望实现这一功能,不过,应该不会有这样BT需求吧)。
时隔一年多,Oracle于1984年10月推出了第4版。在这一版本,稳定性有不小的提升,用Miner的话说就是达到了“工业强度”,Miner的话还是靠谱的,起码比Ellison靠谱,不过尽管如此,还不足以达到令人满意的地步。这一版最重大的改进是增加了读一致性(Read Consistency)的特性(即一个会话修改数据时,只要不提交,其他的会话就看不到这项修改,要记住这个概念,这是Oracle极重要的特性之一)。虽然说产品始终不够健壮,但销售人员表现出色,这一年Oracle公司总收入达到1270万美元,其中表现最出色的自然是Larry Ellison(确实能吹),比如有一次Ellison听说其当时最大的竞争对手Ingres发明了一种新技术——分布式查询,没过几天Oracle就刊登广告发布了SQL之星:第一个分布式查询数据库(其实并没有这样的产品)。
Ellison就是这样,想象着产品应该怎么样,然后再去实现,因此在宣传Oracle的时候总是夸大其词(貌似至今未改),但他就是能把软件卖出去,而且还卖得不错,这点实在让人惊奇。中国有句古话说的是“男怕入错行”,Larry Ellison大师亲身向我们证实了这句中国古老谚语的正确性,比起之前干软件开发时的惨淡,他做销售可谓风生水起。
1985年4月,Oracle发布了第5版,据称这也是首批支持Client/Server模式运行的RDBMS产品,而且一年后发布的5.1升级版,终于新增了分布式查询功能(还算不错,最终还是实现了的,虽然晚了两年),即一次查询、访问存储于多个位置上的数据。当时Oracle主要竞争对手是Ingres数据库,由Berkeley大学的Michael Stonebraker教授负责设计,当时Ingres数据库的市场份额增长速度甚至比Oracle还要快。幸运的是,关键时刻又是IBM伸手拉了Ellison一把,这回也不是主动的。
鉴于Ingres的高速发展,IBM担心其把所使用的查询方式QUEL变成标准,会对自己的SQL形成重大威胁。Ingres使用的QUEL(Query Language,查询语言)查询方式和IBM的SQL(Structured Query Language,结构化查询语言)大不相同。QUEL由Stonebraker教授发明,在某些地方甚至优于SQL。IBM多番思量后,决定把SQL提交给数据库标准委员会。这就让Oracle找到了机会,因为Stonebraker教授并不打算把QUEL提交给数据库标准委员会(教授多是学院派,压根就不认同这种标准化的行为,反而觉着这种方式将会扼杀新技术的发展)。于是,Ellison借助这个天赐良机,大力宣扬Oracle与IBM的兼容性。
同时,Ingres还犯下了一个致命的错误,很晚才开发PC上运行的版本,而Ellison和Bill Gates一样都看到了PC市场的巨大潜力,因此Oracle在4.0时就有了PC上运行的版本(虽然实际上没啥用),这让Ellison再一次掌握了宣传利器:Oracle能够运行在PC上,Ingres却不能(弱化对手优势,化解自己弱势是他们最拿手的本领),再加上Oracle公司销售上的强势,以及Ingres过分关注技术而不关心市场的学术化运作方式,最终,SQL在1986年正式成为了工业标准。而Ingres……你听说过这家公司吗?
1986年3月12日,是Oracle公司历史上不可忘却的一天,其股票以每股15美元上市,当日收盘价为20.75美元,公司市值达到2.7亿美元。24小时之后,即3月13日,微软以每股21美元的价格上市,收盘时则上涨到28美元,公司市值达到7亿美元,是Oracle的近3倍。Oracle的上市给Ellison带来了9300万美元的身家,但第二天微软上市后,Bill Gates拥有的股票市值超过了3亿美元,Oracle和Ellison在短暂的闪亮登场后,就开始长久地笼罩在微软和Bill Gates的阴影之下,从这一天(这可能也是Ellison敌视微软的开始)起,这两家同样极其成功的公司就难分难解地联系在一起。
=================================================
全书目录:http://space.itpub.net/7607759/viewspace-622699
样书预览:http://space.itpub.net/7607759/viewspace-622515
马上购买:http://www.china-pub.com/196252
链接:http://space.itpub.net/7607759/viewspace-623144
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23650854/viewspace-682096/
,如需转载,请注明出处,否则将追究法律责任。