字节跳动与甲骨文、沃尔玛对 TikTok 的合作形成原则性共识。沃尔玛这家公司,大众比较熟悉,但是甲骨文公司是干什么的,大多数读者可能并不了解。
分享一下我多年前写的一份关于甲骨文公司的发展记录。或许对各位能有参考。
你读到的这篇文章是我在 2009 年年底修订的版本,从成稿以来经历过至少三次以上大规模的修订,补充了若干新了解到的信息。网络上有不少写甲骨文公司的文章,应该都参考或抄袭过我这份文档,一直到现在。如果你看到一篇类似的内容,要么是我写的,要么是别人抄我的。
本文仅供参考,如有谬误,敬请指正。所有信息来自公开资料,恕不负责信息准确性。
文中的 ORACLE 指甲骨文公司,Oracle 指甲骨文公司的数据库软件产品。
第一章ORACLE 公司之起源
很难想象,ORACLE 公司的这一段传奇历程居然要从 IBM 公司开始说起。
1970 年 6 月,IBM 公司的研究员埃德加·考特(Edgar Codd) 在 Communications of ACM 杂志上发表了那篇著名的论文,《大型共享数据库数据的关系模型》(A Relational Model of Data for Large Shared Data Banks)。这是数据库发展史上的一个里程碑事件。要知道,当时还是层次模型和网状模型的数据库产品在市场上占主要位置。从这篇论文开始,拉开了关系型数据库 (RDBMS) 软件革命的序幕。
虽然业界早在 1970 年就诞生了关系模型理论,但是市场上迟迟不见关系型数据库管理软件的推出。主要原因是很多反对者认为关系型数据库速度太慢,比不上当时的层次式数据库。值得好笑的是 IBM 虽然 1973 年就启动了 System R 的项目来研究关系型数据库的实际可行性,也没有及时推出这样的产品,因为当时 IBM 的的 IMS(著名的层次型数据库)市场销路不错,如果推出关系型数据库,牵涉到 IBM 很多人的自身发展利益。再者,IBM 庞大复杂的官僚机构在决策上远不那么灵活。
1977 年 6 月,32 岁的拉里·埃里森(Larry Ellison) 与 Bob Miner 和 Ed Oates 在硅谷共同创办了一家名为软件开发实验室(SDL)的计算机公司,也就是 ORACLE 公司的前身。
那个时候 Larry Ellison 还是个硅谷普通的软件工程师,他过去的经历也没什么辉煌之处,读了三家大学都没能毕业,是个辍学生。
公司创立之初,Miner 担任总裁,Oates 为副总裁,而 Ellison,因为一个合同的缘故,还在另一家公司上班。没多久,第一位员工 Bruce Scott 加盟进来。用过 Oracle 数据库软件的人都知道有个 Scott 用户的吧?没错,就是这个 Scott,至于 Scott 用户的密码 Tiger,那是 Scott 女儿养的猫的名字。Scott 的工号是 4。
在 Miner 和 Oates 有些厌倦了那种合同式的开发工作后,他们决定开发通用型软件产品,不过还不知道自己能开发出来什么。Oates 最先看到了埃德加·考特的那篇著名的论文以及其他几篇相关的文章,并推荐 Ellison 和 Miner 也阅读一下。Ellison 和 Miner 预见到数据库软件的巨大潜力,于是,SDL 开始策划构建可商用的关系型数据库管理系统( RDBMS )。
IBM 这家公司在今天有些失去了存在感,但在当时,是神一般的存在。跟着 IBM 走,总没错。
图 1 左起 Ed Oates、Bruce Scott、Bob Miner、Larry Ellison
很快他们就弄出来一个不太像样的产品。与其说是个产品,不如说更像一个 Demo。根据 Ellison 和 Miner 他们在前一家公司从事的一个由中央情报局投资的项目代码,他们把这个产品命名为 Oracle。因为他们相信,Oracle 是一切智慧的源泉(字典解释有「神谕」「 预言」之意)。1979 年,SDL 更名为关系软件有限公司(RSI,Relational Software Inc.),毕竟「软件开发实验室」不太像一个大公司的名字。
到了 1983 年,为了突出公司的核心产品,RSI 再次更名为 ORACLE,全称为 Oracle Systems Corporation。
图 2 美国 Oracle 公司总部一瞥
关于第一版和第二版的开发过程,现在能知道的是 Bob Miner 负责写数据库引擎,而 Scott 负责开发 SQL 的部分。Oracle V1 是在 PDP-11 上开发,用的 PDP 汇编语言,机器有着「高达 128KB」 内存。Oracle V2 也是在类似的开发环境下写出来的,编译后的文件有…100K 之巨。
要知道,那是个内存稀缺的年代。
注 1:关于 Oracle 最初和 CIA 合作的项目,根据 Bruce Scott 的回忆,项目代号是「ORACL」,没有字母 「E」。
注 2:关于「甲骨文」这个译名的来源,根据甲骨文前员工刘松先生的回忆:
这个译名来自台北故宫博物院,当时看到中国的甲骨文英文译名是 Oracle,考虑到甲骨文是中国最早的文字,是用来占卜的,这和用户利用关系型数据库存储数据,并预测未来有隐喻的类似之处。不过,发展到今天,企业 IT 更趋向一种精确的占卜工具。
第二章发展与壮大
RSI 在 1979 年的夏季发布了可用于 DEC 公司 PDP-11 计算机上的商用 O racle 产品,这个数据库产品整合了比较完整的 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 语言重新写就这一版本。出于移植性的考虑,Bruce 向 Miner 推荐 C 语言,要知道,C 语言当时刚推出不久,用它来写 Oracle 软件也是具有一定的风险的,尽管 Miner 不是很赞同,但除此之外,别无选择。很快就证明了这样做是明智之举:C 编译器便宜而又高效,移植性相当的好。用 C 重写 Oracle 的大部分工作由 Bruce 承担,而 Miner 精力主要仍放在 PDP 汇编上。从这个版本开始,Oracle 产品有了一个关键的特性:可移植性。
Oracle 第 3 版还推出了 SQL 语句和事务处理的原子性 -- SQL语句要么全部成功,要么全部失败,事务处理要么全部提交,要么全部回滚。Oracle 第 3 版还引入了非阻塞查询,使用存储在 Before Image File 中的数据来查询和回滚事务,从而避免了读锁定(Read Lock)的使用(虽然通过使用表级锁定限制了它的吞吐量)。同样是 1983 年,IBM 发布了姗姗来迟的 Database 2(DB2),但只可在 VMS 上 使用。不管怎么说,Oracle 已经占取了先机。
在第三版的开发还没有结束的时候,Scott 离开了公司。当时用 C 语言重写 Oracle 的压力很大,无休止的软件调试终于让 Scott 不堪重负,选择了一走了之,把剩下的重担交给了 Miner 一个人。在出售了自己的 4% 左右的股票之后,Scott 后来参与创建了 Gupta 公司(后更名为Centura Software)和 PointBase 公司(提供百分百纯 Java 嵌入式数据库),都是开发和数据库相关的产品。多年后有人问到他 4% 的 ORACLE 股票的时候,Scott,这个曾经给 Oracle 写出第一行代码的技术高手,也只能报以一笑了。如果能坚持下来,那至少是一笔几亿美金的财富。不过当时的 Scott 没有那么多的想法,他只是太累了。
相比竞争对手而言,ORACLE 最先将其软件移植到 DEC VAX计算机上的VMS 操作系统上。回过头来看,在 Oracle V2 发布之后,VAX 已经抢占了本属于 PDP 的大部分市场,要赢得先机,就必须尽快的让 Oracle 支持 VAX 。
最初 Oracle 跑在 VAX 的模拟模式下,效果不佳,所以移植 Oracle 到 VAX 平台是必须要面对的事情。早在 1979 年公司就已经雇了一位 DEC 公司的技术高手 Robert Brandt 进行 VAX 上 Oracle 的开发。开始的时候资金有限,只能到加州大学伯克利分校去蹭机器进行开发,后来好一些,但机器也是借来的。尽管困难重重,Brandt 还是比较成功的完成了移植工作。随着 VAX 小型机的大量销售乃至供不应求,Oracle 软件也成为 VAX 上最受欢迎的程序。
这一点可能要归功于 Larry 对市场的先知先觉。如果说,是 IBM 引领着 ORACLE 公司走上数据库的大船,那么 DEC 公司的 VAX 则是带着他们扬帆出海了。短短的几年之后,Oracle 数据库被移植到各种主要平台上。ORACLE 公司的产品也一直因为有可移植性这个关键特性而被那些潜在的客户关注。
很长一段时间里,公司研发由 Miner 独力承担。Miner 这个人视金钱如无物,为人低调,和 Ellison 的锋芒必露形成鲜明的对比。在公司里,大家一致认为他是老好人,他也深受员工爱戴。「Ellison 是公司的大脑,Miner 则当之无愧的成为公司的心脏」。他是个沉默的英雄,正如 Steve Jobs 背后的 Steve Wozniak 一样。
公司的另一位创建人 Oates,这个时候因为婚姻趋于破裂而情绪沮丧,已经不能把精力全部放到公司上,不得不离开公司。几年后,他又重返公司,重新为 ORACLE 做出巨大的贡献,他许下诺言,在公司员工超过 1 万人的时候会再度离开。1999 年,他完成了心愿。现在他正在纵情于音乐(组建了一个乐队),自得其乐。
1984 年 4 月,ORACLE 拿到了 Sequoia Capital (红杉资本) 的投资。同年 10月,发布了第 4 版产品。从第四版开始,产品的稳定性总算得到了得到了一定的增强,用 Miner 的话说,达到了「工业强度」。但是还不够令人满意,用户对产品的抱怨似乎永无休止。这一版增加了读一致性(Read Consistency),这是数据库的一个关键特性,可以确保用户在查询期间看到一致的数据。也就是说,当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改。可以看到,在 Oracle 第四版之前,产品始终是不稳定的,但是 ORACLE 公司的销售人员,尤其是埃里森,他在宣传 Oracle 的时候总是不乏夸大其词,但他就是有能力把软件卖出去,而且,还卖得很好,不得不承认,这的确有些神奇。
根据 Scott 的回忆,拉里·埃里森曾亲口对他严肃的说:如果我们不对客户撒谎,我们就永远也不能成功。
让我们看看 1984 年软件市场的情形,数据库市场上的霸主是 Ashton-Tate 公司,他们的拳头产品是刚推出不久的 dBase III。确切的说 dBase 是 PC 上的数据库软件霸主,刚刚成为全球第三大的独立软件公司。第一和第二分别是微软和 Lotus,而 ORACLE 在当时还排不上号。这一年,也是苹果公司 Macintosh 诞生的年度,Steven Jobs 用这个拳头产品挑战老大哥IBM,苹果的那个广告成为业界的永恒经典。同样在这一年中,ORACLE 公司的开发人员刚刚把产品移植到 PC上。
这是最好的年代,也是最坏的年代。
数以千计的小公司在软件领域里争斗不休,新公司如雨后春笋般成立,ORACLE 如何才能于不败之地?
在 1985 年,Oracle 发布了 5.0 版。有用户说,这个版本算得上是 Oracle 数据库的稳定版本。这也是首批可以在 Client/Server 模式下运行的的 RDBMS 产品,在技术趋势上,Oracle 数据库始终没有落后。这意味着运行在桌面 PC 机(客户机)上的商务应用程序能够通过网络访问数据库服务器。1986 年发布的 5.1 版还支持分布式查询(distributed query),允许通过一次性查询访问存储在多个位置的数据。
那是在 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 提交给数据库标准委员会,学院派的他认为这麽做实际上是扼杀了创新精神。鹬蚌相争,渔翁得利。ORACLE 看到并抓住了这个绝佳的机会,大肆宣布 Oracle 全面与 SQL 兼容,加上 Oracle 当时对 Ingres PC 上的版本的攻击(弱化对手优势,化解自己弱势是他们最拿手的本领),再加上 ORACLE 公司销售上的强势,Ingres 不断丢城失地,等到后来推出支持 SQL 的数据库的时候为时已晚。
虽然 Ingres 在商业市场上失败了,但是 Ingres 技术并没失败。基于 Ingres 技术的 PostgreSQL 在开源软件领域取得了惊人的成功。
紧跟 IBM 让 ORACLE 得以成长、壮大,拥抱标准,拥抱开放,拥抱变化,让 ORACLE 立于不败之地。
1986 年 3 月 12 日,ORACLE 公司以每股 15 美元公开上市,当日以 20.75 美元收盘,公司市值 2.7 亿美元。仅仅相隔一天,3 月 13 日,微软以每股 21 美元的发行价上市,以 28 美元收市,公司市值达到 7 亿美元。远远超过了 ORACLE。微软和盖茨成功的光环遮盖住了 ORACLE 和 Ellison 的光芒,既生瑜,何生亮,可能这也是 Ellison 敌视微软的开始。
系列文章,未完待续……
人物命运:
埃德加·考特,因在关系型数据库方面的贡献获得了 1981 年的图灵奖。2003 年去世,终年 79 岁。
迈克尔·斯通布雷克(Michael Stonebraker),因为在数据库领域的研究贡献获得了 2014 年度的图灵奖。
Bruce Scott,身家依然不菲,超过 5000 万美元。
Robert Brandt,我以前的文章把这个名字写错了,写成了 Robot Brandt,那些抄我的人也都在以讹传讹。不了解他的现状。
拉里·埃里森,这个星球上最有钱的大佬之一,2020 年财富超过 800 亿美元。
Bob Miner,1993 年死于肺癌,终年 52 岁。