第二章关系数据库 关系演算
第二章 关系数据库 关系演算
本次课学习内容 关系代数 。关系运算(选择、投影、连接,除运算) 关系演算 以数理逻辑中的谓词演算为基础的。可分为 元组关系演算语言(get,put等6条语句) 域关系演算语言QBE
本次课学习内容 关系代数 ◦ 关系运算(选择、投影、连接,除运算) 关系演算 ◦ 以数理逻辑中的谓词演算为基础的。可分为: 元组关系演算语言(get,put等6条语句) 域关系演算语言QBE
关系代数 °1、除运算 2、除运算示例 °3、除运算练习
一、关系代数 1、除运算 2、除运算示例 3、除运算练习
1、除运算÷( Division,亦称商) 用途:除法运算同时从行和列的角度迸行运算,在表达某些查 询时有用,适合于包含“全部”之类的短语的查询,例如“查 询选修了所有课程的学生名字 °定义:给定关系R(X,Y),S(Y,Z),Ⅹ,Y,Z为属性列, 关系R和关系S中的Y出自相同域集,则: R÷S={[Ⅺ∈R∧几(S)=Yx 其中,YX为X在R中的象集,X=t[X]
1、除运算÷(Division,亦称商) 用途:除法运算同时从行和列的角度迚行运算,在表达某些查 询时有用,适合于包含“全部”之类的短语的查询,例如“查 询选修了所有课程的学生名字” 。 定义:给定关系 R(X,Y),S(Y,Z),X,Y,Z为属性列, 关系R和关系S中的Y出自相同域集,则: R÷S={tr [X]|tr ∈R∧Πy (S)Yx} 其中,Yx为x在R中的象集,x= tr [X]
象集Z 给定一个厢关系R(,2,为属性组 t=时,x在的象集( Images set)为 Z=t[t∈R,t=x 它表示砷属性组值为x诸元组在Z上分量的集合 R x在种的象集 Z1={Z,22, z3 x2在P的象集 22={2,a3) x3在P的象集 Z Z, Z
象集Zx 给定一个X和关系R(X,Z), Z为属性组。 当t[X]=x时,x在R中的象集(Images Set)为: Zx ={t[Z]|t R,t[X]=x} 它表示R中属性组X上值为x的诸元组在Z上分量的集合 • x1在R中的象集 Zx1 ={Z1,Z2,Z3}, • x2在R中的象集 Zx2 ={Z2,Z3}, • x3在R中的象集 Zx3={Z1,Z3}
2、除运算示例 例1:设关系R、S分别为下图的(a)和(b),R÷S的结果为图(c) R A B B C b1 b R÷S A b a 1
例1:设关系R、S分别为下图的(a)和(b),R÷S的结果为图(c) 2、除运算示例
分析 在关系R中,A可以取四个值{a1,a2,a3,a4 a1的象集为(b1,c2),(b2,c3),(b,c1) a2的象集为(b2,cn),(b2,c)} a2的象集为(b2,c)} a2的象集为{(h,c) 在(B,O上的投影为 {(b1,c2),(b2,c1),(b2,c3)} 只有a的象集包含了在(B,O属性组上的投影 所以R÷S={a
分析 在关系R中,A可以取四个值{a1,a2,a3,a4} a1的象集为 {(b1,c2 ),(b2,c3 ),(b2,c1 )} a2的象集为 {(b3,c7 ),(b2,c3 )} a3的象集为 {(b4,c6 )} a4的象集为 {(b6,c6 )} S在(B,C)上的投影为 {(b1,c2),(b2,c1),(b2,c3) } 叧有a1的象集包含了S在(B,C)属性组上的投影 所以R÷S ={a1 }
写出R÷S= R S R÷S A C B al a B2827 4 D6358 3 4 a
写出 R ÷S= A B C D a1 2 4 6 a3 8 2 3 a1 2 3 5 a4 7 7 8 C D 3 5 4 6 A B a1 2 R S R ÷ S
例2:有关系A、B1、B2和B3,请分别计算AB1、A/B2及AB3。 分析:在关系中,sno可以取四个值{s1,s2,s3,s4 sl1的象集为{p1,p2,n3,p4} s2的象集为{p1,p2} s3的象集为{p2} s的象集为{p2,p4 sIO pno o pno pno P 2 s1 p2 B1 B2 p s2 p1 B3 snto s 2 4p2 s1 snO s1 A A/B1 A/B2 A/B3
例2:有关系A、B1、B2和B3,请分别计算A/B1、 A/B2及A/B3。 分析:在关系中,sno可以取四个值{s1,s2,s3,s4} s1的象集为{p1,p2,p3,p4} s2的象集为{p1,p2} s3的象集为{p2} s4的象集为{p2,p4}
例4:查询至少选修1号课程和3号课程的学生学号。 解题思路:首先建立一个临时关系K, 然后求smcn(SC)÷K Cn 200215121象集{1,2,3} 3 200215122象集{2,3} Sno Cno K={1,3} 200215121 200215121 于是:∏ Is(SC)÷K={200215121} 200215121 1232 200215122 200215122 3
例4:查询至少选修1号课程和3号课程的学生学号。 解题思路:首先建立一个临时关系K, 然后求πSno,Cno(SC)÷K 200215121象集{1,2,3} 200215122象集{2,3} K={1,3} 于是:πSno,Cno(SC)÷K={200215121} Cno 1 3 Sno Cno 200215121 1 200215121 2 200215121 3 200215122 2 200215122 3