[zz]Codd关系模型理论综述

转载自:http://www.codeweblog.com/codd%E5%85%B3%E7%B3%BB%E6%A8%A1%E5%9E%8B%E7%90%86%E8%AE%BA%E7%BB%BC%E8%BF%B0/

引言:数据库系统从产生到现在经历了几次的变更,起基于的数据模型有网状模型,层次模型,关系模型,面向对象模型。其中关系模型是目前应用最广泛的。Codd对关系模型的发展做出了巨大的贡献。本文主要叙写了codd在关系模型的发展中所做的贡献。

codd原是英国人,1 9 2 3 年8 月1 9 日生于英格兰中部的港口城市波特兰。第二次世界大战爆发以后,年轻的考特应征入伍在皇家空军服役,1 9 4 2 至1 9 4 5 年期间任机长,参与了许多重大空战,为反法西斯战争立下了汗马功劳。二战结束以后,codd在牛津大学学习数学,于1 9 4 8 年取得学士学位以后到美国谋求发展。他先后在美国和加拿大工作,参加了I B M 第一台科学计算机7 0 1 以及第一台大型晶体管计算机 S T R E T C H 的逻辑设计,主持了第一个有多道程序设计能力的操作系统的开发。他自觉硬件知识缺乏,于是在6 0 年代初,到密歇根大学进修计算机与通信专业( 当时他已年近4 0 ) ,并于1 9 6 3 年获得硕士学位, 1 9 6 5 年取得博士学位。这使他的理论基础更加扎实,专业知识更加丰富。加上他在此之前十几年实践经验的积累,终于在1 9 7 0 年迸发出智慧的闪光,为数据库技术开辟了一个新时代。

在数据库技术发展的历史上,1 9 7 0 年是发生伟大转折的一年。这一年的6 月,I B M 圣约瑟研究实验室的高级研究员Edgar Frank Codd在Communications of ACM 上发表了《大型共享数据库数据的关系模型》一文。A C M 后来在1 9 8 3 年把这篇论文列为从 1 9 5 8 年以来的2 5 年中最具里程碑意义的2 5 篇论文之一,因为它首次明确而清晰地为数据库系统提出了一种崭新的模型, 即关系模型。 “关系”( r e l a t i o n ) 是数学中的一个基本概念,由集合中的任意元素所组成的若干有序偶对表示, 用以反映客观事物间的一定关系。如数之间的大小关系、人之间的亲属关系、商品流通中的购销关系等等。在自然界和社会中,关系无处不在; 在计算机科学中, 关系的概念也具有十分重要的意义。计算机的逻辑设计、编译程序设计、算法分析与程序结构、信息检索等,都应用了关系的概念。而用关系的概念来建立数据模型,用以描述、设计与操纵数据库,codd是第一人。

  E. F. Codd完善了数据组织和存取的概念,也就是具体表达了关系型数据库模型,这也是今天在企业中所使用的数据组织的主要方法。由于IBM的数据管理系统广受批评,1970年,在加利福尼亚IBM的圣约瑟研究实验室工作的年轻程序员codd,提出了根据不同数据之间的能够辨别的关系来组织数据的概念。数据将被组织在二维表(行和列)中,一个表中的特殊项目可以与另一个表中的数据产生关系。codd看到了需要减少或除去数据中的冗余,并且要允许数据通过逻辑而不是物理辨别来进行存取。codd关键的想法是通过适当数据的表对数据加以组织,也就是标准化的处理过程。 

关系数据库系统是目前应用最广泛的数据库系统。实际应用中各类关系产品的功能都是有差异的,根据其支持运算的不同,关系系统可分为(最小)关系系统、完备关系系统、全关系系统。1974年E.F.codd提出了全关系系统的十二条基本准则,只有遵循这些准则的系统才是全关系系统。以此可作为评价或购买关系产品的标准。

准则0:一个RDBMS必须能完全通过自身的关系能力来管理数据库。这意味着,一个自称为关系型的DBMS必须能在关系这个级别支持数据库的插入、修改和删除。准则0是下面十二条准则的基础。不满足准则0的DBMS都不是RDBMS。

准则1:信息准则。RDBMS的所有信息都应在逻辑一级用同一个方法----表(Table)中的值显示出来。而且,每个表的表名,表中的列名和域名等,都是用系统内的数据字典表中的值表示的。数据字典本身是一个描述元数据的关系数据库。

准则2:保证访问原则。依靠表名、主码和列名的组合,应保证能够访问关系数据库中的每个数据项值。保证访问原则规定,关系系统不能采用面向机器的寻址法,而必须采用关系系统独有的关联寻址的访问模式.

准则3:空值的系统化处理。空值是"不知道"或"无意义"的值,它不是一个具体的值(如零、空字符串等)。空值的概念很重要,在全关系DBMS中支持空值,就是要用一个系统化的方式处理空值。

准则4:基于关系模型的动态联机数据字典。数据库的描述在逻辑级上应和一般数据采用相同的表示方法,使得授权用户能使用查询一般数据所用的关系语言来查询数据库的描述信息。本准则不仅使每个用户只需学习一种数据模型,而且授权用户还可方便地扩充字典,使之变成完备、主动的关系数据字典。

