120.孤独的圣斗士————甲骨文的拉里•埃里森(中)

在1970年,IBM的一个研究员,他的名字泰德•科德(Edgar Frank Ted Codd),他发表了一篇论文,名字叫“大型数据库的系统模型”,这篇论文介绍了关系数据库的理论。这篇论文我早就打印下来,读了好几遍了,如果你也想读的话,我已经放在我的网站上了,或者在我的公众号里看看,总共就11页,这个论文在IBM没有引起什么重视,但是,碰巧艾利森读到了这个论文,他觉得有戏。所以,我还是很服艾利森的,人家没事就去读论文,我们没事就去直播网站看人家的大胸,还给人家刷火箭,看完以后再抱怨这个社会的不公正。那些说艾利森没什么原创的,起码你应该先读懂这篇论文吧。

A relational Model of Data for Large Shared Data Banks

在关系数据库以前,如果你要使用数据库,首先要了解数据的存储方式,然后还要了解如何检索,否则根本没法用。但是,有了关系数据库,人们只要使用一种基于英语的电脑语言,这就是我们现在每个计算机系的人都会的SQL语言(Structured English Query Language),这个语言也是IBM的人发明的,并不是Oracle发明的,然后,IBM提供了所有的工具以后,就去忙其他的事情了,这个伟大的发明就束之高阁了。

IBM对关系数据库完全不上心,这也不能算是一件令人费解的事情!当时IBM有一个卖的很好的数据库叫IMS,如果这时候再推出一个与自己产品相竞争的产品,看起来也比较蠢。等到Oracle都赚了很多钱,艾里森已经是亿万富翁了以后,IBM才推出自己的关系数据库产品,叫DB2,这已经是1985的的事情了。在Oracle看到IBM的论文的时候,是1970年,也就是说IBM有15年时间,没有真正的使用自己的成果。Oracle也不是没有竞争对手,当时的加州大学伯克利分校也在研究关系数据库,名字叫Ingres。这个数据库后来也算成了气候,就是PostgreSQL的前身,当然,比起Oracle来,比起MySQL来,还是要落后一些的。这个可能有人,尤其是PostgreSQL的粉丝,就觉得不服气,觉得PostgreSQL是世界上最好的数据库,其实这就有点自欺欺人了。如果说Oracle是清华的话,MySQL是北大的话,PostgreSQL大概类似于我的母校山东省莱芜市广播电视大学的水平吧,我是读的电台播音专业,所以我的普通话才这么标准。正经的大公司是不用PostgreSQL的,我厂曾经用过,数据量小的时候还是很好的,等数据量上来以后,等着哭就是了。如果你的应用或者网站就几万人,甚至顶多10万人,那用PostgreSQL还是非常非常棒的。这个世界上绝大部分的网站,app用PostgreSQL一点问题没有。所以,我并不是黑PostgreSQL。

简单来说,关系数据库就是一个有组织有条理的数据表格,这些数据表格在理论上是无限大的。但是,当时的电脑速度不快,虽然关系数据库的理论看起来不错,还是太慢了。也正是因为这个原因,当时看过这论文的人,几乎都认为这东西没有多少前途,就是搞着玩玩。在艾里森成了亿万富翁以后,给艾利森写传记的作家威尔森说,是的,关系数据库是IBM的创意,但是,IBM没有给Oracle一分钱的投资。Oracle的成功来自艾利森忘我的工作,不屈不挠的意志和冷静的分析。对这个评价,我还是非常认可的。

