数据库关系运算理论(2)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章
关系运算理论
第一节 关系的数学定义 第二节 关系数据库
第三节 关系代数
第三节:关系代数
任何一种运算都是将一定的运算符作用 于一定的运算对象,得到预期的运算结果。 关系代数的运算对象和结果都是关系。 运算符包括四类:集合运算符、专门关 系运算符、算术比较符、逻辑运算符
关系代数运算符
运算符 ∪ 集 合 – ∩ × σ 专门的 关 系 ÷ π 含义 并 差 交 广义笛卡尔积 选择 投影 联结 除 逻 辑 比 较 运算符 > ≥ < ≤ = ≠ ¬ ∧ ∨ 含义 大于 大于等于 小于 小于等于 等于 不等于 非 与 或3
42
t[Y]
因此,求R÷S的操作步骤如下: (1)将R中属性分为两个集合X和Y, R(X,Y),其中Y就是S中的前半部分
属性的集合,S(Y,Z)。 (2)若X的某个值x的象集Yx Yx={t[Y]∣t∈R∧t[X]=x} 包含S表中t[Y]的所有元组 ,则 将x放入结果集中。
43
例如:
X
A a a a b e e B b b b c d d C c e d e c e
B b3 b2 C c7 c3 B b4 C c6 B b6 C c6
Y
D d f e f d f
Y S
C D
R
c
e
d
f
当x=(b,c)时, 其象集Yx为:
C
e
D
f
44
当x=(a,b)时, 其象集Yx为:
C c e d D d f e
当x=(e,d)时, 其象集Yx为:
C
c e
D
d f
X
R÷S的结果为:
A a e B b d
45
例: R÷S
X
R
Y
B b1 C c2
(运算不仅涉及行而且涉及列)
、求商÷

合并
具有相同属性集的两个关系R1,R2
的合并,是由属于R1或属于R2(或属于两
者)的所有元组t(不计重复元组)组成 的一个新的关系,新关系具有和R1相同
的属性名集合。
运算符:“∪” 记为: R1∪R2
例如
R
A 1 B 2 C 3 A 7 4 5 A B 2
S
7
PASCAL语言
(b)
6
4
19
选择(续)
SC
学 号
Sno 95001 95001
课程号
Cno 1 2
成 绩
Grade 92 85
95001
95002 95002
3
2 3
(c)
88
90 80
20
选择(续)
[例1] 查询信息系(IS系)全体学生 σSdept = 'IS' (Student) 或 σ5 ='IS' (Student) 结果:
S
B 8 5 1 C 9 6 12
4
7
5
8
6
9
R-S的结果为:
A 1
B 2
C 3
③ 笛卡尔积
两个关系R,S(设R为k1元关系,M个元组,S
为k2元关系,N个元组)的广义笛卡尔积,是一个 (K1+K2)列的元组的集合,是由属于R1的任何一 个元组tk1和属于S的元组tk2连接而成的新元组t所 组成的一个新关系。(新关系中元组的前K1列是关系
Sno 95002 95003 95004 Sname 刘晨 王敏 张立 Ssex 女 女 男 Sage 19 18 19 Sdept IS MA IS
22
结果:
⑥投影
从现有关系中选取某些属性(列),可对 选取的属性重新排序,并删除重复的行(元 组),组成新的关系。(从列的角度进行运算) πA(R)={t[A]|t∈R} A为R的属性列。 t[A]表示元组在相应A属性中的分量。
B 8 5 1 C 3 C 9 6 12
4
7
5
8
6
9
R∪S的结果为:
1
4
7 5
5
8 1
6
9 12
② 差(相减)
具有相同属性集的两个关系R1, R2
的求差,是由属于R1而不属于R2的所有
元组t组成的一个新的关系,新关系具 有和R1相同的属性名集合。
运算符:“-”
记为: R1- R2
例如
R
A 1 B 2 C 3 A 7 4 5
自然联接
R
A a d b c B b b b a C c c f d B b b a
S
C c c d D d e b A a
R
B b
S
C c D d
a
d d c
b
b b a
c
c c d
e
d e b
等值联接
R
A a d b c B b b b a C c c f d B
b
S
C
c
R 3=2 S
D
d
A R.B R.C S.B S.C D
a a d d c b b b b a c c c c d b b b b a c c c c d d e d e b
b
a
c
d
e
b
R 1=1 S
b
b a
A R.B R.C S.B S.C D
b
b b
f
f c
b
b a
c
c d
d
e b
⑧除运算(Division)
设关系 R 和 S 的元数分别为 m 和 n (设 m>n>0),那么R÷S是一个(m-n)元的元 组集合。
R AθB S={trts |tr∈R∧ts∈S∧tr[A]θts[B]}
其中A和B分别为R和S上度数相等并且可 比的属性组。θ是比较运算符。联结运算 从R和S的广义笛卡尔积R×S中选取R关系在 A属性组上的值与S关系在B属性组上的值满 足比较运算符θ的元组。
两类常用联结运算

等值联结(equijoin)
16
选择运算是从行的角度进行的运算
σ
例如 设有一个学生-课程数据库,包 括学生关系Student、课程关系 Course和选修关系SC。
17
选择(续)
学 号 Sno 95001 95002 95003 95004 姓 名 Sname 李勇 刘晨 王敏 张立 性 别 Ssex 男 女 女 男
Student
S
B 8 5 1 C 9 6 12
4
7
5
8
6
9
R∩S的结果为:
A 4
7
B 5
8
C 6
9
⑤ 选择(限制)
从现有关系中选择满足一定条件的元组 组成新的关系。(从行的角度进行运算) 运算符“δ” 记为: δF(R)={t|t ∈R ∧F(t)=true}
其中F为选择条件,是一个逻辑表达式——
运算对象:常量、属性名(序号)、简单函数 运算符:算术比较运算符、逻辑运算符
① 计算R╳S
② 设R和S的公共属性是A1,A2,…AK,挑 选 R╳S 中满足 R.A1=S.A1 , R.A2=S.A2 , … , R.AK=S.AK的那些元组
③ 从R╳S结果中去掉S.A1,S.A2,…S.AK 这些列
36
自然联接与等值联接的区别:
(1)在做自然联接的两个关系中,要 求值相等的属性名也必须相等,而在等 值联接中不要求值相等的属性名相等。 (2)在自然联接的结果中,去掉重复 的属性名,而在等值联接的结果中不去 掉重复的属性名。 ★若两个关系没有公共属性,则其自然 联接就转化为笛卡尔积操作。
5
5 6 6 8
b2
b3 b2 b3 b3
7
10 7 10 10
33
等值联结 R
A
R.B=S.B
S
C S.B E
R.B
a1
a1 a2 a2
b1
b2 b3 b3
5
6 8 8
b1
b2 b3 b3
3
7 10 2
34
自然连接 R
A
a1
S
B
b1
C
5
E
3
a1
a2 a2
b2
b3 b3
6
8
7
10
8
2
35
自然联接的具体的计算过程如下:
什么是等值连接
θ为“=”的联结运算称为等值联结 等值联结的含义 从关系 R 与 S 的广义笛卡尔积中选取 A 、 B 属 性值相等的那些元组,即等值联结为:


R
A=B
S={
tr ts | tr R∧ts S∧tr[A] = ts[B] }
29

自然联结(Natural join)
R的一个元组,后K2列是关系S的一个元组,基数为M*N)
运算符:"×" 记为: R × S
例如:
例如:R×S
R
A a b e
B b c d
C c e c
A a a b b
S
C c e
D d f
R×S结果为:
B b b c c R.C c c e e S.C c e c e D d f d f
R×S结果中元组的个 数(即基数,行数) = R和S中行数之积; 属性的个数(即元数, 列数) =R和S中列数之和。
投影操作主要是从列的角度进行运算
π

但投影之后不仅取消了原关系中的某些列, 而且还可能取消某些元组(避免重复行)
24
投影(续)
[例3] 查询学生的姓名和所在系
即求Student关系上学生姓名和所在系两个 属性上的投影 πSname,Sdept(Student) 或 π2,5(Student) 结果:
什么是自然联结
自然联结是一种特殊的等值联结 两个关系中进行比较的分量必须是相同的属 性组 在结果中把重复的属性列去掉 自然联结的含义 R和S具有相同的属性组B

