文档详情

数据库系统原理-第五章代数和逻辑查询语言讲解.ppt

发布:2017-04-18约3.78千字共92页下载文档
文本预览下载声明
第5章 代数和逻辑查询语言;5.1 关系代数操作(1);5.1 关系代数操作(2);5.1 关系代数操作(3);5.1 关系代数操作(4);5.2 包上的关系操作(1);关系看作为集合,则不允许有重复元组,如果看作为包,则允许有重复元组。;为何需要包;;例子;5.2 包上的关系操作(2);包的并、交、差 设R和S是包,若元组t在R和S中分别出现n次和m次 (这里的m和n可以是0),则: R ∪ S的包并操作结果中:元组t出现m+n次; R ∩ S的包交操作结果中:元组t出现 min (m, n)次; R-S的包差操作结果中:元组t出现 max(0, n-m)次; /减后为负数则取0 ;包的并、交、差举例:设关系R、S如下:;5.2 包上的关系操作(2); 如果在投影操作过程中,产生了多个同样的元组,那些重复的元组将不会被从包投影结果中除去。如对enroll表的cid投影;举例; 如果在进行选择操作时,要独立地对每个元组应用选择条件。在结果中不去除重复元组;举例; 一个关系中的每个元组与另一个关系中的每个元组配对,而不问这个元组是否重复出现;举例; 包的连接操作也跟预想的一样,首先对比两个关系中的元组,看是否能组成一对,如果能,则配对起来的元组就是结果关系中的一员。; θ连接如下:;举例;5.3 关系代数的扩展操作(1);消除重复 消除关系R中的重复元组,将包转化为集合δ(R) 例5.8;聚集操作符 汇总或“聚集”关系中某一列出现的值 SUM用来产生一列总和,得到的是一个数字值 AVG用来产生一列平均值,结果也是数字值 MAX和MIN当用于数字值列的时候,产生的分别是这一列中最大的和最小的值;当应用于字符列的时候产生是字典序的最大者和最小者 COUNT产生一列中的“值”的数目(并不一定指不同的值)。同样,COUNT应用于一个关系的任何属性时,产生的是这个关系的元组数,包括重复的元组;例子;分组 为什么要分组 分组是便于各分组中元组的聚集操作。 如何分组 算符γ的下标是一个元素的列表,其中每个元素是下列情况之一: ⑴是应用γ操作的那个关系的一个属性,这个属性是那些可以把R分组的属性其中之一。这个元素称为分组属性。 ⑵应用到关系的一个属性上的聚集操作符。为了在结果中对应此聚集,给属性一个名称,一个箭头和一个新的名字附在这个聚集的后面,称为聚集属性。;分组操作符γL(R) 分组操作符的下标是一个元素的列表L,可以是: 应用γ操作的关系的一个属性,R使用这个属性分组,称为分组属性; 例如:图5-4 γstudioname(Movies) 应用到关系的一个属性上的聚集操作符,可以使用箭头给聚集属性列命名; 例如:γstudioname,SUM(length)?sumOFLength(Movies);表达式γL(R) 的求解过程 根据L中的分组属性,按照该属性上的不同取值进行分组 对每一组,产生一个元组,其属性和属性值按照L取 L中的分组属性 | 该组在分组属性上的值 L中的属性聚集结果(箭头右侧属性) 例5.23 对关系StarsIn( title, year, starName),查询至少出演 了三部电影的影星,以及他们在电影中出现的最早年份。 γstarname,MIN(year)?minYear, COUNT(title) ?ctTitle (StarsIn) 先聚集,再选择,最后投影得到结果;设关系student(学生)、course(课程)和sc(成绩)如下:;分组操作符举例γ 1、查询各个专业的学生人数及平均年龄 2、统计各门课的平均成绩、最高成绩及选修人数 3、查询被两个以上同学选修的课程的课程名及平均成绩;δ是γ的特殊情况;举例;扩展的投影操作符 ΠL(R) πL(R),其中L是R的一些属性序列。L的组成可以做如下扩展: R的属性; 形如:x?y,x是R的属性,y为结果模式中的新属性名; E?z,E是表达式,z是表达式E计算结果的属性的新名字。 如:a+b?x,表示a和b属性的和并生命名为x ;举例;举例;举例;举例;排序操作符;举例;外连接;设有关系;外连接的不同变体;如果只将左边关系中的悬浮元组加入到结果关系中,就是左外连接?oL ;如果只将右边关系中的悬浮元组加入到结果关系中,就是右外连接?oR ;;;;;练习 ;练习 ;练习 ;练习 ;练习 ;练习 ;随着数据技术的不断提高,关系代数也暴露出了一些局限性,例如,无法有效地表示递归运算、逻辑表达能力弱等。 在这种情况下,Datalog语言应运而生。Datalog语言是一种基于逻辑编程语言Prolog的一种非过程化的语言。同关系演算类似,用户只需要给出所描述的信息,不需要给出
显示全部
相似文档