现阶段来说,关系数据库还是没什么争议的王者,如果大家做一些小项目的话,关系数据库还是首选。所以还是选MySQL啊,Postgres这样的数据库,不要用NoSQL,毕竟关系数据库已经发展了40-50年了,省心很多。当然,关系数据库有个大家都知道的问题,就是数据量太大了,扩展性不太好,比如,一天有10亿的访问量。但是,如果一天有10亿的访问量了,你的银行账户里早就有10亿美金了,自然有人帮你操心数据库的问题。我们这里有好多小创业公司,用户加上自己,总共100个,然后啥技术新用啥技术,比如各种JS框架,这个世界上每天至少有100个JS框架问世,还有各种NoSQL,比如听说Google啊,uber,facebook都已经用NoSQL了,自己也用,但是,人家每天有几亿访问量,你每天有几十个访问量,还是老老实实的用MySQL,用Postgre比较省心。所以,我想讲一下关系数据库的基本原理,非常的简单。`

我是在做路由器的公司工作,所以有比较多的机会接触运营商。大家也许知道,现在中国是不允许重婚的,就是你同时和两个人结婚是不行的,只能一个一个来。在2000年左右的时候,国内没有联网,你每个省结一次婚是没问题的,现在我不知道了,反正当年肯定没问题,我当时只结了7-8次吧。现在如果有谁想试试,记得回来告诉我还行不行。正是因为这个婚姻法和人的本性相冲突,所以,抓外遇成了一个行业。我在运营商那边的时候,经常会看到一个中年妇女,找关系打印她老公的通话记录,经常打印个2-3年的,100张A4的纸。经常看到她一边打印,一边就像冲了电一样,脸慢慢的的变红了,身体开始颤抖,大口大口的喘气。这个时候,她就是在建立自己的关系数据库,她的脑子里一直在考虑一个问题,他和她到底是什么关系?他和她到底是什么关系,这就是关系数据库考虑的终极问题!这个时候,我就想跑过去和她说,别在脑子里想了,用个关系数据库来分析一下吧,但是,我怕她当时在气头上,把我打一顿。

她回到家以后,抓住她老公,问的第一个问题肯定是:你和她到底什么关系?这个世界上出轨的男男女女这么多,这个问题每年每天每时每刻都在不停的被问来问去,你和她什么关系?但是,只有艾利森真正的从这个问题中获得了巨大的利益,关系数据库的作用,就是根据打印的那些通话记录,建立起一个一个的表项,你可以通过简单的查询语言问这个数据库,他和她每天平均通话多长时间,经过简单的计算,这个数据库会告诉你,平均每天充电3分钟,通话3小时。其实,这就是关系数据库的作用。让数据之间的关系明朗化。

在1977年的时候,艾利森和2个朋友,是的,他也有朋友,这两个朋友都是不太善于言辞,技术又非常不错的人。艾利森是技术不太好,但是特别能说的人。所以,好多的创业公司都是这种组合,一个能忽悠,一个有技术,如果都是忽悠或者都是技术,这就不太好办了,比如苹果公司,HP公司,Yahoo公司,都算是这种组合。他这两个朋友的名字我就给翻译成鲍勃和爱德华吧,这两个人技术没得说,当时在一家叫Ampex的公司做存储设备的,艾利森也去了这个公司,做销售,然后他发现这个公司太蠢了,就拉了这两个技术高手,3个人成立了一个新的公司。艾利森出资1200美元,占60%的股份,这两个哥们每人出资400美元,各占20%的股份。那两个人做软件,艾利森出去卖软件,当然,当时的软件只能干一件事,就是查询输入进去的数据,非常的简陋。所有人对这个软件公司没什么信心,除了艾利森,软件公司当副业成立的时候,他的主业一直没闲着,1977年成立公司,1977年,他又一次遇到了自己的真爱,一个年轻的金发美女,这样的事情,在他的一生中还会发生很多次,这只是第二次。他在1978年就离婚了,离婚的时候,他前妻分了30%的公司股票,结果,老婆死活不肯要这些股票,非要卖给艾利森,这些股票本来是值600美金的,但是,艾利森坑了前妻一把,少给了100,就给了500美金。现在,这些股权市值大概500亿美元。

然后,就这么一个几乎什么都不能干的软件,只能查询输入进去的东西,竟然被艾利森包装了一下,卖给了美国海军和美国中央情报局,所以,我总会觉得这两个地方的人,是不是特别容易忽悠。其实Oracle的名字当时并不叫Oracle,而是一个很土的名字,叫SDL,取的是Software Development Laboratories, Inc.的首字母。后来艾利森为了推广自己的关系数据库,直接又把名字改了,叫RSI(Relational Software Inc, RSI)。当时的机器都是VAX机,或者IBM的大型机,数据库在不同的机器上,跑的是不同的数据库,因为当时还没有多少跨平台的东西。但是,艾利森就先宣布,本公司的数据库是用C语言写的,而且,3.0就要上市了。其实,这都是忽悠,但是,用户就是相信艾利森说的话,因为当时个人是没钱买电脑的,买的人都是大型公司,政府机构或者学校,显然用一个数据库要比用多个数据库来的方便。

在1982年的时候,公司才真正改名为Oracle公司,在此之前,Oracle只是公司数据库的名字,到1986年的时候,公司上市了,上市以后,艾利森成了亿万富翁,他的两个哥们也成了千万富翁。

我对早期的事情非常感兴趣,在关系数据库之前,人们是如何查询并利用数据的呢?现在的大数据时代,是不是也能从中吸取一点什么经验呢?在早期,数据是存储在磁带上的,现在很多数据也是存储在磁带上,因为用磁带成本非常的低。磁带有个问题是,非常的慢,用起来不爽,对有大量数据的地方,比如中央情报局这种地方,磁带太慢了,当时的磁盘容量又太少,Oracle公司就是在这种有需求,但是没法满足的情况下诞生的。有需求自然就能产生市场,如果看Oracle的最初几年,都是几倍几倍的增长,用了6年时间,从0长到了10亿的销售额。

Oracle成立以后,从只有3个人的公司,到上市时候的100来个人,再到仅次于微软的公司,艾利森也成了仅次于盖茨的人。在早期的时候,微软专注于个人用户,Oracle专注于企业用户,两个公司井水不犯河水,但是一旦长大了,这两个公司难免会互相看到对方。起初,Oracle没有自己的操作系统,因为艾里森看不上IBM,所以IBM的系统他从来不用,艾里森也看不上比尔盖茨,并且盖茨也看不上艾里森,自己也有SQL Server这个数据库,因此,在最初的时候,Oracle只能用DEC的VMS系统,还有SUN的Solaris系统。等到他看到盖茨非常讨厌Linux以后,按照敌人的敌人是朋友的原则,Oracle决定支持Linux,Redhat公司的Linux成了Oracle的一个选择。

在和Redhat合作了几年以后,艾利森开始打起了Linux的主意。我们都知道,Redhat是Linux届最出名的公司,属于谁也不理型的公司,就自己一个人在众多的Linux发行版中独自骄傲,但是,这次来的对手是Oracle。微软对Linux几乎没有什么威胁,但是Oracle就不同了,艾利森是第一个,也是唯一一个让Redhat公司屈服的公司。这个故事留到下一期再讲。

刘延栋 wechat
欢迎扫一下关注我的公众号:软件那些事儿
欢迎收听我的电台,你的支持将鼓励我继续前进