第三章 关系运算2(实例讲解)
- 格式:ppt
- 大小:1.33 MB
- 文档页数:53


2.4 关系运算(二)——关系演算关系代数是将整个关系看作变元,并以其作为基本运算单位,同时以集合方法为关系运算的理论基础。
如果将组成关系的基本成分例如元组或者属性域看作变量,以其作为基本运算单位,同时以数理逻辑中谓词演算为相应关系演算的理论基础,就得到了另外一种形式的关系数据语言——关系演算。
关系演算基于谓词演算。
在谓词演算中,如果谓词中的变元是关系中的元组,则得到所谓元组关系演算;如果谓词中的变元是关系中的属性域,则得到所谓域关系演算。
这样,关系演算就分为元组关系演算和域关系演算两类。
在 2.4节和2.5节,均以本章 2.3.4节中的关系数据库{S,C,SC}为背景举例。
这里S (S#,Sn,Sex,Sa,Sd);C (C#,Cn,P#,Tn);SC (S#,C#,G),其中各个属性的含义见2.3.4节。
2.4.1 元组关系演算如果在一阶谓词演算表达式中,变量是以元组为演算单位,就称其为元组关系演算(Tuple Relation Calculus),其中元组变量表示关系中的元组,变量取值范围是整个关系。
1. 关系的元组演算表示(1) 关系与谓词的对应为了得到关系操作的元组关系演算表达式,需要考虑关系与谓词的联系。
z由关系R确定的谓词P在数理逻辑中我们知道,关系可用谓词表示,n元关系可以由n元谓词表示。
设有关系R,它有元组(r1,r2,…,r m),定义关系R对应如下一个谓词P (x1,x2, …,x n)。
当t =(r1,r2, …,r m)属于R时,t为P的成真的真值指派,而其他不在R中的任意元组t则是P 的成假指派。
即是说,由关系R定义一个谓词P具有如下性质:P(t) = T (当t在R中);P(t) = F (当t不在R中)。
z由谓词P表示关系R由于关系代数中R是元组集合,一般而言,集合是可以用满足它的某种特殊性质来刻画与表示。
如果谓词P表述了关系R中元组的本质特性,就可以将关系R写为:R={t | P(t)}这个公式就建立了关系(元组集合)的谓词表示,称之为关系演算表达式。
1、笛卡尔积运算:设:关系R为n列(n个属性),K1行(K1个元组);关系S为m列(m个属性),K2行(K2个元组);则关系R和S的笛卡尔积,是R中每个元组与S中每个元组连接组成新关系,记作:R×S注意:新关系的属性个数等于n+m,元组个数等于k1*k2举例:关系R:关系S:R×S (R中每个元组与S中每个元组连接)2、投影:是选择关系R中的若干属性组成新的关系,并去掉了重复的元组,是对关系的属性进行筛选例如:关系R↓↓投影操作:∏(A、B)(R)也就是从关系R中筛选出A、B两个属性,形成一个新关系R’因为第一元组和第3元组重复,所以去掉重复的元组,则完成投影运算,形成新关系R’3、自然连接:也是等值连接,从两个关系的笛卡尔积中,选取公共属性满足等值条件的元组,但新关系不包含重复的属性例:关系R关系S进行自然连接运算,首先对R、S两个关系进行笛卡尔积运算则R×S:从R×S中选取出公共属性满足等值条件的元组,也就是R.B=S.B的元组,也就是标示蓝色的元组。
然后去掉重复属性,就形成新关系R∞S4、除设关系R、S,求R÷S的结果关系R关系S解答如下:在关系R中,C可以取2个值{2,1},其中2的象集为:{(a,1)}1的象集为:{(b,2),(c,3)};S在(A,B)上的投影为:{(c,3)}显然只有1的象集(A,B),1包含S在(A,B)属性组上的投影,所以R ÷S=1象集象集的本质是一次选择运算和一次投影运算。
例如关系模式R(X, Y),X和Y表示互为补集的两个属性集,对于遵循模式R的某个关系A,当t[X]=x时,x在A中的象集(Images Set)为:Zx={ t[Z] | t ∈A,t[X]=x }它表示:A中X分量等于x的元组集合在属性集Z上的投影。
如A:X Y Za1 b1 c2a2 b3 c7a3 b4 c6a1 b2 c3a4 b6 c6a2 b2 c3a1 b2 c1a1在A中的象集为{(b1,c2),(b2,c3),(b2,c1)}(海南师范大学-吴老师)。