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