第二章 关系数据库2.4.2专门的关系运算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例8 查询选修了2号课程的学生的学 号。
πSno(σCno=‘2’ (SC)) ={95001,95002}
本节介绍了8种关系代数运算,其 中并、差、笛卡尔积、投影和选择5种 运算为基本的运算。其他3种运算,即 交、连接和除,均可以用这5种基本运 算来表达。引进它们并不增加语言的 能力,但可以简化表达。关系代数中, 这些运算经有限次复合后形成的式子 称为关系代数表达式。
其中A和B分别为R和S上度数相等且可比的 属性组。θ是比较运算符。连接运算从R和S的笛 卡尔积R×S中选取(R关系)在A属性组上的值 与(S关系)在B属性组上值满足比较关系θ的元 组。
连接运算中有两种最为重要也 最为常用的连接:
一种是等值连接(equi-join),另一种 是自然连接(Natural join)。
下面介绍:专门的关系运算
选择、投影、连接、除
⒈ 选择(Selection)
选择又称为限制(Restriction)。 它是在关系R中选择满足给定条件的诸 元组,记作:
σ F (R) = {t|t∈R∧F(t)='真'}
其中F表示选择条件,它是一个逻 辑表达式,取逻辑值‘真’或‘假’。
逻辑表达式F由逻辑运算符非、∧或∨ 连 接各算术表达式组成,算术表达式的基本 形式为:
θ为“=”的连接运算称为等值连接。 它是从关系R与S的笛卡尔积中选取A、B属 性值相等的那些元组。等值连接表示为:
R A=BS={ t rt s | t r∈R∧t s∈S∧t r[A]=t s[B] }
等值连接R.B=S.B
ABC
B
C
126
1
3
251
5
4
2
5
A
B
C
B
C
1
2
6
2
5
2
5
1
5
4
自然连接(Natural join)
ABC
B
D
126
1
3
251
5
4
2
5
A
B
C
D
1
2
6
5
2
5
1
4
一般的连接操作是从行的角度 进行运算。但自然连接还需要取消 了重复列,所以是同时从行和列的 角度进行运算。
4. 除(Division)
给定关系R(X,Y)和S(Y,Z),其中X,Y,Z 为属性组。R中的Y与S中的Y可以有不同的属性 名,但必须出自相同的域集。R与S的除运算得到 一个新的关系P(X),P是R中满足下列条件的元组 在X属性列上的投影:元组在X上分量值x的象集 Yx包含S在Y上投影的集合。记作:
它是一个(n+m)列的元组,前n个 分量为R中的一个n元组,后m个分 量为S中的一个m元组。
⒋ 象集(Images Set):
给定一个关系R(X,Z),X和Z为 属性组。我们定义,当t[X]=x时, x在R中的象集(Images Set)为:
Z x ={t[Z]|t∈R, t[X]=x}
它表示R中属性组X上值为x的诸元 组在Z上分量的集合。
自然连接(Natural join)是一种特殊 的等值连接,它要求两个关系中进行比 较的分量必须是相同的属性组,并且要 在结果中把重复的属性去掉。即若R和S 具有相同的属性组B,则自然连接可记作:
R S={ t rt s | t r∈R∧t s∈S∧t r[A]=t s[B] }
自然连接R.B=S.B
学号 Sno
课程号 Cno
950001 1
950001 2
950001 3
950002 2
950002 3
成绩 Grade 92 85 88 90 80
结果为{95001}。求解过程与例6类似,先 对SC关系在Sno和Cno属性上投影,然后对 其中每个元组逐一求出每一学生的象集,并依 次检查这些象集是否包含K。
示元t[A组]=t在(t[属Ai1性],列t[AAi上2],诸…分, t量[A的ik]集)表合。 A{Ai则1, 表Ai2示, …{ A, 1A, iAk}2后, …剩,余A的n }属中性去组掉。
⒊ 元组的连接: R为n目关系,S为m目关系。
t r∈R ,t s∈S ,t r t s称为元组的连 接(Concatenation)。
R÷S = { t r [X]| t r∈R∧πy (S) ∈Yx }
其中Yx为x在R中的象集,x= t r [X]。
例6 设关系R, S分别为 图2.7中的(a)和 (b),的结果为图2.7(c)。
A
B
C
a1
b1
c2
a2
b3
c7
a3
b4
c6
a1
b2
c3
a4
b6
c6
a2
b2
c3
a1
b2
c1
B
C
D
b1
2.4.2专门的关系运算
专门的关系运算包括: 选择、投影、连接、除等。
为了叙述方便,我们先引入几 个记号:
⒈ 分量:设关系模式为
R(A1, A2, …, An)。 它的一个关系设为R. t∈R表示 t是R的一个元组。t[Ai] 则表示元 组t中相应于属性Ai 的一个分量。
⒉ 属性列或域列:
若A={Ai1, Ai2, …, Aik}, 其中Ai1, Ai2, …, Aik是A1, A2, …, A域n列中。的一部分,则A称为属性列或
投影,所以R÷S={a1}
5.关系代数复习
下面再以学生一课程数据库为 例,给出几个综合应用多种关系代 数运算进行查询的例子。
例7 查询至少选修1号课程和 Cno
3号课程的学生号码。首先 建立一个临时关系K:
l 3
然后求:πSno, Cno (SC) ÷K
πSno, Cno (SC)
950001的象集为{(1), (2), (3)} 950002的象集为{(2), (3)}
X1θY1 θ表示比较运算符,它可以是>、≥、<、 ≤单、函=数或。≠属。性X1名、也Y1可等以是用属它性的名序或号常来量代或替简 (1,2…)。
因此选择运算实际上是从关系R中选取 使逻辑表达式F为真的元组。这是从行的角 度进行的运算。
举例:
设有一个学生-课程关系数据库, 包括学生关系Student、课程关系 Course和选修关系SC。
下面的许多例子将对这三个关 系进行运算。
来自百度文库
例1 查询信息系(IS系)全体 学生
σSdept ='IS' (Student)

σ5 ='IS' (Student)
例2 查询年龄小于20岁的元组
σ Sage<20 (Student) 或
σ 4<20 (Student)
⒉ 投影(Projection)
πSdept (Student)
投影之后不仅取消了原关系中 的某些列,而且还可能取消某些元 组,因为取消了某些属性列后,就 可能出现重复行,应取消这些完全 相同的行。
⒊ 连接(Join)
连接也称为θ连接。它是从两个关系的笛卡尔 积中选取属性间满足一定条件的元组。记作:
R AθBS={ t r t s | t r∈R∧t s∈S∧ t r [A] θ t s [B] }
关系R上的投影是从R中选择出 若干属性列组成新的关系。记作:
πA(R) = { t[A] | t∈R }
其中A为R中的属性列。
例3 查询选修关系SC在学号和课程 号两个属性上的投影
πSno, Cno (SC) 或
π1, 2 (SC)
例4 查询学生关系Student中都有哪 些系,即查询学生关系Student在 所在系属性上的投影
c2
d1
b2
c1
d1
b2
c3
d2
A a1
在关系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,c3), (b2,c1)} 显然只有a1的象集(B,C)a1包含S在(B,C)属性组上的
相关文档
最新文档