《关系数据库的基本理论-关系代数.ppt》由会员分享,可在线阅读,更多相关《关系数据库的基本理论-关系代数.ppt(41页珍藏版)》请在三一办公上搜索。
1、关系数据库与SQL语言,目 录,第1章 数据库基础第2章 关系库的基本理论第3章 数据库设计第4章 Transact-SQL语言和SQL SERVER 2008第5章 数据库和表的创建第6章 数据库的查询和视图第7章 存储过程和触发器第8章 数据库应用实战,上堂课内容回顾,关系模型的基本术语:关系、元组、属性、域、分量关系模式候选码、主码、外码(重点)关系完整性:实体完整性(重点)参照完整性(重点)用户自定义完整性,本堂课内容,2.3 关系代数2.3.1 传统的集合运算(重点)2.3.2 专门的关系运算(重点,难点),2.3 关系代数,关系代数关系代数是一种抽象的查询语言,是关系数据操纵语言的
2、一种传统表达方式。关系代数以一个或两个关系为输入,产生一个新的关系作为其操作结果,关系操作,关系操作关系的基本数据操作包括四种:数据查询 数据更新(数据插入,数据删除,数据修改)如用关系代数来表示关系的操作,可以有选择、投影、连接、除、交、差、并、积等。,关系代数的运算符,2.3.1 基本关系运算-合并运算,设有两个关系R和S,它们具有相同的结构。合并运算:R SR和S的并是由属于R或属于S的元组组成的集合,运算符为。记为TRS。,2.3.1 基本关系运算-合并运算,R S,RS,基本关系运算-交集运算,交运算:RSR和S的交是由既属于R又属于S的元组组成的集合,运算符为。记为TRS。,2.3
3、.1 基本关系运算-交集运算,R S,R S,2.3.1 基本关系运算-求差运算,求差运算:R SR和S的差是由属于R但不属于S的元组组成的集合,运算符为.记为TRS。RSR(R S)。,2.3.1 基本关系运算-求差运算,R S,R S,2.3.1 基本关系运算-乘积运算,乘积运算:R1R2两个关系的乘积运算是两个关系框架的合并,是两个关系元祖的连串,运算符为。记为TRS。,2.3.1 基本关系运算-乘积运算,R S,RS,2.3.2 专门的关系运算,选择(selection)投影(projection)连接(join)除(division)(选学)以下为了叙述方便,先引入几个记号,2.3.
4、2 专门的关系运算,(1)分量 设有关系模式R(A1,A2,An),它的一个关系设为R,tR表示t是R的一个元组,tAi则表示元组t中相应于属性Ai的一个分量(2)属性列或域列 若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中的一部分,则A称为属性列或域列 例如:存在关系模式 教师(编号,姓名,职称),2.3.2 专门的关系运算,(3)元组的连接 R为n目关系,S为m目关系。设trR,tsS,则trts称为元组的连接(Concatenation)。它是一个(n+m)列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。,R,S,2.3.2 专门的关系
5、运算,(4)象集 给定一个关系R(X,Z),X和Z为属性组.当tX=x时,x在R中的象集(Images Set)为:Zx=tZ|t R,tX=x 它表示R中属性组X上值为x的元组在Z上分量 如右例所示:a1的象集为(b1,c2),(b2,c3),(b2,c1),例如R:A B C a1 b1 c2 a2 b3 c7 a3 b4 c6 a1 b2 c3 a4 b6 c6 a2 b2 c3 a1 b2 c1,2.3.2 基本关系运算-选择运算,选择运算:F(R)从一个表中选出所有满足给定条件的记录(行),选出的记录构成一个新表,其关系模式与原表相同.选择运算是从关系R中选取使逻辑表达式F为真的元组
6、,是从行的角度进行的运算,图2-3 学生-课程数据库,S,C,SC,例2-3 查询信息系(IS系)全体学生 Sdept=IS(S)或 5=IS(S)结果:,例2-4 查询年龄大于19岁的学生 Sage 19(S)结果:,2.3.2 基本关系运算-投影运算,投影运算:A1,A2,An(R)从给定的属性集中选择若干属性构成新表的属性,而给定表的记录在这些属性上的值保持不变.新表的属性集是原表属性集的真子集.这是从列的角度进行的运算,相当于对关系进行垂直分解。,例 查询学生的姓名和所在系即求Student关系上学生姓名和所在系两个属性上的投影Sname,Sdept(Student)或 2,5(Stu
7、dent),结果:,2.3.2 基本关系运算-自然连接,自然连接运算:R1R2 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。例:Student SC SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,SCORE FROM S,SC WHERE Student.Sno=SC.Sno,2.3.2 基本关系运算-自然连接,R T,R T,一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。,例关系R和关系S 如下所示:,一般连接 的结果如下:,例关系
8、R和关系S 如下所示:,例关系R和关系S 如下所示:,例关系R和关系S 如下所示:,自然连接 R S的结果如下:,等值连接 R S 的结果如下:,外连接如果把舍弃的元组也保存在结果关系中,而在其他属 性上填空值(Null),这种连接就叫做外连接(OUTER JOIN)。左外连接如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN)右外连接如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN)。,例关系R和关系S 如下所示:,除(Division)(选学内容),给定关系R(X,Y)和S(Y,Z
9、),其中X,Y,Z为属性组。R 中的Y 与S 中的Y 可以有不同的属性名,但必须出自相同的域集。R 与S 的除运算得到一个新的关系P(X),P 是R 中满足下列条件的元组在X 属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合,记作:R S=tr X|tr R Y(S)Yx Yx:x在R 中的象集,x=trX,除操作是同时从行和列角度进行运算,例设关系R、S分别为下图的(a)和(b),RS的结果为图(c),分析,在关系R中,A可以取四个值a1,a2,a3,a4 a1的象集为(b1,c2),(b2,c3),(b2,c1)a2的象集为(b3,c7),(b2,c3)a3的象集为(b4
10、,c6)a4的象集为(b6,c6)S在(B,C)上的投影为(b1,c2),(b2,c1),(b2,c3)只有a1的象集包含了S在(B,C)属性组上的投影 所以 RS=a1,“除”的实际含义:有一个现实意义的集合,希望在另一个集合中找出“包含”该集合的元组集例,找出选修了所有课程的学生“所有课程”“学生”“学生”“所有课程”例,找出选修了所有张三所选课的学生“张三所选课”“学生”“学生”“张三所选课”,综合举例,以学生-课程数据库为例例 查询至少选修1号课程和3号课程的学生号码首先建立一个临时关系K:然后求:Sno,Cno(SC)K,先对SC关系在Sno和Cno属性上投影,然后对其中每个元组逐一求出每一学生的象集,并依次检查这些象集是否包含K。,例 查询选修了全部课程的学生号码和姓名。Sno,Cno(SC)Cno(Course)Sno,Sname(Student),例 查询至少选修了一门其直接先行课为5号课程的学生姓名 Sname(Cpno=5(Course SC Student)或 Sname(Cpno=5(Course)SC Sno,Sname(Student)或 Sname(Sno(Cpno=5(Course)SC)Sno,Sname(Student),本章小结,关系代数交、差、并、积选择、投影、连接、除,