第二章关系数据库2

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

• R×S
– 列:(m + n)列的元组的集合
• 元组的前m列是关系R的一个元组 • 后n列是关系S的一个元组
– 行:k1×k2个元组
• R×S = {tr ts |tr R ∧ tsS }
其中tr ts 为(a1,a2,…..,am, bm+1,bm+2,…,bm+n) 20 元组的连串
R
S
a1 a1
a2 a1 a1 a2
b2 c1 b2 c2 b3 c2 b2 c1
a1 a1
a2
b2 c2 b3 c2 b2 23 c1
广义笛卡尔积 (续)
24
2.4.2 专门的关系运算
• • • • 选择 投影 连接 除
25
1.选择(Selection)
从关系R中选择满足给定条件F的元组t,组 成新的关系。 F(R)={ t | t ∈R ∧ F(t)为‘真’} F是筛选关系R中元组的条件表达式. 可以表示为: X1 Y1 φ X2 Y2 X,Y是属性名或常量,也可以是简单函数. • 属性名也可以用其属性序号表示.
S ∪ {‘06005’,’李明’, ‘男’,18, }
47
(3)将学生04002学习的1号课程的成绩改为92. (SP {‘04002’,’ 1’,
SC C
}) ∪{‘04002’,’ 1’,92}
S
(4)给出学习‚数据库‛课程的学生姓名
(S SNAME ( Cname=‘数据库’ 优化: SNAME((S) SC C) )
S ’ b2 S
b2
R
a2
a1
b2
b2
c3
c1
R÷ S
a1
46
2.4.3关系代数应用举例 (1)给出学习2号课程的学生名
SNAME ( CNO=‘2’ (S
另:SNAME (CNO=‘2’(SC)
SC) ) S)
(2) 将新的学生记录 {‘06005’,’李明’, ‘男 ’,18 } 插入到关系S中.
RXS
21
例:求R X S R(A B a b d e e b
C) c f d
S(D E) b g d e
R X S (A B C D E) a b c b g a b c d e d e f b g d e f d e e b d b g e b d d e
22
广义笛卡尔积 (续)
A R a1 a1 a2 A S a1 a1 a2 B b1 b2 b2 B b2 b3 b2 C c1 c2 c1 C c2 c2 c1
差(续)
A a1 a1 a2 A a1 a1 a2 B b1 b2 b2 B b2 b3 b2 C c1 c2 c1 C c2 c2 c1
R
R-S
A a1
B b1
C c1
S
14
15
3. 交(Intersection)
• 关系R和关系S
– 具有相同的目n – 相应的属性取自同一个域
• R∩S
– 仍为n目关系,由既属于R又属于S的元组组 成 R∩S = { t|t R∧t S } R∩S = R –(R-S) 16
C) f f e R∩S (A B C) a d f b d e
R∪S (A B C) a c e a d f b d e a g f
RS (A B C) a c e
19
4. 广义笛卡尔积(Extended Cartesian Product)
• R • S
– m 目关系,k1个元组
– n目关系,k2个元组
5
概述(续)
– 集合运算符
• 将关系看成元组的集合 • 运算是从关系的‚水平‛方向即行的角度来进行
– 专门的关系运算符
• 不仅涉及行而且涉及列
– 算术比较符
• 辅助专门的关系运算符进行操作
– 逻辑运算符
• 辅助专门的关系运算符进行操作
6
关系代数运算符
运算符 集合 运算 符 ∪ ∩ × 含义 并 差 交 广义笛卡 尔积 运算符 比 较 运 算 符 > ≥ < ≤ = ≠ 含义 大于 大于等于 小于 小于等于 等于 不等于
IS
4 5
学 号
课程号 Cno 1 2 3 2
成 绩 Grade 92 85 88 90 6
SC
Sno 04001 04001 04001 04002
7
C 语言
6
4
04002
3
80
28
选择(续)
[例1] 查询年龄小于20岁的学生

