260 likes | 367 Views
关系运算. 浙江电大三门学院 钟以维. 复习. 1. 什么是关系? 2. 什么是关系的元组? 3. 什么是关系的属性?. 问题. 学生关系 S. 选课关系 SC. 课程关系 C. 例 1 :在三个关系:学生、课程和选课构成的关系数据库中,查询出姓名( Sname )为 lhy 的学生的学号、所选课程的每门课程号及相应成绩。. 一、传统的集合运算. 包括并、交、差和笛卡儿积等四种运算(运算符∪、∩、-、 × ) 比较运算符:大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(=)、不等于(<>),又称 θ 运算符
E N D
关系运算 浙江电大三门学院 钟以维
复习 1.什么是关系? 2.什么是关系的元组? 3.什么是关系的属性?
问题 学生关系S 选课关系SC 课程关系C 例1:在三个关系:学生、课程和选课构成的关系数据库中,查询出姓名(Sname)为lhy的学生的学号、所选课程的每门课程号及相应成绩。
一、传统的集合运算 包括并、交、差和笛卡儿积等四种运算(运算符∪、∩、-、×) 比较运算符:大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(=)、不等于(<>),又称θ运算符 逻辑运算符:与(∧)、或(∨)、非(-)
1.并运算 关系R∪S 足、篮球爱好者 关系R 篮球爱好者 王平 女 3 王平 女 3 赵光 男 2 赵光 男 2 李玉 男 2 李玉 男 2 刘兵 男 1 刘兵 男 1 关系S 足球爱好者 孙广 男 2 孙广 男 2 李玉 男 2 李玉 男 2 王亮 男 3 王亮 男 3 刘兵 男 1 刘兵 男 1 R和S共同具有的元组,在结果集合中只能出现一个。 R和S结构完全相同 陈新 男 4
并运算 定义:设两个关系R和S具有完全相同的结构(模式),则R和S的并仍是一个关系,该关系的结构与R或S的结构相同,该关系的值是R中所有元组与S中所有元组共同组成的集合。对于R和S中共同具有的元组,在结果集合中只能出现一个。 R和S的并记作:R∪S 用集合公式表示为: R∪S={t|t∈R∨t∈S} 满足交换率:即R∪S= S∪R
2.交运算 关系R∪S 足、篮球爱好者 关系R 篮球爱好者 王平 女 3 赵光 男 2 李玉 男 2 李玉 男 2 刘兵 男 1 刘兵 男 1 关系S 足球爱好者 孙广 男 2 李玉 男 2 李玉 男 2 王亮 男 3 刘兵 男 1 刘兵 男 1 陈新 男 4
交运算 定义:设两个关系R和S具有完全相同的结构,则R和S的交仍是一个关系,该关系的结构与R或S的结构相同,该关系的值是R和S中共同具有的元组的集合。 R和S的交记作:R∩S 用集合公式表示为: R∩S={t|t∈R∧t∈S} 满足交换率:即R∩S= S∩R
3.差运算 关系R-S 不喜欢足球的篮球爱好者 关系R 篮球爱好者 王平 女 3 王平 女 3 赵光 男 2 赵光 男 2 李玉 男 2 刘兵 男 1 关系S 足球爱好者 孙广 男 2 李玉 男 2 李玉 男 2 王亮 男 3 刘兵 男 1 刘兵 男 1 陈新 男 4
差运算 定义:设两个关系R和S具有完全相同的结构,则R和S的差仍是一个关系,该关系的结构与R或S的结构相同,该关系的值是从R中去掉在S中同时出现的元组后,由R中剩余元组所组成的集合。 R和S的交记作:R-S 用集合公式表示为: R-S={t|t∈R∧t∉S} 不满足交换率:即R-S≠S-R
4.笛卡儿积 定义:设有一个具有n个属性的关系R和另一个具有m个属性的关系S,则它们的笛卡儿积仍是一个关系,该关系的结构是R和S的结构之连接,即前n个属性来自R,后m个属性来自S,属性个数等于n+m,该关系的值是由R中的每个无组连接S中的每个无组所构成的集合。 R和S的笛卡儿积记作:R×S 用集合公式表示为: R×S={tRtS|tR∈R∧tS∈S} 由于实际应用中需要考虑关系中属性的次序,所以笛卡儿积不满足交换率:即R×S≠S×R
笛卡儿积 关系R×S 关系R 篮球爱好者 王平 女 3 王平 女 3 王平 女 3 赵光 男 2 赵光 男 2 赵光 男 2 李玉 男 2 李玉 男 2 李玉 男 2 刘兵 男 1 刘兵 男 1 刘兵 男 1 关系S 学院、专业 计算机 计算机 计算机 计算机 计算机 计算机 计算机 计算机 计算机 计算机 数理 数学 数理 数学 数理 数学 数理 数学 数理 数学
二、专门的关系运算 包括选择、投影、连接和除四种(运算符δ、Π、 和÷) 由于除运算使用较少,并且较难理解,这里只介绍前三种。
1.选择运算 定义:从一个关系R中选择出满足给定条件的所有元组,并且R具有相同的结构。 选择运算提供了横向划分(或称分割)关系的手段。 对关系R按F(t)条件做选择运算记作: δF(t)(R)={t|t∈R ∧ F(t)=TRUE} F(t)为元组逻辑表达式,当值为真(用逻辑真常量TRUE表示)时,元组t就被选择出来,成为结果关系中的一个元组。
选择运算 δt.年级=1∨t.年级=2(R) 一、二年级足球爱好者 关系R 足球爱好者 孙广 男 2 孙广 男 2 李玉 男 2 李玉 男 2 王亮 男 3 刘兵 男 1 刘兵 男 1 陈新 男 4
2.投影运算 定义:从一个关系R中按所需顺序选取若干个属性构成新关系,该新关系的元组数必然小于等于原关系R中的元组数,因为要从中去掉在新关系模式下重复的元组。 选择运算提供了纵向划分(或称分割)关系的手段。 设t是R中的一个元组,A是要从R中投影出的属性子集,则用t.A表示t元组中属性子集A所对应的分量值,对关系R按属性子集A做投影运算记作ΠA(R)={t.A|t∈R}
投影运算 关系R 足球爱好者 Π姓名,性别(R) Π年级(R) 姓名 孙广 李玉 王亮 刘兵 陈新 姓名 孙广 李玉 王亮 刘兵 陈新 性别 男 男 男 男 男 性别 男 男 男 男 男 年级 2 2 3 1 4 年级 2 2 3 1 4
3.连接运算 定义:把两个关系R和S按相应的属性值的比较条件连接起来,它是R和S的笛卡儿积的一个子集。比较条件就是比较运算表达式,相应的连接就称为该运算符的连接,如大于连接、小于等于连接、等于连接,总称θ连接。 假定A和B分别为R和S中的属性,t是连接结果中的一个元组,tR和tS分别表示t元组中分别属于R和S中的元组,tR.A和tS.B分别为t元组中相应的连接分量, tR.A和tS.B也可分别表示为R.A和S.B,因为关系的属性值就表示关系中当前元组t的属性值。对R和S按θ条件进行连接记做R R.AθS.BS,用笛卡儿积和选择运算表示为: R R.AθS.BS=δR.AθS.B(R×S)={t|tR∈R∧tS∈R∧R.AθS.B=TRUE}
连接运算 关系S 关系R C C D C A A B B C C 15 15 15 15 15 15 15 15 TT TT TT TT TT TT TT TT XC XC 30 30 15 15 XC XC 30 30 15 15 20 20 20 20 TF TF TF TF WR WR 18 18 20 20 30 30 FF FF XK XK 12 12 20 20 GL GL 25 25 30 30 GL GL 25 25 30 30 SF SF SF SF 43 43 43 43 35 35 35 35 SF SF SF SF 43 43 43 43 35 35 35 35 R R.B>S.CS R.A R.B R.C S.C S.D
连接运算 关系S 关系R C C D C A A B B C C 15 15 15 15 15 15 15 15 TT TT TT TT TT TT TT TT XC XC 30 30 15 15 XC XC 30 30 15 15 20 20 20 20 TF TF TF TF WR WR 18 18 20 20 30 30 FF FF XK XK 12 12 20 20 GL GL 25 25 30 30 GL GL 25 25 30 30 SF SF SF SF 43 43 43 43 35 35 35 35 SF SF SF SF 43 43 43 43 35 35 35 35 R R.C=S.CS R.A R.B R.C S.C S.D
3.连接运算 在等值连接中,其连接结果存在着与连接条件对应的重复聚会的属性,为了减少数据的重复存储,应通过投影去掉其中的一个属性,这种连接叫做自然连接。记作:R S 连接运算不满足交换率,但是满足结合率。即: (A B) C=A (B C)
题目回顾 学生关系S 选课关系SC 课程关系C 在三个关系:学生、课程和选课构成的关系数据库中,查询出姓名(Sname)为lhy的学生的学号、所选课程的每门课程号及相应成绩。
三、综合运算 例1:在三个关系:学生、课程和选课构成的关系数据库中,查询出学生号为 k(变量k中保存着一个给定的学生号)的学生的学生号、姓名、所选每门课的课程名及成绩。 例2:在三个关系:学生、课程和选课构成的关系数据库中,查询出同时选修了001和002这两门课程的学生的学生号。 例3:在三个关系:学生、课程和选课构成的关系数据库中,查询出没有选修任何课程的全部学生。
小结 传统的集合运算:并、交、差、笛卡儿积 专门的关系运算:选择、投影、连接、除(了解) 运用关系运算对集合进行关系运算 关系运算基本原则
作业 习题二:8-13题