《数据库——关系运算.ppt》由会员分享,可在线阅读,更多相关《数据库——关系运算.ppt(53页珍藏版)》请在课桌文档上搜索。
1、第3章 关系代数,本章要点,了解并运算、差运算、交运算、笛卡尔积运算规则,及其集合运算的应用,掌握投影运算、选择运算和连接运算规则,及其关系运算的应用。,关系模型概述,关系模型是以关系代数为理论基础的;关系模型的理论的奠基人是IBM公司的E.F.Codd。目前国际著名的关系数据库有:DB2,Oracle,SQL Server等。在我国,东软集团有限公司的OpenBase、人大金仓的Kingbase ES、武汉达梦公司的DM4和中国航天科技集团公司OSCAR已经成为我国的支柱型关系数据库产品。关系数据库系统是支持关系模型的数据库系统。,关系模型概述,数据模型,数据结构,数据操作,数据的约束条件,
2、关系模型,关系数据结构,关系操作集合,关系完整性约束,实体完整性约束,参照完整性约束,用户定义的完整性约束,二维表,选择、投影、连接增加、删除、修改等,关系的数据库结构和形式化定义,关系的形式化定义:域(Domain)笛卡尔积(Cartesian Pdoduct)关系(Relation),数字、字符及其子集。,域的积,笛卡尔积或其子集,D1=导师集合Supervisor=张清枚,刘逸D2=专业集合Speciality=计算机,机械D3=研究生集合Postgraduate=李勇,刘琛,王敏,D1D2D3=(张清枚,计算机,李勇),(张清枚,计算机,刘琛),(张清枚,计算机,王敏),(张清枚,机械
3、,李勇),(张清枚,机械,刘琛),(张清枚,机械,王敏),(刘逸,计算机,李勇),(刘逸,计算机,刘琛),(刘逸,计算机,王敏),(刘逸,机械,李勇),(刘逸,机械,刘琛),(刘逸,机械,王敏),D1D2D3的基数M=2 23=12(共有12个元组),笛卡尔积示例,三个域,上例的运算结果,这个表是我们要的关系吗?,关于关系的数学描述,关系模型的数学基础是关系代数。关系代数是由一组以关系作为运算对象的特定的运算所组成的。用户通过这组运算,对一个或多个关系不断地进行“组合”与“分割”从而得到所需要的数据。从一组集合的笛卡尔积中,抽取能反映现实世界的,具有实际意义的子集。该子集即为一个关系。D1D2
4、Dn的子集叫做在域D1D2Dn上的关系,表示为:R(D1D2Dn)N是关系的目或度。,关系代数运算的三个要素:运算对象:关系运算结果:关系运算符:四类。集合运算符、关系运算符、算术比较符和逻辑运算符。关系代数运算分:传统的集合运算:并、差、交、广义笛卡尔积专门的关系运算:选择、投影、连接、除,关系代数运算符,3.1 集合运算 传统的集合运算包含并、差、交、广义笛卡尔积等。其运算是从关系的水平方向(表中的行)来进行的。,3.1 集合运算,3.1.1 并运算设:关系R与关系S有相同的属性,并且对应属性有相同的域。则关系R和S的并将产生一个包含R、S中所有不同元组的新关系。记作:RS。并操作的示意图
5、如下:,3.1 集合运算,3.1.1 并运算(续)在实际运用中,并运算可实现插入新元组的操作。,3.1 集合运算,3.1.2 差运算设:关系R与关系S有相同的属性,并且对应属性有相同的域。则关系R和S的差,将产生一个包含所有属于R但不属于S的元组新关系。记作:R-S。差运算是有序的:R-S不等于S-R。,3.1 集合运算,3.1.2 差运算(续)差操作的示意图如下:,3.1 集合运算,3.1.2 差运算(续),3.1 集合运算,(R中有S中没有的元组),3.1.3 交运算设:关系R与关系S有相同的属性,并且对应属性有相同的域。则关系R和S的交,将产生一个包含所有既属于R也属于S的元组的新关系。
6、记作:RS。由于RS=R(R-S),或者RS=S(S-R),所以RS 运算是一个复合运算。,3.1 集合运算,3.1.3 交运算(续)交操作的示意图,如图3-3所示。,3.1.3 交运算(续),3.1 集合运算,(属于R而且也属于S),3.1.4 笛卡尔积运算设:关系R为n列(n个属性),k1行(k1个元组)关系S为m列(m个属性),k2行(k2个元组)则关系R和S的笛卡尔积,是R中每个元组与S中每个元组连接组成的新关系。记作:RS。注意:新关系的属性个数等于n+m,元组个数等于k1*k2。,3.1 集合运算,3.1.4 笛卡尔积运算(续),3.1 集合运算,(R中每个元组与S中每个元组连接)
7、,例:,选择(Selection)投影(Projection)连接(Join)除,关系数据库是用数学方法处理数据的,关系间可以进行各种运算,以支持对数据库的各种操作。我们介绍其中最基本的三种运算:,3.2 特殊的关系运算,3.2 特殊的关系运算,关系代数运算符(续),3.2 特殊的关系运算,3.2.1 投影运算 投影是选择关系R中的若干属性组成新的关系,并去掉了重复元组,是对关系的属性进行筛选,记作(R)。其中A为关系R的属性列表,各属性间用逗号分隔。投影运算的结果往往比原有关系属性少,或改变原有关系的属性顺序,或改变原有关系的属性名等,投影运算结果不仅消除了原关系中的某些列,而且还要去掉重复
8、元组。,3.2 特殊的关系运算,3.2.1 投影运算(续)投影运算的示意图如图下:,3.2 特殊的关系运算,Sql查询命令:Select 系名,姓名 from student,例:查询学生所在系及姓名系名,姓名(student),3.2 特殊的关系运算,student,例 查询学生关系Student中都有哪些系 系名(Student)Sql查询命令:Select 系名from student,结果:,3.2.2 选择运算 选择是根据给定的条件选择关系R中的若干元组组成新的关系,是对关系的元组进行筛选。记作F(R)其中F是选择条件,是一逻辑表达式。选择运算结果往往比原有关系的元组个数少,它是原关
9、系的一个子集,但关系模式不变。,第3章 关系代数 3.2 特殊的关系运算,3.2.2 选择运算(续)选择运算示意图如下:,3.2 特殊的关系运算,例如从student关系中查询所有计算机系学生的记录。系名=“计算机系(student)Sql查询命令:Select*from student where 系名=计算机系,3.2 特殊的关系运算,Select*from student where 系名=计算机系,3.2 特殊的关系运算,例 从学生选课关系SC中,查询选修了“图像处理”课程的学生学号。SID(Cname=图像处理(SC)一个运算的结果可以作为另一个运算的运算对象。Select SID
10、from SC where Cname=图像处理,结果:,3.2.3 连接运算 连接是根据给定的条件,从两个已知关系R和S的笛卡尔积中,选取满足连接条件(属性之间)的若干元组组成新的关系。记作:(R)(S)其中F是选择条件。,F,3.2 特殊的关系运算,3.2.3 连接运算(续)1.条件连接:从两个关系的笛卡尔积中选取属性间满足一定条件的元组。2.相等连接:从关系R与S的笛卡尔积中选取满足等值条件的元组。3.自然连接:也是等值连接,从两个关系的笛卡尔积中,选取公共属性满足等值条件的元组,但新关系不包含重复的属性。4.外连接,3.2 特殊的关系运算,连接运算(续),例关系R和关系S 如下所示:,
11、R,S,连接运算(续),条件连接:R S的结果如下:,CE,连接运算(续),等值连接 R S 的结果如下:,连接运算(续),自然连接 R S的结果如下:,3.2 特殊的关系运算,例:设有学生表S、选课表SC、课程表C,对S、SC和C作自然连接,得到学生的选课情况,3.2.3 连接运算(续)4.外连接:是在连接条件的某一边添加一个符号“*”,其连接结果是为符号所在边添加一个全部由“空值”组成的行。,3.2 特殊的关系运算,连接运算(续),外连接如果把舍弃的元组保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTER JOIN)。左外连接如果只把左边关系R中要舍弃的元组
12、保留就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN)右外连接如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN)。,3.2 特殊的关系运算,连接运算(续),关系R和关系S的外连接,3.2 特殊的关系运算,外连接1、R和S作自然连接:把满足R.B=S.B条件的元组保留在新关系中。2、把不满足R.B=S.B条件的元组也保留在新关系中。相应的值填空。,关系R和关系S的左外连接,左外连接1、R和S作自然连接:把满足R.B=S.B条件的元组保留在新关系中2、把R关系中不满足R.B=S.B条件的元组也保留在新关系中。相应的值填空。
13、,右外连接1、R和S作自然连接:把满足R.B=S.B条件的元组保留在新关系中2、把S关系中不满足R.B=S.B条件的元组也保留在新关系中。相应的值填空。,3.2.4 除法运算 设有关系R(X,Y)和S(Y),其中X,Y可以是单个属性或属性集,RS的结果组成的新关系为T。RS运算规则:如果在(R)中能找到某一行u,使得这一行和S的笛卡尔积含在R中,则T中有u。除法运算示意图如下:,3.2 特殊的关系运算,3.2.4 除法运算(续),例设关系R、S分别为下图的(a)和(b),RS的结果为图(c),3.2.4 除法运算(续)例3.10 已知商品交易情况XA(如表3-29所示),如要查找多笔交易,同时购买两种指定商品GA(如表3-30所示)的交易是哪些交易。可通过除法运算来实现 XAGA运算结果见表3-31(p60)。,3.2 特殊的关系运算,1、并运算()、差运算(-)、交运算()、笛卡尔积运算()规则,及其应用。2、投影运算()、选择运算()和连接运算()规则,及其应用。,小 结,作业P60 思考题2 计算题1、2、3(2),谢谢!,