埃德加·弗兰克·科德(英文: Edgar Frank "Ted" Codd) (1923年8月23日-2003年4月18日) 是一位英国计算机科学家。他为关系型数据库理论做出了奠基性的贡献。他在IBM工作期间,首创了关系模型理论。他一生中为计算机科学做出了很多有价值的贡献,而关系模型,作为一个在数据库管理方面非常具有影响力的基础理论,仍然被认为是他最引人瞩目的成就。
8月23日,埃德加·弗兰克·科德生于英格兰多塞特郡的波特兰。在牛津的埃克塞特学院研习数学与化学后, 他作为一名英国皇家空军的飞行员参加了第二次世界大战。1948年,他来到纽约,加入了IBM公司,成为一名数学程序员。1953年,出于对参议员约瑟夫·麦卡锡的不满, 他迁往加拿大渥太华居住了十年。之后他回到密歇根大学并取得了计算机科学博士学位。两年后,科德去往IBM公司位于圣何塞的阿尔马登研究中心工作。
1981年, 科德因在关系型数据库方面的贡献获得了图灵奖。2003年4月18日, 科德因心脏病在佛罗里达威廉姆斯岛的家中去世, 享年79岁。
埃德加·科德——“关系数据库之父”编辑本段回目录
在数据库技术发展的历史中,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),全面总结了他几十年的理论探索和实践经验。
科德是美国工程院院士。
向科德颁发图灵奖的仪式是1981年11月9日在洛杉矶召开的ACM年会上举行的,由ACM主席邓宁(P.Denning)亲自授奖并致词。科德发表了题为“关系数据库:提高生产率的实际基础”(Relational Database:A practical Foundation for Productivity)的演说,刊于1982年2月的Communications of ACM,109—117页,或见《前20年的ACM图灵奖演说集》(ACM Turing Award Lectures The First 20 Years:1966—1985,ACM P.),391—410页。演说中,科德说明了他当初提出关系模型的动机,强调了数据操纵语言既要有交互能力,又要能嵌入主语言程序的重要性,这是信息系统特殊的应用方式所决定的。
发明关系数据库编辑本段回目录
1976 年IBM E.F.Codd发表了一篇里程碑的论文“R系统:数据库关系理论”,介绍了关系数据库理论和查询语言SQL。Oracle的创始人Ellison非常仔细地阅读了这篇文章,被其内容震惊,这是第一次有人用全面一致的方案管理数据信息。作者E.F.Codd十年前就发表了关系数据库理论,并在IBM 研究机构开发原型,这个项目就是R系统,存取数据表的语言就是SQL。
Ellison看完后,敏锐意识到在这个研究基础上可以开发商用软件系统。而当时大多数人认为关系数据库不会有商业价值。Ellison认为这是他们的机会:他们决定开发通用商用数据库系统Oracle,这个名字来源于他们曾给中央情报局做过的项目名。几个月后,他们就开发了Oracle 1.0 。但这只不过是个玩具,除了完成简单关系查询不能做任何事情,他们花相当长的时间才使Oracle变得可用,维持公司运转主要靠承接一些数据库管理项目和做顾问咨询工作。而IBM却没有计划开发,为什么蓝色巨人放弃了这个价值上百亿的产品,原因有很多:IBM的研究人员大多是学术出身,他们最感兴趣的是理论,而非推向市场的产品,从学术上看,研究成果应公开,发表论文和演讲能使他们成名,为什么不呢?
还有一个很主要的原因就是IBM 当时有一个销售得还不错的层次数据库产品IMS。直到1985年I B M 才发布了关系数据库D B 2 ,Ellision那时已经成了千万富翁。Ellison曾将IBM 选择Microsoft 的MS-DOS作为IBM-PC机的操作系统比为:“世界企业经营历史上最严重的错误,价值超过了上千亿美元。”IBM 发表R系统论文,而且没有很快推出关系数据库产品的错误可能仅仅次之。Oracle 的市值在1996年就达到了280亿美元。
目前SQL标准有3个版本。基本SQL定义是ANSIX3135-89,“DatabaseLan guage —— SQL with Integrity Enhancement”[ANS89],一般叫做SQL-89。SQL-89 定义了模式定义、数据操作和事务处理。S Q L - 8 9 和随后的ANSIX3168-1989,“Database Language——Embedded SQL”构成了第一代SQL标准。ANSIX3135-1992[ANS92]描述了一种增强功能的SQL,现在叫做SQL-92标准。SQL-92 包括模式操作,动态创建和SQL语句动态执行、网络环境支持等增强特性。在完成SQL-92标准后,ANSI和ISO即开始合作开发SQL3标准。 SQL3的主要特点在于抽象数据类型的支持,为新一代对象关系数据库提供了标准。
科德十二定律编辑本段回目录
科德十二定律(Codd's 12 rules)是由数据库的关系模型的先驱埃德加·科德(Edgar F. Codd)提出的,使数据库管理系统关系化需满足的十三条(从0至12)准则。
全关系系统十二准则
全关系系统应该完全支持关系模型的所有特征。关系模型的奠基人埃德加·科德具体地给出了全关系系统应遵循的基本准则。
准则0
一个关系形的关系数据库系统必须能完全通过它的关系能力来管理数据库。
准则1 信息准则
关系数据库系统的所有信息都应该在逻辑一级上用表中的值这一种方法显式的表示。
准则2 保证访问准则
依靠表名、主码和列名的组合,保证能以逻辑方式访问关系数据库中的每个数据项。
准则3 空值的系统化处理
全关系的关系数据库系统支持空值的概念,并用系统化的方法处理空值。
准则4 基于关系模型的动态的联机数据字典
数据库的描述在逻辑级上和普通数据采用同样的表述方式。
准则5 统一的数据子语言
一个关系数据库系统可以具有几种语言和多种终端访问方式,但必须有一种语言,它的语句可以表示为严格语法规定的字符串,并能全面的支持各种规则。
准则6 视图更新准则
所有理论上可更新的视图也应该允许由系统更新。
准则7 高级的插入、修改和删除操作
系统应该对各种操作进行查询优化。
准则8 数据的物理独立性
无论数据库的数据在存储表示或存取方法上作任何变化,应用程序和终端活动都保持逻辑上的不变性。
准则9 数据逻辑独立性
当对基本关系进行理论上信息不受损害的任何改变时,应用程序和终端活动都保持逻辑上的不变性。
准则10 数据完整的独立性
关系数据库的完整性约束条件必须是用数据库语言定义并存储在数据字典中的。
准则11 分布独立性
关系数据库系统在引入分布数据或数据重新分布时保持逻辑不变。
准则12 无破坏准则
如果一个关系数据库系统具有一个低级语言,那么这个低级语言不能违背或绕过完整性准则。
纪念关系数据库之父 编辑本段回目录
大家都说,Edgar F. Codd(通常被称为Ted)是一个才华横溢的人。他的成就之一,是在二十世纪七十年代初开发了一个关系型数据管理模型--存储和操作大量业务数据的一个复杂、完整的理论。根据Codd的设计构建的关系数据库成为了当今企业的基础;银行依赖关系数据库来跟踪资金流动;零售商使用它们来监控库存水平;人力资源部门使用它们来管理员工账户;图书馆、医院和政府机构在其中存储数百万条记录;事实上,世界上几乎所有的企业都在使用某种容量的关系数据库。自从Codd公布其理论以来的30年中,关系数据库已经成为一个年收入近130亿美元的行业。
早期生活
Ted Codd于1923年出生在英格兰多塞特郡波特兰市的一个大家庭中。他曾经就读于牛津大学,主修数学和化学专业,第二次世界大战期间曾在皇家空军服役。第二次世界大战后,Codd动身前往纽约并成为IBM的一名数学编程员。Codd所做的第一个项目是帮助构建一个称为可选顺序电子计算器(Selective Sequence Electronic Calculator,SSEC)的早期计算机,据说该计算机占据了一栋市区办公楼中的两层。
在二十世纪六十年代中期,Codd获得了密歇根大学计算机科学专业的博士学位。之后,他调到了IBM位于加利福尼亚州圣何塞市的开发实验室,在那里,他开始从事关系型数据管理模型(这是一个在很大程度上依赖于数学的模型)的开发。
改进数据库
早期的计算机太大、太昂对了,以至于不能广泛地应用于企业。在二十世纪六十年代,计算机开始变得经济有效,并逐渐被私营机构所采用,同时专门针对企业应用开发了许多标准和语言。其中有两个用于处理数据的模型:层次模型和关系网络模型。
在层次模型中,数据记录以层次方式相互关联;主要记录位于上层,后续的各个记录类型在下层分支。在网络模型中,一层中的记录集可能属于邻近的上层中的两个不同的包含层次中。对于这两种模型,编写查询语句来检索信息要求深入了解数据本身的导航结构,因而这是一个复杂的任务,一般都是由专门的编程人员来完成的。
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还一直继续研究和发表关于数据的规范化、分析和数据建模等主体的文章。
参考文献编辑本段回目录
1 http://baike.baidu.com/view/1633901.html?tp=1_00
2 http://bbs.medall.cn/viewthread.php?tid=92346
3 http://www.askmore.net/zh-tw/Edgar_F._Codd.htm
http://en.wikipedia.org/wiki/Edgar_F._Codd
http://www.ibm.com/developerworks/cn/db2/library/comments/codd/codd.html
http://zh.wikipedia.org/w/index.php?title=%E5%9F%83%E5%BE%B7%E5%8A%A0%C2%B7%E7%A7%91%E5%BE%B7&variant=zh-cn
http://justjavac.javaeye.com/blog/170060