12、Edgar Codd
Relational rules
关系型统治一切
1992年前的成就
现代企业级应用软件,无论是ERP、CRM、HCM等通用管理软件,还是银行、航空公司、零售业的核心业务系统,都是对数据库的操作,“关系型数据库”则是最基本、最主流的技术,其理论奠基者是IBM研究院的科学家Edgar Codd。
Edgar Codd 1923年8月19日出生于英格兰南海岸的波特兰岛一个普通家庭,是家里七个孩子中最小的一个。1941年,他获得了牛津大学埃克塞特学院的全额奖学金。1942年,自愿加入英国空军服役;战后回到牛津继续学习数学,并于1948年获得学位。
在英国空军服役期间,Codd被派往美国进行航空训练,休闲飞行成为他一生爱好;他很喜欢美国富有创造力的环境,于是在毕业后跑到纽约去做“美漂”,先在纽约的梅西百货做服装售货员,后又在田纳西大学找到了一份数学课讲师的工作。
1949年,Codd加入了IBM纽约办公室,为IBM的第一台电子计算机开发程序,其后,他参与了IBM 701计算机(IBM的第一台商用计算机)的设计和开发。1953年,因为抗议麦卡锡参议员的政治迫害而离开美国和IBM,Codd搬到加拿大渥太华加入了一家计算机公司。1957年,他与IBM的老上司偶然相遇,受邀回到美国重新加入IBM,在纽约附近的IBM波基普西办公室从事大型机的研发。1961,他获得了一份IBM奖学金去密歇根大学安娜堡分校攻读博士,在他的博士论文中提出了冯·诺依曼方案的优化。在此期间,Codd和IBM同事提出了商用的关系型数据库(RDBMS)原型,1962年5月IBM圣何塞研究室实验室的RM3420号技术备忘录里,第一次使用了RDBMS这个名词。
博士毕业后,Codd于1968年调到位于加利福尼亚州圣何塞的IBM研究实验室(即今天的IBM Almaden研究中心)。据他介绍,他深感当时的数据库技术没有坚实的理论基础,逻辑混乱,使用困难,为此发明了“数据的关系模型”。1969年这篇论文在IBM内部发布,1970年6月在美国计算机协会学报《ACM通讯》上公开发表。
关系模型为数据管理提供了一个标准的、简便易行的、科学的理论框架,用信息技术来抽象客观世界的对象和关系,并形成数据模型,因而,关系型数据库可以说是有史以来最伟大的软件发明。
在Codd等人正式提出关系型数据库之前,IBM的主流数据库技术——也是当时几乎唯一的数据库技术——是IMS ,一种“层级数据库(hierarchical database )”,在60年代后期由IBM和罗克韦尔(NASA的系统主承包商)、卡特彼勒联合研发,运行在IBM大型机上,用来管理阿波罗登月计划的火箭制造的物料清单(BOM)中上万个部件,直到今天,最新版本的IMS还在IBM大型机上使用。据媒体称,即使IMS成为一家独立的公司,也将是财富500强排名前列的公司。
IMS在执行特定任务时性能更好,不过需要复杂的编程;关系型数据库则支持更灵活的数据查询要求,更适用于通用软件及复杂的业务环境。
https://www.ibm.com/ibm/history/ibm100/us/en/icons/ibmims/
IBM为了保护在IMS上的投资,开始并不太热衷于支持Codd的新发现;直到1973年,IBM圣何塞研究实验室才启动一个名为“ R系统”(System R,R代表关系型)的项目,致力于研究关系型数据管理的产业化实施。Codd和其他同事随后产生了一系列重要发明:Don Chamberlin 和Ray Boyce 发明了SQL(结构化查询语言),无需了解数据库细节而通过接近于自然语言的语句查询数据,成为今天使用最广的数据库查询语言;Patricia Selinger发明了基于成本的数据查询算法,Raymond Lorie则发明了数据查询的程序编译器。包括Codd在内的这个团队科学家们后来大多成为IBM院士,美国计算机学会ACM院士以及获得ACM图灵奖(相当于计算机界的诺贝尔奖)。
向IBM的科学家们致敬:
直到这个项目开展10年后,即1983年,IBM才正式推出商业化的关系型数据库产品DB2,然而在这十年期间,Codd及其协作者Christopher J. Date,以及System R的科学家们的发明催生了后来的主流数据库软件公司,随后抢得先机,成为IBM的竞争对手。
Codd在70年代提出了数据库管理的一系列学术理论,包括科德十二定律(Codd’s 12 rules),数据库规范化(数据库范式,第一范式,第二范式等,其中BCNF就是以他名字命名的)等。
Codd发表在《ACM通讯》上的关系型数据理论的学术文章启发了两位工程师,从公司名字上就能看出来——Larry Ellison及其伙伴在1979年创建Relational Software Inc.(简称RSI,1983年更名为Oracle Corporation)和Michael Stonebraker 及其伙伴创立的Relational Technology Inc.(简称叫RTI,后来更名为Ingres Corporation,再后来被ASK、CA等多次收购,逐步消亡)。如果说Codd是数据库的理论之父,那Larry Ellison和Michael Stonebraker则应该是数据库商业应用之父。
Oracle创始人
这里顺便多说几句Michael Stonebraker和他创建的Ingres,Ingres最初是加州大学伯克利分校(UCB)的计算机教授Michael Stonebraker和Eugene Wong在阅读了Codd等IBM科学家发表的论文后,受启发在UCB里开展的一项关系型数据库学术项目,可以说是除了IBM DB2和Oracle之外其他所有关系型数据库的源头。
当时Codd的“R系统”项目是用在IBM大型机上的高端版数据库,而Ingres则定位在跑在DEC、HP的Unix小型机上的“低端版”。Ingres系数据库软件在后来的发展,非常符合“颠覆式创新”的定义。(参见《缅怀克里斯滕森大师浅谈颠覆式创新理论的争议》)
Ingres实际上是由Stonebraker教授发起,他带的学本科生和研究生们轮流参加开发的成果,因而Ingres源代码被纳入了伯克利开源协议(BSD)免费分发,后续孵化出众多商业数据库软件,例如Ingres项目的学生Robert Epstein在80年代先后创立了两家数据库公司,一家后来被Teradata收购,另一家则是Sybase(直到2010年被SAP收购)。而微软的数据库软件SQL Server则是1990年代初由微软和Sybase联合研发,其原始代码也来自Ingres。
下图展示了SQL数据库软件的历史沿革:
HTTP://MIRA.SAI.MSU.SU/~MEGERA/PGSQL/
作为一位数学家,Codd主要在数据管理的学术领域里发起探索,在实践应用上,特别关注制造业的数据管理,他认为自己提出的制造业BOM管理方法是他最重要的学术成就之一,所以Codd也可以说是ERP领域的先驱之一。下图是八十年代中期一个ERP软件的广告,那时的系统环境里连接了IBM大型机、VAX小型机、文字处理机(例如当时红极一时的王安)、查询设备等等硬件,数据管理系统则是应用系统的基础:
在很长一段时间里,抱怨IBM内部官僚主义,成为职场人士有独立思想的标志,这也算是IBM强大的象征之一,在1992年《计算机世界》这期专刊对Codd的采访中,Codd仍然公开批评IBM官僚主义。八十年代初期,Codd认为当时的关系型数据库软件供应商并没有遵循他的理论,而是用一些时髦的概念来掩盖陈旧的技术,因而提出了著名的数据库“科德十二定律”;Codd不满意IBM关系型数据库产品的研发进度以及IBM产品对自己理念的支持,这也有点不给IBM面子的意思。
1984年,61岁的Codd摔了一跤严重受伤,从IBM退休。随后他跟自己IBM实验室的同事Sharon(后来成为他的第二任妻子)和多年实验室合作伙伴Chris Date分别成立了一家关系型数据库理念宣传机构和一家以他们自己名字命名的咨询公司。
1986年2月的《计算机世界》上,Codd评论当时时髦的第四代语言(可以认为是今天热门的“低代码开发”的前身),认为其不符合其共享数据管理的理念。
1992年后的成就
来源:https://cazena.com
企业信息系统在90年代取得了巨大发展,关系型数据库以及其衍生出来的ERP/CRM/HCM等企业级应用达到了千亿级美元的市场,现代编程理念就是基于数据库对数据的创建、读取、删除、更新,简称CRUD,这个词是本系列文章提到的企业信息系统大师James Martin发明的。
作为科学家,Codd并没有从这么巨大的市场中,像Oracle的拉里·埃里森那样获得个人财富。不过他始终以学者的身份在厂商、开发者、技术标准组织和企业用户中倡导数据“关系模型”的理论体系进化。
1993年7月,Codd在《计算机世界》撰文,首次创造了术语OLAP(在线分析处理),作为他关系型数据库理论的延伸,并且提出了评估OLAP软件的12个原则。不过有人质疑他提出这些原则的中立性,因为他此时正为Arbor软件提供咨询,也就是后来的海波龙(参见《管理会计数字化 | 企业绩效管理软件(EPM)在中国有前途吗?》)
Codd的顾问生涯持续到1999年淡出江湖,他于2003年4月18日,八十岁时在佛罗里达州威廉姆斯岛病逝。
关系型数据库一直是企业级系统的主流,今天,随着互联网环境下的分布式计算以及计算机硬件能力的提升,数据库技术也发展到了NoSQL和NewSQL的新时代。
——未完待续——
本系列文章: