好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

2.4 关系代数.doc

14页
  • 卖家[上传人]:油条
  • 文档编号:13603120
  • 上传时间:2017-10-24
  • 文档格式:DOC
  • 文档大小:380KB
  • / 14 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 12.4 关系代数---------------------------------------------------------------------关系代数是一组施加于关系上的高级运算,每个运算都以一个或多个关系作为它的运算对象,并生成另一个关系作为该运算的结果由于它的运算直接施加于关系之上而且其运算结果也是关系,所以也可以说它是对关系的操作;从数据操作的观点来看,也可以说关系代数是一种查询语言 ---------------------------------------------------------------------关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果所以运算对象、运算符、运算结果是运算的三大要素关系代数的运算对象是关系,运算结果亦为关系关系代数用到的运算符包括四类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符,如表2·4所示关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算两类其中传统的集合运算将关系看成元组的集合,其运算是从关系的"水平"方向即行的角度来进行。

      而专门的关系运算不仅涉及行而且涉及列比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的2.4.1 传统的集合运算2传统的集合运算是二目运算,包括并、差、交、广义笛卡尔积四种运算设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则可以定义并、差、交运算如下:1.并 (Union)关系R与关系S的并记作:R ∪ S = {t|t∈R ∨ t∈S}其结果仍为n目关系,由属于R或属于S的元组组成注:等式右边大括号中的t是一个元组变量,表示结果集合由元组t构成竖线“|”右边是对t约束条件,或者说是对t的解释其它运算的定义方式类同)(注:并的结果关系中可能会有重复元组如有重复元组应将重复的元组去掉即,在并的结果关系中,相同的元组只保留一个)2.差(Difference)关系R与关系S的差记作:R - S = {t|t∈R ∧ tS}其结果关系仍为n目关系,由属于R而不属于S的所有元组组成3.交(Intersection)关系R与关系S的交记作:R ∩ S = {t|t∈R ∧ t∈S}其结果关系仍为n目关系,由既属于R又属于S的元组组成关系的交可以用差来表示,即 R ∩ S = R-(R-S)。

      4.广义笛卡尔积 (Extended Cartesian Product)两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n + m)列的元组的集合元组的前n列是关系R的一个元组,后m列是关系S的一个元组若R有K 1个元组,S有K 2个元组,则关系R和关系S的广义笛卡尔积有 K 1×k2 个元组记作:图2.2(a)、图2.2(b)分别为具有三个属性列的关系R,S 图2.2(c)为关系R与S的并图2.2(d)为关系R与S的交图2.(2e)为关系R和S的差图2.2(f)为关系R和S的笛卡尔积3(对于以上四种传统的集合运算,举例如下)R S R ∪ SA B C A B C A B Ca1 b1 c1 a1 b2 c2 a1 b1 c1 a1 b2 c2 a1 b3 c2 a1 b2 c2a2 b2 c1 a2 b2 c1 a2 b2 c1a1 b3 c2(a) (b) (c) R ∩ S R × SA B C A B C A B C a1 b2 c2 a1 b1 c1 a1 b2 c2a2 b2 c1 a1 b1 c1 a1 b3 c2(d) a1 b1 c1 a2 b2 c1 a1 b2 c2 a1 b2 c2R - S a1 b2 c2 a1 b3 c2A B C a1 b2 c2 a2 b2 c1a1 b1 c1 a2 b2 c1 a1 b2 c2(e) a2 b2 c1 a1 b3 c2a2 b2 c1 a2 b2 c1(f)图 2.2 传统集合运算举例2.4.2 专门的关系运算专门的关系运算包括选择、投影、连接、除等。

      为了叙述上的方便,先引入几个记号1) 设关系模式为 R(A1,A2,…,An)它的一个关系设为 R ; t∈R 表示 t 是 R 的一个元组t[A i]则表示元组 t 中相应于属性 Ai的一个分量2) 若A={Ai1,Ai2,…,Aik },其中Ai1,Ai2,…,Aik是A1,A 2,…,An中的一部分,则A称为属性列或域列4t[A]=( t[Ai1],t[Ai2],…,t[Aik])表示元组 t 在属性列 A上诸分量的集合 则表示{ A1,A2,…,An }中去掉{ Ai1,Ai2,…,Aik }_后剩余的属性组3) R为 n 目关系,S为 m 目关系tr∈R, ts∈S, 称为元组的连接(Concatenation)它是一个 n + m 列的元组,前 n 个分量为 R 中的一个 n 元组,后 m 个分量为 S 中的一个 m 元组4) 给定一个关系 R(X,Z),X 和 Z为属性组,定义,当t[X]=x 时,x 在 R 中的象集(Images Set)为:Zx = {t[Z]|t∈R ,t[X]=x}它表示 R 中属性组 X 上的值为 x 的诸元组在 Z 分量上的集合附:象集漫谈从学习者的角度来看,有两个概念是必须弄清楚的;一个是记号t[A],另一个是“象集”。

      下面,请和我一起走近它们1) 关于记号t[A]下面,让我们拿起“放大镜”,对这个记号再看清楚点t表示元组变量t[A]表示元组t在属性列A上诸分量的集合换言之,t[A]表示元组t在属性列A上的“短”元组,说它短,是因为它只是元组 t 的一部分例. 设关系R为RA1 A2 A3 A4a 3 b 4a 3 b 5 b 2 a 1 b 2 c 2c 1 c 2设A={A1,A2},则有t[A]=( t[A1],t[A2] ),其中t[A1]表示元组t在分量A1上的取值,t[A2]表示元组t在分量A2上的取值令 t = ( a,3,b,4 ),则t[A] = ( a,3 ),t[A1] = ( a ), t[A2] = ( 3 ).令 t = ( a,3,b,5 ),则t[A] = ( a,3 ),t[A1] = ( a ), t[A2] = ( 3 ).令 t = ( b,2,a,1 ),则t[A] = ( b,2 ),t[A1] = ( b ), t[A2] = ( 2 ).…5如此等等。

      2) 关于“象集”① 象集的定义给定一个关系 R(X,Z), X 和 Z 为属性组,定义,当t[X] = x 时,x 在 R中的象集为:Zx = { t[Z]| t∈R,t[X]=x }表示R中的属性组X上值为 x 的诸元组在 Z 分量上的集合② 举例. 设有关系 R 如下:X Z ︷ ︷A1 A2 A3 A4a 3 b 4a 3 b 5 b 2 a 1 b 2 c 2c 1 c 2设 X = { A1,A2 }, Z = { A3,A4 }. 当X的值 x = ( a ,3 ) 时,( a ,3 ) 在 R 中的象集 Z x 为:Zx = { ( b ,4 ), ( b ,5 ) } ,即A3 A4 Zx = b 4 b 5当X的值 x = ( b ,2 )时,( b ,2 )在 R 中的象集 Z x 为:Zx = { ( a ,1 ), ( c ,2 ) } ,即A3 A4 Zx = a 1 c 26象集的概念在做除法的时候还要用到,稍后,你就会明白它的用途。

      下面给出这些专门关系运算的定义:1.选择 (Selection)选择又称为限制 (Restriction)它是在关系R中选择满足给定条件的诸元组,记作:其中F表示选择条件,它是一个逻辑表达式,取逻辑值"真"或"假"逻辑表达式F由逻辑运算符﹁、∧、∨连接各算术表达式组成算术表达式的基本形式为:X1θ Y1其中 θ 表示比较运算符,它可以是>,≥,<, ≤,= 或 ≠X1 ,Y1 等是属性名,或为常量,或为简单函数;属性名也可以用它的序号来代替选择运算实际上是从关系R中选取使逻辑表达式F为真的元组这是从行的角度进行的运算设有一个 学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC,如图2.3所示下面的许多例子将对这三个关系进行运算7其中下角标"5"为 Sdept 的属性序号结果如图 2.4(a)所示8例2 查询年龄小于20岁的学生结果如图 2.4(b)所示 2.投影(Projection)关系 R 上的投影是从 R 中选择出若干属性列组成新的关系记作:其中 A 为 R 中的属性列投影操作是从列的角度进行的运算注:由于投影只是将指定的那些列投射下来构成一个新关系,这个新关系中的元组会比原来的元组“短些”,因此,投影的结果关系中可能会有重复元组。

      投影的结果关系中如有重复元组应将重复的元组去掉也就是说,在结果关系中,相同的元组只保留一个)例 3 查询学生的姓名和所在系,即求Student关系在学生姓名和所在系两个属性上的投影结果如图2.5(a)9投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列后,就可能出现重复行,应取消这些完全相同的行例 4 查询学生关系Student中都有哪些系,即查询关系Student在所在系属性上的投影结果如图2.5(b)Student关系原来有四个元组,而投影结果取消了重复的IS元组,因此只有三个元组 3.连接 (Join)连接也称为θ连接它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组记作:其中A和B分别为R和S上度数相等且可比的属性组θ是比较运算符连接运算从R和S的广义笛卡尔积R×S中选取 (R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组连接运算中有两种最为重要也最为常用的连接,一种是等值连接(equijoin),另一种是自然连接 (Natural join)θ为"="的连接运算称为等值连接它是从关系R与S的广。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.