R S = { tr ts | tr R∧ts S∧tr[B] =ts[B] }
30
一般的联结操作是从行的角度进行运算。
Y S
B C
Z
D
A a1
a2
a3 a1 a4 a2
b3
b4 b2 b6 b2
c7
c6 c3 c6 c3
b1 c 2 d1
b2 c 1 d1
b2 c 3 d2
(1)当x=(a1)时 其象集为
B b1 b2 b2 C c2 c3 c1
a1
b2
c1
X可以取值为{a1,a2,a3,a4}
46
(2)当x=(a2)时 (3)当x=(a3)时 (4)当x=(a4)时 其象集为 其象集为 其象集为
25
投影(续)
Sname 李勇 刘晨 王敏 张立 Sdept
CS
IS MA IS
26
投影(续)
[例4] 查询学生关系Student中都有哪些系 πSdept(Student)
结果:
Sdept CS IS MA
27
⑦ 联结
联结也称为θ联结,它是从两个关系的 笛卡尔积中选取属性间满足一定条件的元 组。记作:
Sno Sname 刘晨 张立 Ssex 女 男 95002 95004 19 19
Sage
Sdept IS IS
注意:常量要用单引号括起来,而属性名或属性 序号不用加引号。 21
选择(续)
[例2] 查询年龄小于20岁的学生

σSage < ’20’(Student) σ4 < ’20’(Student)
R÷S是满足下列条件的最大关系:最 大关系中每个元组 t 与 S 中每个元组 u 组成 的新元组〈t,u〉必在关系R中。
为了方便起见,我们假设关系 S 的属 性为关系R中后S个属性。
40
则R÷S的具体计算过程如下:
(1) T=Π1,2,…m-n(R) (3) V=Π1,2,…m-n(W)
(4) R÷S=T-V 即 R÷S=Π1,2,…m-n ( R ) -Π1,2,…m-n ((Π1,2,…m-n (R)╳ S)-R)
运算符
运算符
运算符
运算符
1.关系代数的基本操作
(1)定义
关系代数是一组建立在关系上的高级 运算,每个运算都以一个或多个关系作为 它的运算对象,并且生成一个关系作为运 算结果。
(a) 运算对象:关系
(b) 运算结果:关系
(2) 关系运算分类
(a)传统的集合运算: 合并∪ 、相交∩ 、求差-(相减)、 笛卡尔积× (运算从关系的水平(行)的角度来进行) (b)专门的关系运算: 选择σ 、投影π 、联接
R
S
AθB
自然联结还需要取消重复列,所以是同 时从行和列的角度进行运算。
31
[例5]
A a1 a1 a2 a2 B b1 b2 b3 b4 C 5 6 8 12
B b1 b2 b3 b3 b5
E 3 7 10
2 2
R
S
32
R
C <E
S
A R.B C S.B E
a1
a1 a1 a1 a2
b1
b1 b2 b2 b3
年 龄 Sage 20 19 18 19 所在系 Sdept CS IS MA IS
(a)
18
选择(续)
课程号 Cno 1 2 3 4 5 6 课程名 Cname 数据库 数学
Course
先行课 Cpno 5 1 6 7 学分 Ccredit 4 2 4 3 4 2
信息系统 操作系统 数据结构 数据处理
(2) W=(T╳S)-R (计算T╳S中不在R的元组)
除运算是同时从行和列角度进行运算
41
象集
给定一个关系R(X,Y),X和Y为属性组。定 义,当t[X]=x时,x在R中的象集为:
Yx ={t[Y]|t∈R,t[X]=x}
它表示R中属性组X上值为x的诸元组在Y上各 分量的集合。
Y为R中的一个属性组,Y={yi1,yi2…yik}, t[Y]=(t[yi1],t[yi2]…t[yik])表示R中的元 组t在属性组Y上各分量的集合
Leabharlann Baidu
e
e
d
d
c
c
c
e
d
f
④ 交
具有相同属性集的两个关系R1, R2的相交,是由既属于R1又属于R2的所
有元组t组成的一个新的关系,新关系
具有和R1相同的属性名集合。 运算符:"∩" 记为: R1 ∩ R2
R∩S R-S S-R R∩S =R-(R-S) R∩S =S-(S-R)
例如
A 1
R
B 2 C 3 A 7 4 5
相关文档
最新文档