数据库关系运算
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NM
(W)
17
结论: (1)结果相同;(等价!)
(2)计算过程开销不同。(执行效率!)
(2)找出至少供应了一种红色零件的供应商名。
TS(SNO,SNAME) := TSP(SNO,PNO) :=
SNO,SNAME SNO,PNO
(S)
TSP
(SP)
W(SNO,PNO,SNAME) := TS
供应商
供应商供应 零件情况
10
б
=
S1 S1 S1
SNO =‘S1’(S
SP)
20 20 20 London London London P1 P4 P5 300 200 100
(SNO,SNAME, STATUS, CITY, PNO,QTY) Smith Smith Smith
11
(ii)S(A1, ,An)(R): 把关系R的名字命名为S, 并且把S的属性依次命名为A1, ,An
例1 列出各课程先修课的先修课。 COURSE(Cno, Cname, Pcno)
4. 命名运算 (i)s(R):把关系R名字命名为S。(属性名不变)
c1 c2 c3 c4
c5
math prog ds os
db
c1 c2 c3
c3
12
COURSE(Cno, Cname, Pcno) COURSE(Cno, Cname, Pcno)
R×S:
5
2. 一元运算 (1)选择:从一个关系R中选出满足条件表达式F 的元组,构成一个新关系,记为F(R)。 例 S(SNO, SNAME, STATUS, CITY) 供应商
S1 S2 S3 S4 S5 Smith Jones Blake Clark Adams 20 10 30 20 30 London Paris Paris London Athens
б
status > 20(S)=
( SNO, SNAME, STATUS, CITY ) S3 Blake 30 Paris S5 Adams 30 Athens
6
(2)投影(Projection) 投影运算从一个关系R中选出属性(组)A,构 成一个新关系,记为П A(R)。 ( SNO, SNAME ) 例 ПSNO,SNAME(S)=
4
(5)笛卡尔乘积运算
两个属性个数分别是m 、n,元组个数分别为k1、 k2的关系R和S,它们的笛卡尔乘积是一个关系, 该关系属性个数(度/元)为m + n、元组个数为 k1·k2,记为R×S
例 R(A,B,C) a 1 c b 2 f S (A, BB) aa 11 bb 22
(R.A, B, C, S.A, BB) a a b b 1 1 2 2 c c f f aa bb aa bb 11 22 11 22
第四章
关系代数运算
关系数据模型的运算基础:
集合:(e1,e2,e3)
包:(e1,e2,e3,e2)
§1 关系代数运算 一、关系代数运算的特点
1.抽象的关系操作语言。
2.运算对象和运算结果都是关系。
1
二、关系代数运算的分类 1. 二元集合运算: 并(UNION; ) 差(DIFFERENCE; ) 交(INTERSECTION; ) 笛卡尔乘积(CARTESIAN PRODUCT; ) 2. 一元运算: 选择(SELECT; )
TR(PNO,COLOR) :=
б
COLOR=‘red’
(
PNO,COLOR
(P))
TW(SNO,PNO,SNAME,COLOR) := TR
W
Answer(SNAME) :=
SNAME(TW)
18
(3)找出没有供应过零件P2的供应商名。 解: (i)供应过零件P2的供应商号: S1(SNO) := SNO(бPNO =‘p2’(SP))
(4)交运算:记作R∩S
3
例 设并兼容的关系R、S如下: R(A, a d c B,C) 1 c 4 f 3 d S(A,B,C) b 2 a d 4 f
(A,B,C)
R∪S: (A,B,C) a 1 c b 2 a c 3 d d 4 f
R∩S:
d
4
f
(A, B,C) R-S: a 1 c c 3 d
解决方案:
c1 c2 c3 c4
c5
math prog ds os
db
自然连接? c2 c1 (-连接?)
c2 c3
c3 c3
c1
math prog ds c1 c2
c4 c5
os db
c3 c3
П Cno,Pcno(COURSE) C2( Pcno,PPcno )(П Cno,Pcno(COURSE) )
(ii)当前数据库所“掌握”的供应商号: S2(SNO) :=
SNO (S)
(iii)没有供应过零件P2的供应商号及名字:
TNM(SNO, SNM) := SNO, SNAME(S)
W(SNO,SNM) := TNM (S2 – S1)
19
Answer(SNAME) := SNM(W)
熟练掌握:关系代数运算,并能够用关系代数表 达式表示查询请求。
S1 S2 S3 S4 S5 Smith Jones Blake Clark Adams
例 П CITY(б
(status > 10)∧(SNO < ‘S6’)(S) )
( CITY ) = London Paris Athens
7
3.连接运算 一般连接,即θ -连接。记为:R 例 R1(A1,A2) a1 1 a2 2 a3 1 a4 2
了解:关系代数查询的执行效率问题。
20
课堂练习
(i)P129:习题 5.2.1 (a)、(f)、(h) 注意:(1)采用“线性”形式解答。 (2)不必给出查询结果的具体数据!
(ii)P130:习题 5.2.7
(iii)P131:习题 5.2.9(a)
21
13
例2
命名:“供应商供应零件的详细情况”
SNO =‘S1’(S
S_SP(A1,A2,A3,A4,A5,A6)(б
S_SP(A1, = S1 S1 S1
SP))
A6) 300 200 100
A2, A3, A4, Smith 20 London Smith 20 London Smith 20 London
A5, P1 P4 P5
四、关系代数运算结果的保存 线性符号规则:
BK-p11
(1)每一步运算结果赋予一个命名的关系模式。
(2)最后一步的运算结果必须赋予关系Answer。 14 (3)每一步可以进行一个或几个运算。
例 如前例2: “供应商S1供应零件的详细情 况” W(SN,NM,ST,CT,PN,Q) := S SP
Answer(SNO,SNAME,STATUS,CITY,PNO,QTY)
:=
б
SNO =‘S1’
(W)
15
§2 关Hale Waihona Puke Baidu代数运算举例 例1 本例以“供应商-零件”实例为背景。
其中,关系 P( PNO, P1 P2 P3 P4 P5 P6
P(代表“零件”)如下: PNAME, COLOR, WEIGHT ) Nut Red 12 Bolt Green 17 Screw Blue 17 Screw Red 14 Cam Blue 12 Cog Red 19
投影 (PROJECTION; 3. 连接运算:(JOIN; 4. 命名运算(一元运算;
П
、
)
θ
)
2
)
三、关系代数运算 1.二元运算
(1)并兼容的关系:
若两个关系的属性个数相同,且对应属性的 域也相同,则称这两个关系是并兼容的。
(2)并运算:记作 R∪S 关系R和S必须 是并兼容的!
(3)差运算:记作R-S
16
(1)找出供应零件P2的供应商名。
W(SN,NM,ST,CT,PN,Q) := S R(SN,NM,ST,CT,PN,Q) :=
Answer(SNAME) := 试比较:
NM
SP
PN=‘P2’
б
(R)
(W)
R(SNO,PN,Q) :=
б
PNO=‘P2’
(SP)
R
W(SN,NM,ST,CT,PN,Q) := S Answer(SNAME) :=
( A, S= a1 a1 a2 a2 a2 a3 a3
B, 1 1 1 1 2 1 1
C ) b1 b2 b1 b2 b2 b1 b2
9
例
“供应商-零件”数据库:
设:S(SNO, S1 S2 S3 S4 S5 SP(SNO, S1 S1 S1 S2 S2 S3 SNAME, STATUS, Smith 20 Jones 10 Blake 30 Clark 20 Adams 30 PNO, P1 P4 P5 P1 P2 P2 QTY) 300 200 100 300 400 200 CITY) London Paris Paris London Athens
R2(B1,A2) b1 1 b2 1 b3 2 b4 3
θ
S
(A1,R1.A2,B1,R2.A2) R1 R2 = a2 2 b1 1 R1.A2 R2.A2 a2 2 b2 1 a4 2 b1 1 a4 2 b2 18
自然连接:自然连接是两个关系在同名属性上进 行等值连接的运算。记为:R S 例 R (A , a1 a2 a2 a3 B) 1 1 2 1 R S (B , C ) 1 b1 1 b2 2 b2
(W)
17
结论: (1)结果相同;(等价!)
(2)计算过程开销不同。(执行效率!)
(2)找出至少供应了一种红色零件的供应商名。
TS(SNO,SNAME) := TSP(SNO,PNO) :=
SNO,SNAME SNO,PNO
(S)
TSP
(SP)
W(SNO,PNO,SNAME) := TS
供应商
供应商供应 零件情况
10
б
=
S1 S1 S1
SNO =‘S1’(S
SP)
20 20 20 London London London P1 P4 P5 300 200 100
(SNO,SNAME, STATUS, CITY, PNO,QTY) Smith Smith Smith
11
(ii)S(A1, ,An)(R): 把关系R的名字命名为S, 并且把S的属性依次命名为A1, ,An
例1 列出各课程先修课的先修课。 COURSE(Cno, Cname, Pcno)
4. 命名运算 (i)s(R):把关系R名字命名为S。(属性名不变)
c1 c2 c3 c4
c5
math prog ds os
db
c1 c2 c3
c3
12
COURSE(Cno, Cname, Pcno) COURSE(Cno, Cname, Pcno)
R×S:
5
2. 一元运算 (1)选择:从一个关系R中选出满足条件表达式F 的元组,构成一个新关系,记为F(R)。 例 S(SNO, SNAME, STATUS, CITY) 供应商
S1 S2 S3 S4 S5 Smith Jones Blake Clark Adams 20 10 30 20 30 London Paris Paris London Athens
б
status > 20(S)=
( SNO, SNAME, STATUS, CITY ) S3 Blake 30 Paris S5 Adams 30 Athens
6
(2)投影(Projection) 投影运算从一个关系R中选出属性(组)A,构 成一个新关系,记为П A(R)。 ( SNO, SNAME ) 例 ПSNO,SNAME(S)=
4
(5)笛卡尔乘积运算
两个属性个数分别是m 、n,元组个数分别为k1、 k2的关系R和S,它们的笛卡尔乘积是一个关系, 该关系属性个数(度/元)为m + n、元组个数为 k1·k2,记为R×S
例 R(A,B,C) a 1 c b 2 f S (A, BB) aa 11 bb 22
(R.A, B, C, S.A, BB) a a b b 1 1 2 2 c c f f aa bb aa bb 11 22 11 22
第四章
关系代数运算
关系数据模型的运算基础:
集合:(e1,e2,e3)
包:(e1,e2,e3,e2)
§1 关系代数运算 一、关系代数运算的特点
1.抽象的关系操作语言。
2.运算对象和运算结果都是关系。
1
二、关系代数运算的分类 1. 二元集合运算: 并(UNION; ) 差(DIFFERENCE; ) 交(INTERSECTION; ) 笛卡尔乘积(CARTESIAN PRODUCT; ) 2. 一元运算: 选择(SELECT; )
TR(PNO,COLOR) :=
б
COLOR=‘red’
(
PNO,COLOR
(P))
TW(SNO,PNO,SNAME,COLOR) := TR
W
Answer(SNAME) :=
SNAME(TW)
18
(3)找出没有供应过零件P2的供应商名。 解: (i)供应过零件P2的供应商号: S1(SNO) := SNO(бPNO =‘p2’(SP))
(4)交运算:记作R∩S
3
例 设并兼容的关系R、S如下: R(A, a d c B,C) 1 c 4 f 3 d S(A,B,C) b 2 a d 4 f
(A,B,C)
R∪S: (A,B,C) a 1 c b 2 a c 3 d d 4 f
R∩S:
d
4
f
(A, B,C) R-S: a 1 c c 3 d
解决方案:
c1 c2 c3 c4
c5
math prog ds os
db
自然连接? c2 c1 (-连接?)
c2 c3
c3 c3
c1
math prog ds c1 c2
c4 c5
os db
c3 c3
П Cno,Pcno(COURSE) C2( Pcno,PPcno )(П Cno,Pcno(COURSE) )
(ii)当前数据库所“掌握”的供应商号: S2(SNO) :=
SNO (S)
(iii)没有供应过零件P2的供应商号及名字:
TNM(SNO, SNM) := SNO, SNAME(S)
W(SNO,SNM) := TNM (S2 – S1)
19
Answer(SNAME) := SNM(W)
熟练掌握:关系代数运算,并能够用关系代数表 达式表示查询请求。
S1 S2 S3 S4 S5 Smith Jones Blake Clark Adams
例 П CITY(б
(status > 10)∧(SNO < ‘S6’)(S) )
( CITY ) = London Paris Athens
7
3.连接运算 一般连接,即θ -连接。记为:R 例 R1(A1,A2) a1 1 a2 2 a3 1 a4 2
了解:关系代数查询的执行效率问题。
20
课堂练习
(i)P129:习题 5.2.1 (a)、(f)、(h) 注意:(1)采用“线性”形式解答。 (2)不必给出查询结果的具体数据!
(ii)P130:习题 5.2.7
(iii)P131:习题 5.2.9(a)
21
13
例2
命名:“供应商供应零件的详细情况”
SNO =‘S1’(S
S_SP(A1,A2,A3,A4,A5,A6)(б
S_SP(A1, = S1 S1 S1
SP))
A6) 300 200 100
A2, A3, A4, Smith 20 London Smith 20 London Smith 20 London
A5, P1 P4 P5
四、关系代数运算结果的保存 线性符号规则:
BK-p11
(1)每一步运算结果赋予一个命名的关系模式。
(2)最后一步的运算结果必须赋予关系Answer。 14 (3)每一步可以进行一个或几个运算。
例 如前例2: “供应商S1供应零件的详细情 况” W(SN,NM,ST,CT,PN,Q) := S SP
Answer(SNO,SNAME,STATUS,CITY,PNO,QTY)
:=
б
SNO =‘S1’
(W)
15
§2 关Hale Waihona Puke Baidu代数运算举例 例1 本例以“供应商-零件”实例为背景。
其中,关系 P( PNO, P1 P2 P3 P4 P5 P6
P(代表“零件”)如下: PNAME, COLOR, WEIGHT ) Nut Red 12 Bolt Green 17 Screw Blue 17 Screw Red 14 Cam Blue 12 Cog Red 19
投影 (PROJECTION; 3. 连接运算:(JOIN; 4. 命名运算(一元运算;
П
、
)
θ
)
2
)
三、关系代数运算 1.二元运算
(1)并兼容的关系:
若两个关系的属性个数相同,且对应属性的 域也相同,则称这两个关系是并兼容的。
(2)并运算:记作 R∪S 关系R和S必须 是并兼容的!
(3)差运算:记作R-S
16
(1)找出供应零件P2的供应商名。
W(SN,NM,ST,CT,PN,Q) := S R(SN,NM,ST,CT,PN,Q) :=
Answer(SNAME) := 试比较:
NM
SP
PN=‘P2’
б
(R)
(W)
R(SNO,PN,Q) :=
б
PNO=‘P2’
(SP)
R
W(SN,NM,ST,CT,PN,Q) := S Answer(SNAME) :=
( A, S= a1 a1 a2 a2 a2 a3 a3
B, 1 1 1 1 2 1 1
C ) b1 b2 b1 b2 b2 b1 b2
9
例
“供应商-零件”数据库:
设:S(SNO, S1 S2 S3 S4 S5 SP(SNO, S1 S1 S1 S2 S2 S3 SNAME, STATUS, Smith 20 Jones 10 Blake 30 Clark 20 Adams 30 PNO, P1 P4 P5 P1 P2 P2 QTY) 300 200 100 300 400 200 CITY) London Paris Paris London Athens
R2(B1,A2) b1 1 b2 1 b3 2 b4 3
θ
S
(A1,R1.A2,B1,R2.A2) R1 R2 = a2 2 b1 1 R1.A2 R2.A2 a2 2 b2 1 a4 2 b1 1 a4 2 b2 18
自然连接:自然连接是两个关系在同名属性上进 行等值连接的运算。记为:R S 例 R (A , a1 a2 a2 a3 B) 1 1 2 1 R S (B , C ) 1 b1 1 b2 2 b2