埃德加·科德
埃德加·科德 - 简介
埃德加·弗兰克·科德(EdgarF.Codd,1923-2003)是密执安大学哲学博士,IBM公司研究员,被誉为“关系数据库之父”,并因为在数据库管理系统的理论和实践方面的杰出贡献于1981年获图灵奖。1970年,科德发表题为“大型共享数据库的关系模型”的论文,文中首次提出了数据库的关系模型。由于关系模型简单明了、具有坚实的数学理论基础,所以一经推出就受到了学术界和产业界的高度重视和广泛响应,并很快成为数据库市场的主流。20世纪80年代以来,计算机厂商推出的数据库管理系统几乎都支持关系模型,数据库领域当前的研究工作大都以关系模型为基础。
作为一位英国计算机科学家。他为关系型数据库理论做出了奠基性的贡献。他在IBM工作期间,首创了关系模型理论。他一生中为计算机科学做出了很多有价值的贡献,而关系模型,作为一个在数据库管理方面非常具有影响力的基础理论,仍然被认为是他最引人瞩目的成就。
8月23日,埃德加·弗兰克·科德生于英格兰多塞特的波特兰。在牛津的埃克塞特学院研习数学与化学后,他作为一名英国皇家空军的飞行员参加了第二次世界大战。1948年,他来到纽约,加入了IBM公司,成为一名数学程序员。1953年,出于对参议员约瑟夫·麦卡锡的不满,他迁往加拿大渥太华居住了十年.之后他回到密歇根大学并取得了计算机科学博士学位。两年后,科德去往IBM公司位于圣何塞的阿尔马登研究中心工作。
1981年,科德因在关系型数据库方面的贡献获得了图灵奖。4月18日,科德因心脏病在佛罗里达威廉姆斯岛的家中去世,享年76岁。
埃德加·科德 - 改进数据库
早期的计算机太大、太昂对了,以至于不能广泛地应用于企业。在二十世纪六十年代,计算机开始变得经济有效,并逐渐被私营机构所采用,同时专门针对企业应用开发了许多标准和语言。其中有两个用于处理数据的模型:层次模型和关系网络模型。
在层次模型中,数据记录以层次方式相互关联;主要记录位于上层,后续的各个记录类型在下层分支。在网络模型中,一层中的记录集可能属于邻近的上层中的两个不同的包含层次中。对于这两种模型,编写查询语句来检索信息要求深入了解数据本身的导航结构,因而这是一个复杂的任务,一般都是由专门的编程人员来完成的。
Codd提出了一个新的解决方案。在最终收集到1970年具有创新性的技术论文--A Relational Model of Data for Large Shared Data Banks(大型共享数据库的关系数据模型)中的一系列报告中,Codd建议将数据独立于硬件来存储,程序员使用一个非过程语言来访问数据。Codd的解决方案的关键,是将数据保存在由行和列组成的简单表中(在这种表中,相似数据的列将各个表相互联系起来),而不是将数据保存在一个层次结构中。按照Codd的想法,数据库用户或应用程序不需要知道数据结构来查询该数据。发表了该论文之后不久,Codd又发布了更为详细的指导原则,提出了其指导创建关系数据库的12项原则。
在Codd的理论公开之后,并没有立即被IBM所采纳。IBM已经对一个称为IMS的层次型数据库进行了大量投资,因而它让其他公司和企业家去考虑如何进一步发展Codd的理论。其中的领袖人物是拉里o埃利森,他在1977年与Ed Oates和Bob Miner一起研制了世界上第一个商用关系型数据库管理系统,在此过程中,创办了一个公司,后来成为Oracle公司。其余要说的就是数据库的历史了。
但是对Ted Codd来说,历史并没有停留在那儿。虽然直至二十世纪八十年代初,Codd一直就职于IBM,但他也与长期的合作者Chris Date共同创建了一家咨询服务公司,而且,直到其今年的早些时候去世,Codd还一直继续研究和发表关于数据的规范化、分析和数据建模等主体的文章。
埃德加·科德 - 科德十二定律
科德十二定律(Codd’s 12 rules)是由数据库的关系模型的先驱埃德加·科德(Edgar F. Codd)提出的,使数据库管理系统关系化需满足的十三条(从0至12)准则。
全关系系统十二准则
全关系系统应该完全支持关系模型的所有特征。关系模型的奠基人埃德加·科德具体地给出了全关系系统应遵循的基本准则。
准则0
一个关系形的关系数据库系统必须能完全通过它的关系能力来管理数据库。
准则1 信息准则
关系数据库系统的所有信息都应该在逻辑一级上用表中的值这一种方法显式的表示。
准则2 保证访问准则
依靠表名、主码和列名的组合,保证能以逻辑方式访问关系数据库中的每个数据项。
准则3 空值的系统化处理
全关系的关系数据库系统支持空值的概念,并用系统化的方法处理空值。
准则4 基于关系模型的动态的联机数据字典
数据库的描述在逻辑级上和普通数据采用同样的表述方式。
准则5 统一的数据子语言
一个关系数据库系统可以具有几种语言和多种终端访问方式,但必须有一种语言,它的语句可以表示为严格语法规定的字符串,并能全面的支持各种规则。
准则6 视图更新准则
所有理论上可更新的视图也应该允许由系统更新。
准则7 高级的插入、修改和删除操作
系统应该对各种操作进行查询优化。
准则8 数据的物理独立性
无论数据库的数据在存储表示或存取方法上作任何变化,应用程序和终端活动都保持逻辑上的不变性。
准则9 数据逻辑独立性
当对基本关系进行理论上信息不受损害的任何改变时,应用程序和终端活动都保持逻辑上的不变性。
准则10 数据完整的独立性
关系数据库的完整性约束条件必须是用数据库语言定义并存储在数据字典中的。
准则11 分布独立性
关系数据库系统在引入分布数据或数据重新分布时保持逻辑不变。
准则12 无破坏准则
如果一个关系数据库系统具有一个低级语言,那么这个低级语言不能违背或绕过完整性准则。
埃德加·科德 - 关系数据库之父
在数据库技术发展的历史中,1970年是发生伟大转折的一年。这一年的6月,IBM圣约瑟研究实验室的高级研究员埃德加·科德(Edgar Frank Codd)在Com-munications of ACM上发表了题为“用于大型共享数据库的关系数据模型”(A Relational Model of Da-ta for Lrge Shared Data Banks)一文。
ACM后来在1983年把这篇论文列为从1958年以来的四分之一个世纪中具有里程碑式意义的最重要的25篇研究论文之一,因为它首次明确而清晰地为数据库系统提出了一种崭新的模型,即关系模型。“关系”(rel~ion)是数学中的一个基本概念,由集合中的任意元素所组成的若干有序偶对(ordered pair)表示,用以反映客观事物间所存在的一定关系,如数之间的大小关系,一个组织中的成员之间的领导被领导关系,商品流通中的购销关系,产品零部件之间的装配关系,等等。在自然界和社会中,关系是无处不在的。
在计算机科学中,关系的概念也十分普遍,计算机的逻辑设计,编译程序设计,算法分析和程序结构,信息检索等,都应用了关系的概念。而用关系的概念来建立数据模型,用以描述、设计与操纵数据库,则是科德1970年的这篇论文的创举。由于关系模型简单明了,有坚实的数学基础,一经提出,立即引起学术界和产业界的广泛重视和响应,从理论与实践两个方面都对数据库技术产生了强烈的冲击。
在关系模型提出之前已经存在多年的基于层次模型(Hierarchical Model)和网状模型(Network Model)的数据库产品很快走向衰败以至消亡,一大批关系数据库系统很快被开发出来并迅速商品化,占领了市场,其交替速度之快,除旧布新之彻底是软件史上所罕见的。基于20世纪70年代中后期和80年代初期这一十分引人注目的现象,1981年的图灵奖很自然地授予了这位“关系数据库之父”。
科德原是英国人,1923年8月19日生于英格兰中部濒临大西洋的港口城市波特兰(Portland)。第二次世界大战爆发以后,年青的科德应征人伍,在皇家空军服役,1942—1945年间任机长,参与了许多惊心动魄的空战,为反法西斯战争立下了汗马功劳。
二战结束以后,科德上牛津大学学习数学,于1948年取得学士和硕士学位以后,远渡大西洋到美国谋求发展,先在IBM公司取得一个职位,为IBM初期的计算机之一SSEC(Selective Sequence Electronic Calculator)编制程序,为他的计算机生涯奠定了基础。1953年,他应聘到加拿大渥太华的Computing Device公司工作,出任加拿大开发导弹项目的经理。
1957年科德重返美国IBM,任“多道程序设计系统”(Multiprogramming Systems)的部门主任,其间参加了IBM第一台科学计算机701,第一台大型晶体管计算机STRETCH的逻辑设计。STRETCH完成于1961年。STRETCH首次采用先行控制方式,最多可重叠执行6条连续的指令,是后来流水线方式的原型,因而被认为是第一台流水线计算机。它还采用交换器和多道程序技术,用多个存储器交叉工作等许多创新技术,因而在计算机发展史上有重要意义和影响。科德在STRETCH的研制中主持了第一个有多道程序设计能力的操作系统的开发。
1959年11月,他在《ACM通讯》上发表的介绍STRETCH的多道程序操作系统的文章,是这方面的最早的学术论文之一。而尤其难能可贵的是,科德由于在工作中发觉自己缺乏硬件知识,影响了在这些重大工程中发挥更大的作用,在20世纪60年代初毅然决定重返大学校园(当时他已年近40),到密歇根大学进修计算机与通信专业,并于1963年获得硕土学位,1965年又获得博土学位。这使他的理论基础更加扎实,专业知识更加丰富,加上他在此之前十几年的实践经验的丰富积累,终于在1970年进发出智慧的闪光,为数据库技术开辟了一个新时代。由于数据库是计算机各种应用的基础,关系模型的提出不仅为数据库技术的发展奠定了基础,同时也为计算机的普及应用提供了极大的动力。
在科德提出关系模型以后,IBM投巨资开展关系数据库管理系统的研究,其System 项目的研究成果极大地推动了关系数据库技术的发展,在此基础上推出的DB2和SQL等产品成为IBM的主流产品。
System 本身虽作为原型并未问世,但鉴于其作用与影响,ACM把1988年的“软件系统奖”授予了System ,获奖的开发小组6个成员中就包括后来在1998年荣获图灵奖的格雷(J.Gray)。这一年的软件系统奖还破例同时奖励了两个软件系统,另一个得奖软件也是关系数据库管理系统,即INGRES。INGRES是加州大学伯克利分校的斯通勃莱克(M.Stonebracker)等人研制的,后来由美国关系技术公司RTI品化。
1970年以后,科德继续致力于完善和发展关系理论。1972年,他提出了关系代数(relational algebra)和关系演算(relational calculus),定义了关系的并(union)、交(intersection)、差(difference)、投影(project)、选择(selection)、连接(join)等各种基本运算,为日后成为标准的结构化查询语言SQL(Structured Query Language)奠定了基础。科德还创办了一个研究所:关系研究所(The Relational Institute)和一个公司:Codd & Associations,进行关系数据库产品的研发与销售。科德本人则是美国国内和国外许多企业的数据库技术顾问。1990年,他编写出版了专著《数据库管理的关系模型:第二版》(The Relational Model for Database Management:Version 2,Addison-Wesley),全面总结了他几十年的理论探索和实践经验。