书城工业大鹏同风起
27059800000005

第5章 “关系数据库之父”科德:直上云霄

英国人埃德加·弗兰克·科德 (Edgar Frank Codd),第二次世界大战中多次驾机参加重大空战,屡有斩获,也几次被对手击落跳伞逃生;退役后考入牛津大学,走上一条通向科学王国的大道;完成了从皇家空军飞行员、空战英雄到“关系数据库之父”的华丽转身,获得国际计算机界最高奖。

埃德加·弗兰克·科德,1923年8月19日生于英格兰中部濒临大西洋的港口城市波特兰(Portland)。第二次世界大战爆发以后,年仅17岁的科德应征入伍,在英国皇家空军服役。经过两年时间的短期速成训练,他成为了一名战斗机飞行员。1942—1945年期间,在第二次世界大战欧洲战场进入白热化的阶段,科德先后参加了多次重大空战,驾驶****“飓风”战斗机出动数百架次,击落敌机4架、击伤5架,还配合战友击落敌机3架。战争中,他先后3次被敌机击落,所幸均跳伞成功获救。战后,英国政府为表彰他为反法西斯战争胜利立下的战功,授予他“优异飞行十字勋章”。

二战结束以后,科德退出现役,考上了牛津大学数学专业。从此,他走上了一条通向科学王国的大道。

1948年,他取得学士学位后到美国谋求发展。先是在IBM公司取得了一个职位,为 IBM 初期的计算机之一“ 选择性顺序电子 计 算 器 ”(Selective Sequence Electronic Calculator,SSEC)编制程序,为他的计算机科研生涯奠定了基础。

1953年,他应聘到加拿大渥太华的一家计算设备公司工作,出任项目经理。1957年重返IBM,任多道程序设计系统(Multiprogramming Systems)的部门主管。期间,参加了IBM第一台科学计算机701,以及第一台大型晶体管计算机“伸展”(STRETCH)的逻辑设计。“伸展”完成于1961年,首次采用先行控制方式,最多可重叠执行6条连续的指令,是后来流水线方式的原型。因而,被认为是第一台流水线计算机。它还采用交换器和多道程序技术,实现了用多个存储器交叉工作等许多技术创新,在计算机发展史上有着重要的意义和影响。科德在“伸展”的研制中,主持第一个有多道程序设计能力的操作系统的开发。

由于科德在工作中发觉自己缺乏硬件方面的知识,影响了重大工程的进展。所以,在20世纪60年代初,当他已年近40岁时,还毅然决定重返大学校园。他来到了密歇根大学计算机与通信专业进修,1963年获得硕士学位,1965年取得博士学位。这使他的理论基础更加扎实,专业知识更加丰富。

“困难总是可以克服的,那些看似不可能完成的困难任务,只是需要再多些时间而已。”这是科德早年曾服役的英国皇家空军航空中队的队训,他把它作为自己的座右铭。在工作中,科德从来不认为有不可能完成的任务,只不过需要花费更多的时间去处理。这种对于一切事情了如指掌的自信,不仅仅来自于他丰富的科研工作经验,也来自于他青年时期在英国皇家空军的实战经历。正是这种来自强大的灵魂的力量,对科德的科研职业生涯起到了巨大的激励作用。

经过多年对理论和实践的不懈探索,科德终于在1970年迸发出智慧的闪光,为计算机科学的发展开辟了一个新的时代。这一年的6月,当时是IBM圣约瑟研究实验室高级研究员的科德,在《美国计算机协会通讯》(《Communications of ACM》)上发表了题为《用于大型共享数据库的关系数据模型》一文(A Relational Model of Data for Large Shared Data Banks)。1983 年,美国计算机协会(ACM)把这篇论文列为从1958年以来的1/4个世纪中,具有里程碑式意义的最重要的25篇论文之一。因为它首次明确而清晰地为数据库系统提出了一种崭新的模型,即关系模型。

“关系”(relation)是数学中的一个基本概念,由集合中的任意元素所组成的若干有序偶对表示,用以反映客观事物间的一定关系。如数之间的大小关系,人之间的亲属关系,公司成员之间的领导被领导关系,商品流通中的购销关系,等等。在自然界和人类社会中,关系无处不在。在计算机科学中,关系的概念也具有十分重要的意义。计算机的逻辑设计、编译程序设计、算法分析与程序结构、信息检索等,都应用了关系的概念。而用关系的概念来建立数据模型,用以描述、设计与操纵数据库,则是科德在1970年发表的那篇著名的论文中首先提出来的。

他在论文中提到研究关系模型的目标:提供高度的数据独立性;提供一致的简洁的数据视图,使得企业内众多的用户,不论对计算机熟悉与否,都能够在一种公共的模型下交互;简化数据库管理员潜在的令人生畏的工作;在数据库管理领域,引入适度的理论基础;合并事实检索和文件管理领域,为让业界的产品可以加入推论功能做好准备;把数据库应用开发提高到新的层次,集合(关系)可被视为操作数,而不是作为被处理的一个个元素。

在关系数据模型之前出现的网状数据模型和层次数据模型,与底层的实现联系很紧密,并且使数据建模复杂化。而关系数据库简便易用,它用表的集合来表示数据与数据间的联系。每个表有多个列,每个列有唯一的列名。程序员在使用网状数据模型和层次数据模型时,必须处理许多底层的实现细节,并且,不得不将他们要做的查询任务编码成过程化的形式。更重要的是,他们在设计应用程序时还要时时考虑效率问题,而这需要付出很大的努力。相反,在关系数据库中,几乎所有的底层工作都由数据库自动来完成,使得程序员可以只考虑逻辑层的工作。

1970 年以后,科德继续致力于完善与发展关系数据理论。1972 年,他提出了关系代数 (relational algebra) 和关系演算 (relational calculus),定义了关系的并 (union)、交 (intersection)、投影 (project)、选择 (select)、连接(join)等各种基本运算,为日后成为标准的结构化查询语言SQL(Structural Query Language) 奠定了基础。科德还创办了一个研究所——关系研究所(The Relational Institute) 和一个公司——科德 - 索查逊公司(Codd &Sociations),他本人则是美国国内和国外许多企业的数据库技术顾问。

关系模型一被提出,就在学术上受到了极大重视。但是,最初并没有实际的应用,这是因为关系型数据库在性能上还不能和当时已有的网状和层次数据库相提并论。当时,也有人认为关系模型是理想化的数据模型,用来实现数据库管理系统是不现实的;更有人视其为对当时正在进行中的网状数据库规范化工作的严重威胁。为了促进对关系数据库的理解,1974年,美国计算机协会牵头组织了一次研讨会。会上,展开了一场分别以科德和巴赫曼为首的、支持与反对关系数据库两派之间的激烈辩论。这场辩论推动了关系数据库的发展,使其最终成为现代数据库产品的主流。

信息技术的发展速度总是超出人们的想象。数据库、信息管理软件及大型存储设备等一系列周边产品,总是拥有着旺盛的生命力。甲骨文和IBM都是数据库领域中最为著名的两家公司。从20世纪70年代中期开始,这两家公司就在这一技术上展开了较量。然而,在这场极富戏剧性的市场争夺战中,一位在当时并不起眼的IBM数学专家科德却成为了双方的焦点。《时代周刊》撰文写道:“科德在70年代初的技术理论,为整个信息技术产业提供了一个全新的发展模式,幸运的甲骨文率先选择了他开创的关系型数据管理技术,从而在数据库市场中遥遥领先。”

在当时,企业软件概念逐渐成为了市场的热点。IBM也投入巨资,准备在企业级市场中搏杀一番。兼具数学和计算机技术双学科背景的科德,顺理成章地加入到了企业软件产品研发项目组,负责开发数据库产品。当时,市场中的主流数据库技术,主要有基于层次型的和网状型的两种。为了抢占市场,IBM一年内就推出了数款相关产品。虽然IBM的产品在市场中取得了一定的成功,但眼光独道的科德却坚持认为,当时的数据库技术仍无法满足复杂、多元化的发展趋势。于是,他率先大胆预测关系型数据库技术将成为未来企业软件市场的发展方向。可惜的是,已在原有数据库技术上投入巨资的IBM并没有重视他的预测,反而加大了研发原有产品的力度。其他一些技术公司也受到了IBM的影响,对这一技术采取了观望态度。

在IBM的众多技术专家中,科德一直恪守着自己的处事原则。尽管他后来获得了许多荣誉,但他始终只把自己当作一名普通的技术人员。也许正是这种淡漠的心态,让IBM忽略了他的研究成果,而给了甲骨文机会。在有远见的拉里·埃里森的带领下,甲骨文抢先采用了关系型数据库技术作为其产品的核心,并在1977年率先推出了基于关系型技术的数据库产品。几年后,甲骨文的产品在企业软件市场中大获成功,把包括如今关系数据库的应用已经十分普及IBM在内的众多公司甩在了后面。

当IBM公司发现自己与甲骨文公司在数据库技术产品研发和市场开拓的较量中处于下风的时候,便立即投入巨资开展关系数据库管理系统的研究。为科德所在的圣约瑟研究实验室配备了更多的研究人员进行专题项目研发,这就是著名的 R 系统(System R)项目。项目研究的目标是论证一个全功能关系数据库管理系统的可行性。该项目直到1979年才结束,完成了第一个实现结构化查询语言SQL的数据库管理系统。R系统项目的研究成果,极大地推动了关系数据库乃至计算机技术的发展。在此基础上推出的DBASEⅡ和SQL等产品,成为了IBM的主流产品。

由于关系模型具有坚实的数学基础、简便实用等优点,从理论与实践两个方面,对数据库技术产生了强烈的冲击,并引起了产业界的广泛重视。在关系模型提出之前已经存在的基于层次模型和网状模型的数据库产品,很快就走向了衰败以至消亡。一大批商品化的关系数据库系统,很快被开发出来并迅速占领了市场。其交替速度之快,除旧布新之彻底是软件史上所罕见的。基于70年代后期和80年代初期,这一十分引人注目的科研成果,1981年的图灵奖很自然地授予了科德这位“关系数据库之父”。R系统本身虽作为原型并未问世,但鉴于其影响,美国计算机协会把1988年的“软件系统奖”授予了它的开发小组。获奖的6个人中,包括后来成为1998年图灵奖得主的詹姆斯·格雷(J.Gray)。

