序章 数据库行业:天生属于挑战者
今天的人们已经无法离开电子产品了。
每天清晨,我们或者被手机的闹铃叫醒,或者自然醒来后第一件事就是伸手去摸手机。数据库管理软件如同大楼中的钢筋一样,支撑着电子产品中的大部分重要软件,支撑着我们信息化的现代生活。
如同人类并不是从诞生起便住进钢筋水泥的大楼一样,数据库管理软件也缺席了计算机的“童年时光”。
一般认为,1942年完成测试的阿塔纳索夫-贝瑞计算机(Atanasoff-Berry Computer,通常简称ABC计算机)是世界上第一台电子计算机,1946年2月诞生的电子数字积分计算机(Electronic Numerical Integrator And Computer,简称ENIAC)是世界上第一台通用计算机。
早期的电子计算机更多地承担科研计算的任务,其作用更接近于一个“豪华计算器”。这是当时技术发展的局限性所造成的:从硬件上来看,早期计算机并不具备数据存储硬件,无法对生成的数据进行存储和调取;从软件上看,“文件”这种我们今天常见的数据组织形式在当时尚不完备,松散的数据尚不足以支持用户进行复杂的查询、修改、插入和删除等大规模处理工作。
随着电子计算机的核心处理能力不断演进,加之1956年开始,由IBM公司发明的硬盘逐步成为计算机的标准配置,计算机的算力和存储两大短板被一点点补齐。数据不仅可以被保存、修改,还能被反复调取使用,这时更加高效、复杂、独立的数据管理模式就成了用户所需。
20世纪60年代初期,通用电气公司的工程师查尔斯·巴赫曼(Charles Bachman)开发出了第一个网状数据库管理系统,这也是世界上第一个数据库管理系统,名字叫IDS(Integrated Data Store,集成数据存储)。网状数据库作为数据库领域的先行者,对数据库的概念、方法、技术起到了奠基作用。
时间进入20世纪60年代后期,电子计算机技术迈过了第一代电子管时代和第二代晶体管时代,正处于集成电路时代,并准备向大规模集成电路时代发起总攻。技术的发展让计算机的体形与价格呈现了“双重瘦身”:计算机不再是军事机构和研究机构的专属产品,而是进入民用领域,拥有了更多的使用场景。
1968年,IBM研发出了一种新型的数据库管理系统IMS(Information Management System,信息管理系统),这种后来被称为层次数据库的数据库管理系统,虽然普及度不如网状数据库那样高,却为IBM带来了可观的商业价值,甚至在一定程度上蒙蔽了IBM的双眼,让这个“蓝色巨人”没能在革命到来的前夜及时转身,占据市场的桥头堡。
迄今为止,数据库发展史上最伟大的革命发生在1970年,一个颠覆认知的天才般的思想在这一年被公之于众,启发了包括甲骨文、达梦在内的所有后世数据库企业。
改变来自英格兰人埃德加·科德(Edgar Codd)。在牛津大学求学期间,他学习了数学和化学这两个基础学科。事实证明,基础自然科学对于逻辑思维的训练及影响贯穿科德终生。科德在日后提出的许多想法,与其说是雄心壮志的科学研究,倒不如说是沿着逻辑的藤蔓慢慢生长成熟的甘甜果实。1965年,科德在密歇根大学安娜堡分校取得计算机博士学位,随后加入IBM的圣何塞实验室从事研究工作。
科德仔细研究数据的排布形式,以关系代数为基础,提出了一种新的数据库模型。在此之前,网状数据库和层次数据库模型虽然满足了一部分数据管理的需求,但是它们物理层与逻辑层混淆,开发维护极其烦琐,从架构上不方便实现复杂的查询逻辑。这样的结构也就注定,基于两种早期数据库模型而编成的数据库管理系统,规模不可能做得很大。
通过引入数学中常见的“关系”概念,科德将数据库的物理层和逻辑层分离,不但实现了非常复杂的查询逻辑,能够支持数据量庞大的数据库,同时对物理层和逻辑层的开发人员进行了彻底分工:其中开发难度较高的物理层可以由少数专业人员来予以实现;逻辑层容易理解,开发难度较低,可以在短期内培养大量的开发人员——不必像过去那样让开发工程师“大筐小筐一肩挑”。工种的细化有助于实现数据库软件研发的产业化。
科德于1969年在IBM内部发表了论文。1970年,科德的论文在《美国计算机学会通讯》(Communications of the ACM)6月刊上公开发表。这篇题为《大型共享数据库的数据关系模型》(“A Relational Model of Data for Large Shared Data Banks”)的论文此后被视为关系数据库的起源。1974年,科德同实验室的两名同事在进行关系数据库研究的过程中提出了一套体现数据应用原则的规范语言SEQUEL(Structured English Query Language),这一语言在1980年定名为SQL(结构查询语言),经过多次修订,至今仍然是关系数据库的“圣经”。2003年,当达梦面临技术分蘖时,旧版本的达梦数据库软件不完全符合SQL标准是其毅然决定抛弃旧架构、研发新版本数据库的重要原因之一。
从研究成果来看,来自IBM圣何塞实验室的科学家们像是在进行一场焰火表演,他们不断地在夜空中爆闪出绚丽光彩。可事实上,IBM的管理层依然沉迷于层次数据库IMS所带来的回报。他们对于关系数据库的研究是实验性的,仿佛科德的全新模型并不是IBM的“亲儿子”,而是一只变异了的小白鼠。他们把小白鼠放在玻璃柜里,取了个名字叫“系统R”(System R),让一群科学家围着它,喂它一点这个、喂它一点那个,看看这只小白鼠最终会变成什么样。
没有哪一种类型的数据库可以一劳永逸地解决人类所有的数据管理问题,如果不能在技术上推陈出新、不断发布契合当下时代的新产品,即使是家底深厚的IBM也难免受到挑战。接连发生的几件事印证了这个趋势。
1973年,加州大学伯克利分校的研究人员利用IBM公开发布的“系统R”相关信息,开始开发关系数据库系统Ingres。
1974年,在美国计算机学会(ACM)举办的研讨会上,组织方专门请到了开发出第一个网状数据库的“老前辈”查尔斯·巴赫曼和锋芒毕露的埃德加·科德同堂辩论。巴赫曼在一年前刚刚凭借对数据库的贡献,成为历史上第八位ACM图灵奖的获得者。辩论中,巴赫曼代表着工程实用主义和已经成熟的技术,科德则代表根植于科学深处的严谨与高雅。遗憾的是,由于当时尚未诞生一个可投入实际使用的关系数据库,这场不在一个维度的辩论注定无法形成定论。
1976年,霍尼韦尔(Honeywell)公司终于开发出了第一个商用关系数据库系统——MRDS(Multics Relational Data Store),但这个数据库在当时还不符合后来被奉为圭臬的SQL标准。
1977年,一家还不为人知的小公司——软件开发实验室(Software Development Laboratories,简称SDL)注册成立,三名创始人分别是拉里·埃里森(Larry Ellison)、鲍勃·迈纳(Bob Miner)和埃德·奥茨(Ed Oates)。公司注册资本2000美元,埃里森出资1200美元占有60%的股份,迈纳和奥茨各出资400美元,分别占有20%的股份。这家不起眼的公司开始闯入关系数据库领域。
拉里·埃里森是硅谷历史上最具争议性的传奇人物之一。1944年8月,他出生于纽约,母亲是一名犹太裔未婚妈妈。出生后不久,九个月大的埃里森被交给他的姨妈抚养。养父母家恪守犹太教教规,可埃里森自童年起便展现出特立独行的特质。13岁时,埃里森拒绝参加犹太教的成年礼,后来也一直是一个宗教怀疑论者。
1962年起,埃里森求学于伊利诺伊大学香槟分校、芝加哥大学和西北大学三所高校,但均未能取得学位。1965年,埃里森在芝加哥大学第一次见到了计算机,并学会了给IBM生产的晶体管计算机编写程序。凭借这点手艺,埃里森得以在硅谷谋生。埃里森的张扬个性在生活方式上展露无遗,尽管收入并不算高,但他常常不惜花费巨资购买昂贵的奢侈品。在同事及好友埃德·奥茨的推荐下,埃里森读到了科德于1970年发表的那篇著名论文,如获至宝。不久,埃里森便发起成立了SDL公司,专门进行关系数据库的研发。
埃里森处在一个极好的时代。所谓的“好”,不仅仅源于IBM对于新兴关系数据库技术的兴致索然,从而为其他数据库厂商提供了市场空隙;更在于,软件作为一种独立的产品正从硬件中脱离出来。在此之前的计算机市场上,硬件是一切的指挥棒,每一家计算机企业都是一个全套的集成厂商,同时提供硬件(包括处理器、硬盘、打印机等)、软件(包括操作系统、应用软件等)和人工服务,还没有一家计算机公司把软件部分拿出来单独出售——由于各品牌的计算机互不兼容,软件零售事实上也没有可操作性。软硬件之间存在着强行捆绑关系,随着计算机产业的发展,这样落后的商业模式越来越难以符合市场的需要,而这也为专业软件公司的诞生提供了机会。在埃里森创业的两年前,即1975年,比尔·盖茨和保罗·艾伦成立了微软公司,从公司的名字中就可以看出,他们对于软件市场的未来发展充满信心。
1978年,SDL开发出了第一款关系数据库产品,项目代号为Oracle 1。“Oracle”源于埃里森之前在硅谷工作时为美国中央情报局开发的一个项目,这个单词的寓意是“智慧之源”,埃里森十分喜欢这个单词。Oracle 1并没有正式对外发布,埃里森的理由是,这是一个没有人会愿意买的版本。1979年,SDL开发出了Oracle 2,这是第一个由纯软件公司开发出的商用关系数据库管理系统。所谓的“商用”体现在,这个系统后来被销售给了美国空军。
想要做市场通用的、产品化的软件,就需要获得硬件厂商的兼容支持。埃里森等人希望自家公司的数据库软件能够兼容IBM的产品,可是IBM每年从客户处收取的服务费占到了集成打包价格的10%以上,产品化的软件一旦推行,将会使得用户的驻场服务需求不再频繁,数钱数得不亦乐乎的IBM自然没有动力去做这样的改变。可体量远不如IBM的另一家厂商数字设备公司(Digital Equipment Corporation,简称DEC)却对兼容Oracle数据库的提议很感兴趣。DEC把账算得很明白:如果同时有四五家硬件厂商都愿意兼容以SDL为代表的软件公司,那么每家实际分摊的软件开发成本只有原来的五分之一到四分之一。
埃里森的公司并没有改变终端用户的消费习惯,用户依然可以像他们所熟悉的那样,打包支付一个价格,获得硬件、软件的各种服务,可是与埃里森合作的公司却摊薄了成本。与此同时,计算机硬件领域“摩尔定律”的存在,使得关系数据库运行缓慢的缺点不再那么显眼,甚至已经不为用户所在意;相应地,关系数据库灵活便捷的优点越发闪耀,迅速帮助它从老式的数据库手中抢到了市场。埃里森和他的伙伴们能够杀出重围,既有商业模式的助力,又有科技进步的助力。
1982年,埃里森发现,Oracle数据库的市场知名度远远大于公司的知名度,他索性把公司也更名为Oracle(甲骨文)。直到一年后的1983年,最早提出关系数据库概念的IBM,才姗姗来迟地发布自己的第一款商用关系数据库管理系统DB2。
“当市场已建立好,你知道百事可乐要花多少钱才能夺得可口可乐1%的市场?非常非常昂贵!”埃里森后来的这句话证明他深知市场份额的重要性。在数据库领域的大卫与巨人歌利亚的斗争中,Oracle这个“大卫”并没有杀死巨人,而是变成了另一个让世界胆寒的巨人,牢牢地把控住了世界数据库软件的市场。
无论是年轻的科德在学术研讨会上与巴赫曼的激情辩论,还是Oracle在面对IBM时的突飞猛进,数据库这个行业天生就具有颠覆属性,也天生就属于挑战者。只要一家企业、一个产品符合了市场的期待,它所积聚的势能就会在一个临界点集中爆发。
就在Oracle创立这一年,1977年,中国也第一次正式认识了数据库。
在计算机发展的历史上,美国并不是一枝独秀,同为“超级大国”的苏联也早早地意识到计算机技术的先进性。从20世纪60年代初开始,苏联提出自动化管理系统(简称ACY系统),并迅速将其应用于工业生产中。截至1975年,苏联已经拥有2700个ACY系统。
此时,中国国家计划委员会(以下简称国家计委)希望能够仿照苏联国民经济自动化管理系统,研制我国的经济信息管理系统[1],包括硬件设备的制造和软件系统的研究,这当中便涉及了数据库系统的研发。为此,1977年,国家计委委托中国科技大学组织一次数据库相关的学者研讨会,会址定在安徽黄山。
11月的黄山已经清冷,山上风云变幻,随时可能大雪封山。从北京、南京、吉林、上海等地前来的五十余人聚集在黄山脚下。那时,“文革”刚刚结束,社会生产生活逐步回归正轨,黄山也不如今天这样游人如织,五十余名学者没有预先打招呼突然到访,山下的宾馆也能顺利地安排下来。
当时的关系数据库理论还静静地躺在IBM的研究所里等待世人发掘,世界还是网状数据库和层次数据库的天下。中国的数据库理论和技术的发展,是从学习和消化美国数据系统语言会议(Conference on Data Systems Languages,简称CODASYL)的报告开始的。
1969年,CODASYL下属的数据库任务组(Data Base Task Group,简称DBTG)发布了一篇有关网状数据库语言规范的报告,并不断对其进行修改和完善。该报告的1973年版本由中国科学院计算所翻译为中文,并刊载在《计算机工程与应用》上。在黄山会议上,中国科学院计算所提出的数据库管理系统(DBMS)的设计方案就是基于DBTG的报告而形成的。
黄山会议一共录用了七篇论文。值得注意的是,来自中国人民大学的萨师煊与吉林大学的管纪文做了关于关系数据库模型的报告。这种天生更为先进的数据库模型在黄山脚下播下了种子,等待着在这片土地上生根发芽。
从11月9日至23日,整个会议持续了近半个月。会议期间气氛热烈,参会的学者们常常因为一个问题的深入讨论,而忘了吃饭的时间。日后在中国数据库行业星辉闪耀的萨师煊、罗晓沛、张作民、周龙骧等诸多学者参加了会议,同样是中国数据库研究领域泰斗的施伯乐未能亲赴黄山,他的夫人乐淑珍有幸参会,对与会学者留下了深刻的印象。[2]
1977年的黄山会议对于数据库在中国的宣传和推广起到了开创性的作用,尽管当时“全国数据库学术会议”还没有确立,后来的数据库学者们还是将黄山会议定为“第一届全国数据库学术会议”。
至此,数据库作为支撑信息技术时代的“数字钢筋”正式进入中国。
黄山会议召开时,达梦数据库的创始人冯裕才还没有机会接触数据库。几年后,当立志将未来的人生投入数据库这一领域时,冯裕才与中国数据库的其他先行者面对的是同一个问题:一个前所未有的、经济高速发展的时代即将到来,中国应该如何利用数据库,又该利用什么样的数据库?
冯裕才希望给出一个实用的答案。
[1]罗晓沛、岳丽华:《忆第一届中国数据库年会》,《中国数据库40年》,清华大学出版社,2017年10月。
[2]施伯乐:《全国数据库学术会议回顾》,《中国数据库40年》,清华大学出版社,2017年10月。