您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > 数据库系统原理与应用教程ch07
数据库系统原理与应用教程(第二版)第7章关系代数基本理论第1页第7章关系代数基本理论本章概述本章的学习目标主要内容数据库系统原理与应用教程(第二版)第7章关系代数基本理论第2页本章概述第一部分讨论的数据库设计内容,主要是从数据库设计人员的角度看待关系数据库的内部模式,使这种关系模式达到一个规范的形式。在从本章开始的第二部分内容中,主要是从数据库使用人员的角度处理数据库中的各种信息,使得所设计的关系模式最终发挥应有的作用。本章重点介绍关系代数的基本理论。从数据库的演变进程来看,关系型数据库获得了巨大的成功。从当前的数据库应用来看,关系型数据库产品雄执数据库市场牛耳。这些成功的一个非常重要的原因,是由于关系代数理论作为其坚实的基础。学习和掌握关系代数的基本理论,有助于增强用户对关系数据库的理解,提高用户使用关系数据库的效率。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第3页本章的学习目标了解关系代数基本理论的内容和作用;理解和掌握关系代数的各种运算形式;了解和掌握数据库修改的各种运算形式;理解和掌握关系代数的演变内容;了解关系代数表达式的优化策略。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第4页主要内容7.1概述7.2关系代数的基本运算7.3关系代数的附加运算7.4扩充的关系代数运算7.5关系演算7.6关系代数的修改运算7.7关系代数表达式的优化策略7.8本章小结数据库系统原理与应用教程(第二版)第7章关系代数基本理论第5页7.1概述关系代数是一种过程化的查询语言,它包括了一个运算集合,这些运算的输入是一个或两个关系,得到的输出结果是一个新关系。过程化查询语言的含义表明这种语言详细描述了运算过程。关系代数基本理论的内容包括关系代数的运算、关系代数的演算和关系代数的优化。这些内容构成了关系型数据库的理论架构。关系代数的运算内容主要是指各种运算符和关系如何组成简单的或复杂的表达式,这些内容也称为关系算术。关系代数的演算主要是把数理逻辑的谓词演算应用到了关系运算中,包括以元组为变量的元组关系演算和以域为变量的域关系演算。如何提高关系代数的运算效率,以至最终提高关系型数据库产品的查询效率,主要是依据关系代数的优化规则和策略。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第6页主要内容7.1概述7.2关系代数的基本运算7.3关系代数的附加运算7.4扩充的关系代数运算7.5关系演算7.6关系代数的修改运算7.7关系代数表达式的优化策略7.8本章小结数据库系统原理与应用教程(第二版)第7章关系代数基本理论第7页7.2关系代数的基本运算下面我们将详细研究关系代数的基本运算形式,这些形式包括各种:►集合运算►选择运算►投影运算►笛卡尔积运算►改名运算关系代数的基本运算是其他复杂运算形式的基础。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第8页集合运算集合运算包括三个非常普通的运算形式,即集合并、交和差运算。这些集合运算规则类似于高等代数中学过的那些集合运算规则。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第9页选择运算当把选择运算符应用到关系R时,将产生一个包含了关系R中部分元组的新关系。新关系中的元组部分满足指定的条件C,该条件与关系R的属性有关。一般地,把这种选择运算表示为σC(R)。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第10页投影运算当对某个关系R应用投影运算符时,则产生了一个只有某些列的新关系。投影运算符使用∏表示。表达式∏A1,A2,…,An(R)的结果是一个只有关系R中属性A1,A2,…,An所对应的列的关系。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第11页笛卡尔积运算两个集合R和S的笛卡尔积是这样的元素对的集合,该元素对是从集合R中的任何元素中选择一个作为第一个元素,从集合S中的任何元素中选择一个元素作为第二个元素构成的。笛卡尔积使用R×S表示。在关系代数中,这种乘积的本质也是相同的。关系中的成员是元组。通常包含了多个分量,由R的元组和S的元组构成的元组对是一个这种元组对,其中每一个分量都对应着组成元组对的一个分量,且R的分量在S的分量之前。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第12页改名运算在关系代数的运算中,为了调整由一个或多个关系代数运算构成的关系所用的属性名,可以使用改名运算符。改名运算符是ρS(A1,A2,…,An)(R),表示把关系R改名。在改名运算的结果中,新关系名是S,S中的元组和关系R中的元组是一样的,S中的属性从左至右依次命名为A1,A2,…,An。如果只是希望把关系改名为S,属性名称仍然与R中的属性一样,那么就可以使用改名运算符ρS(R)。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第13页主要内容7.1概述7.2关系代数的基本运算7.3关系代数的附加运算7.4扩充的关系代数运算7.5关系演算7.6关系代数的修改运算7.7关系代数表达式的优化策略7.8本章小结数据库系统原理与应用教程(第二版)第7章关系代数基本理论第14页7.3关系代数的附加运算前面讲述的那些基本代数运算,可以表示出任何关系代数的查询形式。但是,如果只是使用这些基本的代数运算形式,那么可能造成在许多代数表达式中写出的运算表达式过长。因此,在关系代数中附加一些运算形式,有助于简化常用的查询形式,提高书写关系代数的效率。这些附加的关系代数运算形式包括自然连接运算、θ连接运算、除法运算和赋值运算。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第15页自然连接运算在前面,我们学习了选择和笛卡尔乘积的运算。在通常情况下,我们需要从两个关系中选择那些满足条件的元组数据。自然连接就是一种简化这种复合运算的运算形式。在自然连接中,只有那些在R和S关系上任何公共属性一致的R和S的元组才会成对地出现在自然连接的运算结果中。准确地说,如果A1,A2,…,An是在R和S关系上都有的公共属性,那么当且仅当R中的元组r和S中的元组s在属性A1,A2,…,An都完全一致时,R中的元组r和S中的元组s才能组合成一对。这种运算形式称为自然连接运算,表示为RS。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第16页θ连接运算从本质上来看,在自然连接运算中使用了一个非常特殊的条件,即在参与运算的两个关系模式中某些属性名称相同且取值也相同。但是,更常见的情况是,两个参与运算的关系采用了一个指定的条件。满足这个指定条件的元组就出现在结果中,不满足这个指定条件的元组不出现在该结果中。这是自然联接的一种特殊形式,我们称之为θ连接运算,其表达形式为RCS。也就是说,关系R和S基于条件C的θ连接运算的表示形式是RCS。θ连接运算也是一种附加的关系代数,因此也可以使用一些基本的关系代数形式复合而成。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第17页除法运算设两个关系R和S的属性个数分别是r和s,且关系R中的属性个数大于关系S中的属性个数,即rs0。那么R÷S是一个属性个数为(r–s)的元组的集合。R÷S是满足这种条件的最大关系,即该结果关系中的每一个元组u与S中的每一个元组v组成的新元组(u,v)一定在关系R中。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第18页赋值运算通过给临时变量赋值,可以把关系代数表达式分开,以便一部分一部分地书写,这样可以把复杂的表达式化整为零,成为简单的表达式。赋值运算使用赋值运算符“←”表示。赋值运算不是执行关系的操作,而是把赋值运算符右侧的表达式结果赋给左侧的关系变量,该关系变量可以在后续的表达式中继续使用。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第19页主要内容7.1概述7.2关系代数的基本运算7.3关系代数的附加运算7.4扩充的关系代数运算7.5关系演算7.6关系代数的修改运算7.7关系代数表达式的优化策略7.8本章小结数据库系统原理与应用教程(第二版)第7章关系代数基本理论第20页7.4扩充的关系代数运算在关系代数运算的发展过程中,许多研究人员不断地对其进行了扩展。例如,可以把算术运算作为投影一部分的广义投影运算,允许进行聚集运算,允许对空值进行处理等。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第21页广义投影运算广义投影运算就是允许在投影列表中使用算术函数来对投影进行了扩展。广义投影运算的形式是∏F1,F2,…,Fn,其中,R是任意的关系模式,F1,F2,…,Fn是涉及R模式中常量和属性的算术表达式。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第22页外连接运算外连接运算是对连接运算的扩展,这种运算形式可以处理空值信息。为了说明为什么引入外连接运算形式,我们先研究一个示例。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第23页聚集运算聚集运算就是指输入一个值的集合,然后根据该值集合得到一个单一的值作为结果。常用的聚集函数包括求最大值max、最小值min、平均值avg、总和值sum和计数值count等。例如,在如图6-16所示的关系Book中,maxprice(Book)表达式用于求出该关系中属性price的最大值,结果是65.00。同样,minprice(Book)的结果是4.30,avgprice(Book)的值是17.5,sumprice(Book)的结果是210,countprice(Book)的结果是12。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第24页主要内容7.1概述7.2关系代数的基本运算7.3关系代数的附加运算7.4扩充的关系代数运算7.5关系演算7.6关系代数的修改运算7.7关系代数表达式的优化策略7.8本章小结数据库系统原理与应用教程(第二版)第7章关系代数基本理论第25页7.5关系演算在前面讲述的关系代数运算形式中,我们详细给出了每一个运算的过程。而在逻辑运算中,有时不需要给出运算的过程,而只需要给出运算的形式,这时就涉及到关系演算的内容。关系演算就是指把数据逻辑的谓词演算应用到关系运算中。关系演算分为元组关系演算和域关系演算两种形式,前者以元组为变量,后者以域为变量。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第26页元组关系演算元组关系演算中的查询表达式为:{t|P(t)}。该表达式是使谓词P为真的元组t的集合。其中,t是元组变量,表示一个定长的元组。谓词P是由原子组成的公式数据库系统原理与应用教程(第二版)第7章关系代数基本理论第27页域关系演算域关系演算和元组关系演算是非常类似的。两种运算的差别在于域关系演算使用域变量代替了元组变量的每一个分量,域变量的变化范围是某个值域而不是一个关系。域关系演算的表达式是形为:{y1,y2,…,yn|P(y1,y2,…,yn)}。其中,y1,y2,…,yn代表域变量,P表示由原子构成的公式。现在研究一个使用域关系演算的示例。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第28页主要内容7.1概述7.2关系代数的基本运算7.3关系代数的附加运算7.4扩充的关系代数运算7.5关系演算7.6关系代数的修改运算7.7关系代数表达式的优化策略7.8本章小结数据库系统原理与应用教程(第二版)第7章关系代数基本理论第29页7.6关系代数的修改运算前面讲述的内容都是如何从数据库中检索信息,现在我们研究如何在数据库中插入、删除和修改数据。这些内容是关系代数中的修改运算,这种运算采用了赋值运算形式。数据库系统原理与应用教程(第二版)第7章关系代数基本理论第30页插入运算为了将数据插入到关系中,需要在插入运算中指定将要插入的元组或元组集和关系名。插入运算的表达式如下所示:R←R∪Expression其中,R表示关系,Expression表示关系代数表达式。如果Expression关系代数表达式是一个只包含一个元组的常量关系,那么就可以向
本文标题:数据库系统原理与应用教程ch07
链接地址:https://www.777doc.com/doc-3205477 .html