σSage < 20(Student) σ4 < 20(Student)
– 具有相同的目n(即两个关系都有n个属性) – 相应的属性取自同一个域
• R∪S
– 仍为n目关系,由属于R或属于S的元组组成 R∪S = { t|t R∨t S }
10
并(续)
A a1 a1 a2 A a1 a1 a2 B b1 b2 b2 B b2 b3 b2 C c1 c2 c1 C c2 c2 c1
Sno 95002 95003 95004 Sname 刘晨 王敏 张立 Ssex 女 女 男 Sage 19 18 19 Sdept IS MA IS
29
结果:
选择(续)
[例2] 查询信息系(IS)并且年龄为19岁全体学 生 σSdept = ‘IS’ ∧Sage=19 (Student) 或 σ5 =‘IS’ ∧ 4=19 (Student) 结果:
[例3] 查询学生的姓名和所在系
即求Student关系上学生姓名和所在系两个 属性上的投影 Sname Sdept πSname,Sdept(Student) 或 π2,5(Student) CS 李勇 结果: 刘晨 王敏
张立
IS MA
IS32
投影(续)
[例4] 查询学生关系Student中都有哪些系 πSdept(Student) 结果:
专门 的关 系 运算 符
σ π ÷
选择 投影 连接 除
逻 辑 运 算 符
∧ ∨
非 与 或
7
4.关系代数运算的分类
传统的集合运算
并、差、交、广义笛卡尔积
专门的关系运算
选择、投影、连接、除
8
2.4.1 传统的集合运算
• • • • 并 差 交 广义笛卡尔积
9
1. 并(Union)
• 关系R和关系S
–自然连接与等值连接的不同
36
例:R(A 1 4 7
B 2 5 8
C ) S(B D) 3 2 7 6 8 1 9
R
S (A B C D ) 1 2 3 7 7 8 9 1
37
连接(续)
• 举例 [例] R C<ES R
R.B=S.B
A a1 a1
B b1 b2
C 5 6
B
E
b1
b2 b3 b3 b5
Sno Sname 刘晨 Ssex 女 Sage 19 Sdept IS 95002
95004
张立

19
IS
30
2.6.2 投影
• 从关系中选择出若干属性列组成一个新的 关系.投影的结果将消除重复的元组.
πA (R) = { t[A] | t ∈ R}
• 投影操作主要是从列的角度进行运算
π
31
投影(续)
交 (续)
R
A a1 a1 a2 A a1 a1 a2
B b1 b2 b2 B b2 b3 b2
C c1 c2 c1 C c2 c2 c1
R∩S
A a1 a2
B b2 b2
C c2 c1
S
17
18
例: 求关系R与S的并,交,差 R(A B C) S(A B a c e a d a d f a g b d e b d
R. A
A
R. B
B
R. C
C
S.A
A
S.B
B S.C C
b2 b3 c2 c2
a1 b1 c1 a1 b1 c1 a1 b1 c1 a1 b1 c1 a1 b1 c1 a1 b1 c1 R × S a1 b2 c2 a1 b2 c2 a1 b2 c2 a1 b2 c2 a1 b2 c2 a1 b2 c2 a2 b2 c1 a2 b2 c1 a2 b2 c1 a2 b2 c1 a2 b2 c1 a2 b2 c1
3
7 10 2 2
a2
a2
b3
b4
8
12
S
R
R
S
S
38
连接(续)
R C<ES
A a1 R.B b1 C 5 S.B b2 E 7
a1
a1 a1 a2
b1
b2 b2 b3
5
6 6 8
b3
b2 b3 b3
10
7 10 10
39
连接(续)
R
A
S
R.B=S.B
R.B
C
S.B
E
a1
a1 a2
b1
b2 b3
SNO((SC) (CNOCname=‘数据库’(C) ) ) )
48
(5)给出供应全部课程的学生名. SNAME(( SNO,CNO(SC) CNO (C)) S)
SNAME(( SNO,CNO(SC) CNO (SC))
S)
49
(6)给出选修了04002学习的全部课程的学生名.
R S={tr[Y] | tr∈R ∧ Y(S) ⊆YX}
44
• 除操作是同时从行和列角度进行运算 • 例:在选课关系R中同时选修C101和C104两 门课的学号.
45
除(续)
A a1 a2 a3 a1 a4 B b1 b3 b4 b2 b6 C c2 c7 c6 c3 c6 B b1 C c2 c1 c3 D d1 d1 d2 A
R
A
R∪S
B b1 b2 b3 b2
C c1 c2 c2 c1
S
a1 a1 a1 a2
11
12
2. 差(Difference)
• 关系R和关系S
– 具有相同的目n – 相应的属性取自同一个域
• R-S
– 仍为n目关系,由属于R而不属于S的所有元 组组成 R -S = { t|tR∧tS }
13
结果:R(X ,Y) S(Y)={x1}
43
像集:设有关系R(X,Y),其中X,Y是属性组,当 X=x时, 在R中的像集为:
YX=x={tr[Y] | tr ∈R ∧ trX=x} 除法定义: 设关系R(X,Y)与S(Y).其中X,Y是属性组. R S 的结果是: R中在X上的分量值x的像集包含S在Y上的投 影的集合的元组在X上的投影.
Sdept CS
IS MA
33
3.连接(Join)
(1) 连接:从两个关系的广义笛卡尔积中选取给定 属性间满足表达式的元组. R S = {tr ts | tr ∈ R ∧ ts ∈ S ∧tr[A] ts[B] }
R.A S.B
A,B为关系R,S上度数相等且可比的属性列. 为‚=”时称为等值连接.
5
6 8
b1
b2 b3
3
7 10
a2
b3
8
b3
2
40
连接(续)
R S
A
a1 a1 a2 a2
B
b1 b2 b3 b3
C
5 6 8 8
E
3 7 1Leabharlann Baidu 2
41
42
4.除(Division) 要求:被除关系形如R(X,Y),除关系形如S(Y) 例:R( X Y ) S(Y) x1->{y1,y3,y5} x1 y1 y1 x2->{y2} x2 y2 y3 x3->{y4} x1 y3 x3 y4 x1 y5
可以将 连接运算转化为: R S= R.A S.B (R X S)
R.A S.B
34
例:R(A 1 4 7
R×S A B 1 2 1 2 4 5 4 5 7 8 7 8
B 2 5 8
C 3 3 6 6 9 9
C) 3 6 9
D 3 6 3 6 3 6 E 1 2 1 2 1 2
S(D E) 3 1 6 2
R
S (A B<D 1 1 4
B 2 2 5
C D E) 3 3 1 3 6 2 6 6 2
35
连接(续)
2)自然连接
– 自然连接是一种特殊的等值连接
• 两个关系中进行比较的分量必须是相同的属性组 • 在结果中把重复的属性列去掉
– 自然连接的含义
R 和 S 具有相同的属性组B
R
S = { rs[B] | rR sS r[B]=S[B] }
第二章 关系数据库(续)
1
2.4 关系代数
• 概述 • 传统的集合运算
• 专门的关系运算
2
概述
1. 关系代数 2. 关系代数运算的三个要素 4. 关系代数运算的分类
3
概述
1.关系代数 一种抽象的关系数据语言
用对关系的运算来表达对数据库的操作
4
概述(续)
2.关系代数运算的三个要素
运算对象:关系 运算结果:关系 运算符:四类
• θ:比较运算符(>,≥,<,≤,=或<>)
• φ:逻辑运算符(∧或∨)
26
选择(续)
• 选择运算是从行的角度进行的运算
σ
• 举例
设有一个学生-课程数据库,包括学生关系 Student、课程关系Course和选修关系SC。
27
Student
学 号 Sno 04001 04002 姓 名
Sname
Course
性 别 年 龄
所在系
Ssex 男 女
Sage 20 19
Sdept CS IS
李勇 刘晨
课程 号 Cno 1 2
课程名 Cname 数据库 数学 信息系统 操作系统 数据结构 计算机导论
先行课 Cpno 5
学分 Ccredi t 4 2
04003
04004
王敏
张立


18
19
MA
3 1 6 7 4 3 4 2
相关文档
最新文档