数据库关系运算
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• R×S = {tr ts |tr R ∧ tsS }
广义笛卡尔积 (续)
A a 1 a 1 A a a 2 1 a B b 1 b 2 B b b 2 2 b C c 1 c 2 C c 1 2 c A B C A B C
a1 b1 a1 b1 a1 b1
R×S
R
c1 a1 c1 a1 c1 a2 c2 a1
Sdept
结果:
CS IS MA
3. 连接(Join)
• 1)连接也称为θ连接 • 2)连接运算的含义
– 从两个关系的笛卡尔积中选取属性间满足一 定条件的元组
R
AθB
S = { tr ts
| tr R∧ts S∧tr[A]θts[B] }
• A和B : 分别为R和S上度数相等且可比的属性 组 • θ:比较运算符
连接(续)
• 4)一般的连接操作是从行的角度进行 运算。
R
S
AθB
自然连接还需要取消重复列,所以 是同时从行和列的角度进行运算。
连接(等值)
• 5)举例 [例5]
A a1 a1 a2 a2 B b1 b2 b3 b4 C 5 6 8 12
B
b1 b2 b3
E
3 7 10
A a1 a1 a2 a2
(c)
Grade
92 85 88 90 80
例7 例9
SC
选择(续)
[例1] 查询信息系(IS系)全体学生 σSdept = 'IS' (Student) 或 σ5 ='IS' (Student) 结果:
Sno 95002 95004 Sname 刘晨 张立 Ssex 女 男 Sage 19 19 Sdept IS IS
传统的集合运算
• • • • 并 差 交 广义笛卡尔积
1. 并(Union)
• R和S
– 具有相同的目n(即两个关系都有n个属性) – 相应的属性取自同一个域
• R∪S
– 仍为n目关系,由属于R或属于S的元组组成 R∪S = { t|t R∨t S }
并(续)
A a1 a1 a2 A a1 a1 a2 B b1 b2 b2 B b2 b3 b2 C c1 c2 c1 C c2 c2 c1
选择(续)
[例2] 查询年龄小于20岁的学生
或
σSage < 20(Student) σ4 < 20(Student)
Sno 95002 95003 Sname 刘晨 王敏 Ssex 女 女 Sage 19 18 Sdept IS MA
结果:
95004
张立
男
19
IS
2. 投影(Projection)
• 1)投影运算符的含义
– 从R中选择出若干属性列组成新的关系 πA(R) = { t[A] | t R }
A:R中的属性列
2. 投影(Projection)
• 2)投影操作主要是从列的角度进 行运算
π
– 但投影之后不仅取消了原关系中的某些列,而 且还可能取消某些元组(避免重复行)
投影(续)
• 3) 举例 [例3] 查询学生的姓名和所在系
R.B b1 b2 b3 b3
C 5 6 8 8
S.B b1 b2 b3 b3
E 3 7 10 2
Biblioteka Baidub3
b5
2
2
R
S
连接(续)
自然连接 R
B
b1
A a1 a1 a2 a2 B b1 b2 b3 b4 C 5 6 8 12
S
E
3 7 10 a2 b3 b3 8 8 10 2
A
a1 a1
B
b1 b2
C
5 6
R
R∪S
S
A a1 a1 a1 a2
B b1 b2 b3 b2
C c1 c2 c2 c1
2. 差(Difference)
• R和S
– 具有相同的目n – 相应的属性取自同一个域
R-S
– 仍为n目关系,由属于R而不属于S的所有元组 组成
R -S = { t|tR∧tS }
差(续)
A a1 a1 a2 A a1 a1 a2 B b1 b2 b2 B b2 b3 b2 C c1 c2 c1 C c2 c2 c1
即求Student关系上学生姓名和所在系两个属性 上的投影 πSname,Sdept(Student) 或 π2,5(Student)
结果:
投影(续)
Sname 李勇 Sdept
CS
刘晨
王敏
IS
MA
张立
IS
投影(续)
[例4] 查询学生关系Student中都有 哪些系 πSdept(Student)
b2 c2 b3 c2 b2 c1 b2 c2 b3 c2 b2 c1 b2 c2 b3 c2 b2 c1
a1 b2
a1 b2
a1 b2 a2 b2 a2 b2 a2 b2
c2 a1
c2 a2 c1 a1 c1 a1 c1 a2
S
关系代数
• 概述
• 传统的集合运算 • 专门的关系运算
专门的关系运算
• • • • 选择 投影 连接 除
1. 选择(Selection)
• 1) 选择又称为限制(Restriction) • 2) 选择运算符的含义
– 在关系R中选择满足给定条件的诸元组 σF(R) = {t|tR∧F(t)= '真'} – F:选择条件,是一个逻辑表达式,基本形式为: [( ] X1θY1 [ )][φ [( ] X2θY2 [ )]]…
R
R-S
A B C a1 b1 c1
S
3. 交(Intersection)
• R和S
– 具有相同的目n – 相应的属性取自同一个域
• R∩S
– 仍为n目关系,由既属于R又属于S的元组组 成 R∩S = { t|t R∧t S } R∩S = R –(R-S)
交 (续)
A a1 a1 a2 A a1 a1 a2 B b1 b2 b2 B b2 b3 b2 C c1 c2 c1 C c2 c2 c1
• θ:比较运算符(>,≥,<,≤,=或<>) • X1,Y1等:属性名、常量、简单函数;属性名也可以用它 的序号来代替; • φ:逻辑运算符(∧或∨) • [ ]:表示任选项 • …:表示上述格式可以重复下去
选择(续)
• 3) 选择运算是从行的角度进行的 运算 σ
• 4) 举例
设有一个学生-课程数据库,包括学生关系 Student、课程关系Course和选修关系SC。
R
R∩S
A B C a1 b2 c2 a2 b2 c1
S
4. 广义笛卡尔积(Extended Cartesian Product)
•R
•S
– n目关系,k1个元组 – m目关系,k2个元组
• R×S
– 列:(n+m)列的元组的集合
• 元组的前n列是关系R的一个元组 • 后m列是关系S的一个元组
– 行:k1×k2个元组
选择(续)
学 号 Sno 姓 名 Sname 性 别 Ssex 年 龄 Sage 所在 系 Sdept CS
95001
95002 95003 95004
李勇
刘晨 王敏 张立
男
女 女 男 (a)
20
19 18 19
Student
IS MA IS
例1
例2
例3
例4
例9
选择(续)
课程号
Cno 1 2 3 4 5 6
课程名
Cname 数据库 数学 信息系统 操作系统 数据结构 数据处理
先行课
Cpno 5 1 6 7
学分
Ccredit 4 2 4 3 4 2
Course
7
PASCAL语言
(b)
6
4
例9
选择(续)
学 号 课程号 成 绩
Sno
95001 95001 95001 95002 95002
Cno
1 2 3 2 3
E
3 7
b2 b3
b3
b5
2
2 a2
除(续)
• 2)除操作是同时从行和列角度进 行运算
R
÷
S
除(续)
A a1 a2 B b1 b3 C c2 c7
B b1
C c2
c1 c3
D d1
d1 d2
S
b2 b2
R
a3
a1 a4 a2 a1
b4
b2 b6 b2 b2
c6
c3 c6 c3 c1
R÷S
A a1
连接(续)
– 自然连接(Natural join)
• 什么是自然连接 – 自然连接是一种特殊的等值连接 • 两个关系中进行比较的分量必须是相同 的属性组 • 在结果中把重复的属性列去掉 • 自然连接的含义 R和S具有相同的属性组B
R S = { tr ts | tr R∧ts S∧tr[B] = ts[B] }
– 连接运算从R和S的广义笛卡尔积R×S中 选取(R关系)在A属性组上的值与(S关 系)在B属性组上值满足比较关系的元组。
连接(续)
• 3)两类常用连接运算
– 等值连接(equijoin)
• 什么是等值连接 – θ为“=”的连接运算称为等值连接 • 等值连接的含义 – 从关系R与S的广义笛卡尔积中选取A、B属 性值相等的那些元组,即等值连接为: t t RA=BS = { r s | tr R∧ts S∧tr[A] = ts[B] }