图灵奖(A.M. Turing Award),是美国计算机协会于1966年设立的,专门奖励那些对计算机事业做出重要贡献的个人。它是计算机界最负盛名的奖项,有“计算机界诺贝尔奖”之称。其名称取自计算机科学的先驱、英国科学家阿兰·图灵,这个奖项设立的目的之一就是纪念这位科学家。该奖项对获奖者的要求极高,评奖程序也极其严格。它要求获奖者的贡献,必须是在计算机领域具有持久而重大的技术先进性。大多数获奖者是计算机科学家,一般每年只奖励一名计算机科学家,只有极少数年度有两名以上在同一方向上做出贡献的科学家同时获奖。

当身材不高、面部轮廓清晰、蓄着小胡子、个性淡漠的科德,身穿剪裁得体的西装上台领奖的时候,所有人都认为他是一位有修养的英国绅士,谁也不会把他与战斗机飞行员、击落敌机、被击落跳伞、获得军功勋章等联系起来。然而,当这些看似矛盾的元素集中于一身 , 并最终实现从皇家空军飞行员到“关系数据库之父”华丽转身的时候,一切却又显得那么自然。

“年轻时加入英国皇家空军,成为一名战斗机飞行员并参加残酷的第二次世界大战,不论是对当时的我还是现在的我都十分重要。除了让我实现了飞行梦想,也锻炼了我的意志力。”“我相信每一个人的第一份职业,对于塑造他之后的整个人生都有重要影响。战斗机飞行培养了我很多能力,例如从不同的角度、用不同的原理看待事物,或者用本能来判断问题。”科德在获得图灵奖后,这样评价他短暂而辉煌的战斗机飞行员经历对他一生所产生的极其重要的影响。

在获得图灵奖以后的数年间,科德始终在IBM的研究中心,从事信息技术的研究工作,在信息学、情报学、数字技术上都取得了出色的成绩。2003年4月18日,他因心脏病突发在家中去世。第二天出版的《今日美国》这样评价他:“科德,一位数学家、计算机科学家,为我们开创了关系型数据库的全新技术,为计算机信息化的发展铺平了道路,开创了一个伟大的产业。”

◎ 相关链接

****“飓风”战斗机简介

20世纪20年代英国皇家空军一份报告提出:时速超过300千米的战机很难编队飞行,也不能作剧烈的机动动作,因为过载会大得令飞行员无法忍受。再加上“单翼机不安全”的著名研究报告,令英国皇家空军的首脑人物一直对单翼战斗机持怀疑态度。然而,****(Hawker)飞机公司的肯姆(Camm)爵士,富有远见地坚持设计单翼“飓风”战斗机,并争得军方的采纳。在设计过程中,肯姆爵士把“飓风”战斗机原计划采用的“苍鹰”(Goshawk)发动机和固定式起落架改为马力更大的“灰背隼”(Merlin)PV12 发动机和收放式起落架,并将作为主要武器的4挺机枪增加至8挺。此外,“飓风”还采用了许多当时十分先进的技术,如流线型的机身,前半部覆以全金属蒙皮;密封式座舱盖向后滑动打开,方便飞行员跳伞时的紧急脱离。

“飓风”型战斗机原型机,于1935 年11 月首次飞行。1936 年 6 月,英国空军订购了 600 架,后来又不断追加订单。1937 年末,“飓风”Mk Ⅰ型战斗机正式开始服役。当时装配的是有固定叶片的双叶螺旋桨。不久,这种螺旋桨又被三叶螺旋桨所取代。二战之初,“飓风”Mk Ⅰ型战斗机在皇家空军第19中队服役,到1940年8月又有一部分到了第29中队。该机型总共生产了3650架。

1939年,“飓风”系列又生产出MkⅡ型战斗机。该型战斗机装配了升级的发动机、更强的武器装备,金属蒙皮的机翼、三叶螺旋桨和更坚固的装甲保护。从1940年9月开始,MkⅡ型大约生产了7500多架不同型号的战机。其中,包括有8挺0.303英寸口径机关枪的MkⅡA型,有12挺0.303英寸口径机关枪的MkⅡB型,有4门20毫米口径机关炮,载荷454千克(1000磅)的MkⅡC型;还有少量的MkⅡD型反坦克战斗机。由此,MkⅡ型战机标志着“飓风”战斗机系列向战斗轰炸机的转型。

第二次世界大战爆发后,“飓风”作为英军最先进的战斗机之一,被派驻欧洲大陆,并成为前线空中打击部队的主力战斗机。

机长:9.81米

机高:3.98米

翼展:12.13米

空重:2790千克

最大起飞重量:3833千克

最大速度:521千米/时

爬升性能:6分18秒爬升5670米

实用升限:9935米

航程:1465千米

动力装置: 1 台1620 马力罗尔斯·罗伊斯“灰背隼”24 型或27 型12缸Ⅴ型发动机