准则5:统一的数据子语言准则。一个关系系统可以有几种语言和多种终端使用方法。但必须有一种语言,该语言的语句可以表示为具有严格语法规则的字符串,并能全面地支持以下定义:数据定义、视图定义、数据操作(交互式或程序式)、完整性约束、授权、事务处理功能(事务的开始、提交和退回)。关系方法是高度动态的,处于频繁的运行处理之中。因此,没有必要把说明的功能分为若干种语言来实现。关系数据库是一体化的数据子语言,它使程序员可首先交互地调试数据库语言,调试正确后再嵌入程序中,从而可大大提高程序员的生产效率。

准则6:视图更新准则。所有理论上可更新的视图也应该允许由系统相同更新。"一个视图在理论上是可更新的"指的是,存在一个与时间无关的算法,该算法可无二义性地把对此视图的更新要求转换为对基本表的更新序列。

准则7:高级的插入、修改和删除操作。把一个基本关系或导出关系作为单一的操作对象处理。这不仅适合于数据检索,而且适合于数据的插入和删除。以关系为操作对象不仅简化了用户查询,也为系统进行查询优化提供了很大的余地。该准则对于获得有效的分布式事务处理也是十分重要的,可避免从远程结点传送一条记录就要发出一次请求,实现一次请求传送一个关系,从而节省通信代价。

准则8:数据的物理独立性。无论数据库的数据在存储表示或存取方法上作何变化,应用程序和终端活动都保持逻辑上的不变性。

准则9:数据的逻辑独立性。当对基本关系进行理论上信息不受损害的任何变化时,应用程序和终端活动都保持逻辑上的不变性。

准则10:数据完整的独立性。关系数据库的完整性约束条件必须是用数据子语言定义并存储在数据字典中,而不是在应用程序中定义。除了实体完整性和参照完整性外,具体的关系数据库还可能有反映业务政策和管理规章的完整性约束条件。这些完整性条件都应该能用高级的数据子语言定义,并能存入数据字典,从而,当约束条件变化时,只需改变数据字典中定义的完整性语句,而不会逻辑上影响应用程序和终端活动。

准则11:分布独立性。对于如下两类具体问题:其一,原来的DBMS只管理非分布式数据,现在要引入了分布式数据;其二,原来的DBMS能管理分布式数据,现在要改变原来的数据分布。在这两种情况下,由于RDBMS具有特定的数据子语言,都能使应用程序和终端活动保持逻辑不变性。

准则12:无破坏准则。如果一个关系系统具有一个低级(一次一个记录)语言,该语言不能破坏或绕过完整性准则和用高级关系语言表达的约束条件。以上这十二条准则都以准则0为基础,但仅有准则0是不够的。

目前,虽然还没有一个DBMS产品是全关系型的,但随着人们对数据库技术研究的进一步深入,加上软件运行环境的改变,相信以后一定会出现越来越好的全关系型的DBMS,以满足人们各类应用场合对数据库产品的需求。

1974年,IBM的Don Chamberlin和Ray Boyce将Codd关系数据库的12条准则的数学定义以简单的关键字语法表现出来,里程碑式地提出了SQL(Structured Query Language)语言

由于关系模型既简单、又有坚实的数学基础, 所以一经提出, 立即引起学术界和产业界的广泛重视,从理论与实践两方面对数据库技术产生了强烈的冲击。在关系模型提出之后,以前的基于层次模型和网状模型的数据库产品很快走向衰败以至消亡,一大批商品化关系数据库系统很快被开发出来并迅速占领了市场。其交替速度之快、除旧布新之彻底是软件史上所罕见的。基于7 0 年代后期到8 0 年代初期这一十分引人注目的现象,1 9 8 1 年的图灵奖很自然地授予了这位“关系数据库之父”。在接受图灵奖时, 他做了题为“关系数据库:提高生产率的实际基础”的演说。

1976年IBM研究人员Codd博士发表了一篇里程碑的论文 "R系统:数据库关系理论",介绍了关系数据库理论和查询语言SQL, Ellison非常仔细地阅读了这篇文章,被其内容震惊,这是第一次有人用全面一致的方案管理数据信息。作者Codd几乎在近十年前就发表了关系数据库理论,并在IBM研究机构开发原型,这个项目就是R系统,存取数据表的语言就是SQL,文章详细描述了他十年的研究成果和如何实现的方法,Ellison 看完后,敏锐意识到在这个研究基础上可以开发商用软件系统。那时大多数人认为关系数据库不会有商业价值,因为速度太慢,不可能满足处理大规模数据或者大量用户存取数据,关系数据库理论上很漂亮而且易于使用,但不足就是太简单实现速度太慢。

1990年,他编写出版了专著《数据库管理的关系模型:第二版》, 全面总结了他几十年的理论探索和实践经验。

SQL 的祖宗是 E.F. Codd 的关系模型,但是 SQL 作为语言,一直到1992年 才形成真正的国际标准(还是草案),当时称为 SQL2,但是人们常称为 SQL92。而在那之前,所以查询语言都是由不同的数据库管理系统 自己实现的。

1993年关系数据库之父Codd年提出OLAP技术联机分析处理(OLAP)的概念,当时,Codd认为联机事务处理(OLTP)已不能满足终端用户对数据库查询分析的需要,SQL对大数据库进行的简单查询也不能满足用户分析的需求。用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求。因此Codd提出了多维数据库和多维分析的概念,即OLAP。

虽然新的模型不断提出,但我们有理由相信,codd为人类数据库的发展所做出的伟大贡献将永载史册不会被人们所忘记,他的研究为后人在这个领域的探索和发展提供了很好的路线!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值