第4讲 关系运算
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编 号 03004 03004 03002 姓 名 韩 韩 东 东 系 名 选 课
计算机系 计算机系 计算机系
VFP数据库 数 据 结 构 C 语 言 33
宋江明
注意
自然连接和等值连接很相象,但它
们不同,自然连接要去掉重复的属性, 而等值连接却不需要去掉重复的属性。
关系代数:除 表示记号:象集Zx
R
a1 a1
a2
b2
c1
R∩S
A B b2 b3 C c2 c2
a2
S
a1 a1
a2
b2
c1
10
交(Intersection)
给定关系R和关系S,具有相同的关系模式: (姓名N,身高H,体重W)
N H 170 180 170 W 75 78 75 N H 180 W 78
关系R
C L Z
R∩S
• 给定一个关系R(X,Z),X和Z为属性组 当t[X]=x时,x在R中的象集(Images Set)为:
Zx={t[Z]|t R,t[X]=x}
32
连接举例:
学生情况student
编 号 03004 03002 姓 韩 名 东 系 名 编号 03004 03004 03002
选课情况xk
选课 VFP数据库 数 据 结 构 C 语 言
计算机系 计算机系
宋江明
Select student.编号,student.姓名,student.系名,xk. 选课 from student,xk where student.编号=xk.编号
计 算 机系 计 算 机系
系 名 计算机系 计算机系 计算机系 计算机系
姓名 韩东 刘玲 王冬 姜 瑞 青 翁 超 雷 田 茉 莉 宋 江 明 邵林文贺
姓 名 韩东 王冬 宋江明 邵林文贺
性别 男 女 男 男 男 女 男 女
性别 男 男 男 女
出生年月 1979.10 1979.08 1978.08 1981.06 1980.08 1976.09 1981.01 1979.05
N
H 170 180 170
W 75 78 75 N H 170 170 W 75 75
关系R
C L Z
R-S
C Z
N
H 175
W 80
关系S
M
L
180
78
13
关系的笛卡尔积
笛卡尔积 设R和S是两个关系,如果R是m元关系、有k个元组, S是n元关系、有l个元组,则广义笛卡尔积R×S是 一个m+n元关系、有k×l个元组。广义笛卡儿积可 以记作:
R S {rs | r R, s S}
关系的广义笛卡尔积对应于两个关系元组横向合并的 操作,是关系代数的基本操作
A a d c
B b e d
C C f e
A b a
B g b
C a c
关系R
关系S
笛卡儿积举例 1:
域
域
迪卡尔积
16
笛卡儿积举例 2:
给出三个域:
D1=导师 ={ 张清玫,刘逸 } D2=专业={计算机专业,信息专业} D3=研究生={李勇,刘晨,王敏}
29
等值连接(equijoin)
(不等值连接 )
–从关系 R 与 S 的广义笛卡尔积中选取 A 、 B属性值相等的那些元组,即等值连接 为:
R S
A=B
自然连接(Natural join)
两个关系中进行比较的分量必须是相同的属性组 ,并在结果中把重复的属性列去掉
R和S具有相同的属性组B
R
S
30
关系代数是关系操作的理论基础,是关系数据操作的传统 方式, 关系代数是实现关系操作的一种方法,是理解关系操作的 基础。 关系代数是一种抽象的查询语言,是关系数据操作语言的 一种传统表达方式,它是用对关系的运算来表达查询的。
关系代数的运算对象是关系(或表), 运算结果也是关系(或表)。
1. 关系代数的运算及运算符
π
26
投影举例:
Student Sno Sname Ssex 95001 95002 95003 95004 李勇 刘琛 王敏 章立 男 女 女 男 Sage 20 19 18 19 Sdept 计算机 计算机 信息 机械
a. 查询学生姓名和所在系: πSname, Sdept(Student)
Sname 李勇 刘琛 王敏 章立 Sdept 计算机 计算机 信息 机械
C S.B
5 5 6 6 8 E 3 7 b2 b3 b2 b3 b3
E
7 10 7 10 10
A
a1 a1 a2 a2
R.B
b1 b2 b3 b3
E
3 7 10 2
b3 10 b3 b5 2 2 A a1 a1
a2 b4 12
自然连接
R
Leabharlann Baidu
S
a2
a2
b3
b3
8
8
10
2 31
同学们自己理解: 连接举例:等值连接
选择举例:
Select * from student where 系名="计算机系"
编号 03004 02001 03001 04001 05001 05002 03002 03003
编号 03004 03001 03002 03003
系名 计算机系 外 语 系 计算机系 数学系
电子工程系 电子工程系
S
No 95001 95002 95003 95004 Name 李勇 刘琛 王敏 章立 Dept 计算机 计算机 信息 机械
G
No Course 95001 数据库 95001 编译原理 95002 数据库 95002 编译原理 Grade 92 78 90 82
S G S.No=G.No
S.No 95001 95001 95002 95002 Name 李勇 李勇 刘琛 刘琛 Dept 计算机 计算机 计算机 计算机 G.No 95001 95001 95002 95002 Course 数据库 编译原理 数据库 编译原理 Grade 92 78 90 82
4.选择
在关系中选择满足给定条件F的诸元组,选择 又称为限制(Restriction),记作:σF(R) 选择运算是从行的角度进行的运算。
σ
22
选择举例:
Student Sno 95001
95002
Sname 李勇
刘琛
Ssex 男
女
Sage 20
19
Sdept 计算机
计算机
95003
95004
出生年月 1979.10 1978.08 1981.01 1979.05
24
选择运算举例:
订购单关系
从订购单关系中选择职工 号为“E3”的元组构成新的关系
σ职工号="E3"(订购单)
关系运算
5.投影
从关系中选择出若干属性列组成新的关系,记 作: π属性1,属性2,……属性n(R) 投影操作主要是从列的角度进行运算。
传统的集合运算 并运算( ∪) 交运算(∩) 差运算(-) 广义笛卡尔(×)
专门的关系运算 选择运算( σ ) 投影运算( π ) 连接运算(∞) 除运算(÷)
3) 算术比较符:θ ={ >,≥,<,≤,=,≠或<> } 4) 逻辑运算符: (非),∧(与),∨(或)
练习
设R(A,B,C)={(a1,b1,c1),(a2,b2,c1),(a3,b2,c3)} S(A,B,C)={(a2,b2,c2),(a3,b3,c4),(a1,b1,c1)} 计算RUS,R ∩ S,R-S, R S
专门的关系运算
选择运算(Select)
投影运算(Project)
L
N
H 175
W 80
关系S
M
L
180
78
11
差(Difference)
R-S包含了所有属于R但不属于S的元组
A B
b1 b2 b2
C
c1 c2 c1 A B C
R
a1 a1 a2
R-S
A B
b2 b3 b2
a1
b1
c1
C
c2 c2 c1
12
S
a1 a1 a2
差(Difference)
给定关系R和关系S,具有相同的关系模式: (姓名N,身高H,体重W)
∟
并交差运算
1.并 记作R∪S。 R∪S既包含R中的元组,也包含S中的元 组。 2.交 记作R∩S。R∩S包含了所有同属于R、S的元组。 3.差 记作R-S。R-S包含了所有属于R但不属于S的元组。
注:
1:参加运算的R与S两个表必须包含有相同的属性个数, 且对应的属性域要相同。 2:并不要求R与S表的属性名必须完全相同。 3:运算的结果关系要与R关系模式一样。 7
并(Union)
R∪S既包含R中的元组,也包含S中的元组。
A B b1 b2 C c1 c2 A a1 B b1 C c1
R
a1 a1
a2
b2
c1
R∪S
A B C
a1
a1 a2
b2
b3 b2
c2
c2 c1
S
a1
a1 a2
b2
b3 b2
c2
c2 c1
8
并(Union)
给定关系R和关系S,具有相同的关系模式: (姓名N,身高H,体重W)
姓 名 韩 东 刘 玲 王 冬 姜瑞青 翁超雷 田茉莉 宋江明 邵林文贺
系 名 计算机系 外语系 计算机系 数学系 电子工程系 电子工程系 计算机系 计算机系
性别 男 女 男 男 男 女 男 女
出生年月 1979.10 1979.08 1978.08 1981.06 1980.08 1976.09 1981.01 1979.05
N
H 170 180 170
W N H 170 180 170 175 W 75 78 75 80 75 78 75 C
关系R
C L Z
R∪S
L Z
N
H 175
W 80
M
关系S
M
L
180
78
9
交(Intersection)
R∩S包含了所有同属于R、S的元组
A B b1 b2 C c1 c2 A a1 B b2 b2 C c2 c1
姓 名 韩 东 刘 玲 王 冬 姜瑞青 翁超雷 田茉莉 宋江明 28 邵林文贺
Select 系名,姓名 from student
关系运算
6.连接 连接也称为θ连接,连接运算的含义:从两个关系的笛 卡尔积中选取满足一定条件的元组 记作:R F S,F表示连接条件,是一个R中和S中 的属性之间的比较表达式。
回顾
1. 逻辑模型:层次型、网状、关系型三种数据模型 2. ER模型到关系模型的转化
1
数据库原理与应用
第4讲 关系运算
本讲内容、重点、难点
重点 基本的关系运算:笛卡儿积、并、差、投影、选择。 难点 关系运算中的笛卡儿积、投影、选择、连接
3
1. 关系代数
• 关系的数学定义 • 关系运算
1.1 关系代数
连接运算例 .设有如图的关系R和关系S
R S 等值连接
R C<E S
E
3 7
R R.B=S.B S
C S.B
5 6 8 8 b1 b2 b3 b3
A B
a1 b1 a1 b2 a2 b3
C
5 6 8
B
b1 b2
A
a1 a1 a1 a1 a2 B b1 b2 C 5 6
R.B
b1 b1 b2 b2 b3
连接运算(Join)
除运算(Division)
专门关系运算
传统集合运算只是从行的角度进行,而要灵活
的实现关系数据库的数据维护、查询、统计等
多样操作,则须引入专门的关系运算。(不仅 涉及到行,而且涉及列) 选择运算( σ ) 投影运算( π ) 连接运算(∞) 除运算(÷)
关系运算
则D1,D2,D3的笛卡尔积为:D1×D2×D3 =
{(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨), (张清玫,计算机专业,王敏),(张清玫,信息专业,李勇), (张清玫,信息专业,刘晨),(张清玫,信息专业,王敏), (刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨), (刘逸,计算机专业,王敏),(刘逸,信息专业,李勇), (刘逸,信息专业,刘晨),(刘逸,信息专业,王敏) }
17
上例的运算结果: 导师
现实的数据是这 个表中的一部分
专业 研究生
张清枚
张清枚 张清枚 张清枚 张清枚 张清枚 刘逸 刘逸 刘逸 刘逸 刘逸 刘逸
计算机
计算机 计算机 机械 机械 机械 计算机 计算机 计算机 机械 机械 机械
李勇
刘琛 王敏 李勇 刘琛 王敏 李勇 刘琛 王敏 李勇 刘琛 王敏 18
b. 查询学生所在系: πSdept(Student)
Sdept 计算机 信息 机械 投影后不仅取消了 原关系中的某些列, 而且还可能取消某 些元组(避免重复 行) 27
投影举例
编 号 03004 02001 03001 04001 05001 05002 03002 03003
系 名 计算机系 外语系 计算机系 数学系 电子工程系 电子工程系 计算机系 计算机系
王敏
章立
女
男
18
19
信息
机械
a. 查询计算机系全体学生: b. 查询计算机系年龄小于20的学 σSdept=‘计算机’(Student) 生: σSdept=‘计算机’ ∧ Sage<20(Student) 或σ5=‘计算机’(Student) 或σ5=‘计算机’ ∧ 4<20(Student)
23
计算机系 计算机系 计算机系
VFP数据库 数 据 结 构 C 语 言 33
宋江明
注意
自然连接和等值连接很相象,但它
们不同,自然连接要去掉重复的属性, 而等值连接却不需要去掉重复的属性。
关系代数:除 表示记号:象集Zx
R
a1 a1
a2
b2
c1
R∩S
A B b2 b3 C c2 c2
a2
S
a1 a1
a2
b2
c1
10
交(Intersection)
给定关系R和关系S,具有相同的关系模式: (姓名N,身高H,体重W)
N H 170 180 170 W 75 78 75 N H 180 W 78
关系R
C L Z
R∩S
• 给定一个关系R(X,Z),X和Z为属性组 当t[X]=x时,x在R中的象集(Images Set)为:
Zx={t[Z]|t R,t[X]=x}
32
连接举例:
学生情况student
编 号 03004 03002 姓 韩 名 东 系 名 编号 03004 03004 03002
选课情况xk
选课 VFP数据库 数 据 结 构 C 语 言
计算机系 计算机系
宋江明
Select student.编号,student.姓名,student.系名,xk. 选课 from student,xk where student.编号=xk.编号
计 算 机系 计 算 机系
系 名 计算机系 计算机系 计算机系 计算机系
姓名 韩东 刘玲 王冬 姜 瑞 青 翁 超 雷 田 茉 莉 宋 江 明 邵林文贺
姓 名 韩东 王冬 宋江明 邵林文贺
性别 男 女 男 男 男 女 男 女
性别 男 男 男 女
出生年月 1979.10 1979.08 1978.08 1981.06 1980.08 1976.09 1981.01 1979.05
N
H 170 180 170
W 75 78 75 N H 170 170 W 75 75
关系R
C L Z
R-S
C Z
N
H 175
W 80
关系S
M
L
180
78
13
关系的笛卡尔积
笛卡尔积 设R和S是两个关系,如果R是m元关系、有k个元组, S是n元关系、有l个元组,则广义笛卡尔积R×S是 一个m+n元关系、有k×l个元组。广义笛卡儿积可 以记作:
R S {rs | r R, s S}
关系的广义笛卡尔积对应于两个关系元组横向合并的 操作,是关系代数的基本操作
A a d c
B b e d
C C f e
A b a
B g b
C a c
关系R
关系S
笛卡儿积举例 1:
域
域
迪卡尔积
16
笛卡儿积举例 2:
给出三个域:
D1=导师 ={ 张清玫,刘逸 } D2=专业={计算机专业,信息专业} D3=研究生={李勇,刘晨,王敏}
29
等值连接(equijoin)
(不等值连接 )
–从关系 R 与 S 的广义笛卡尔积中选取 A 、 B属性值相等的那些元组,即等值连接 为:
R S
A=B
自然连接(Natural join)
两个关系中进行比较的分量必须是相同的属性组 ,并在结果中把重复的属性列去掉
R和S具有相同的属性组B
R
S
30
关系代数是关系操作的理论基础,是关系数据操作的传统 方式, 关系代数是实现关系操作的一种方法,是理解关系操作的 基础。 关系代数是一种抽象的查询语言,是关系数据操作语言的 一种传统表达方式,它是用对关系的运算来表达查询的。
关系代数的运算对象是关系(或表), 运算结果也是关系(或表)。
1. 关系代数的运算及运算符
π
26
投影举例:
Student Sno Sname Ssex 95001 95002 95003 95004 李勇 刘琛 王敏 章立 男 女 女 男 Sage 20 19 18 19 Sdept 计算机 计算机 信息 机械
a. 查询学生姓名和所在系: πSname, Sdept(Student)
Sname 李勇 刘琛 王敏 章立 Sdept 计算机 计算机 信息 机械
C S.B
5 5 6 6 8 E 3 7 b2 b3 b2 b3 b3
E
7 10 7 10 10
A
a1 a1 a2 a2
R.B
b1 b2 b3 b3
E
3 7 10 2
b3 10 b3 b5 2 2 A a1 a1
a2 b4 12
自然连接
R
Leabharlann Baidu
S
a2
a2
b3
b3
8
8
10
2 31
同学们自己理解: 连接举例:等值连接
选择举例:
Select * from student where 系名="计算机系"
编号 03004 02001 03001 04001 05001 05002 03002 03003
编号 03004 03001 03002 03003
系名 计算机系 外 语 系 计算机系 数学系
电子工程系 电子工程系
S
No 95001 95002 95003 95004 Name 李勇 刘琛 王敏 章立 Dept 计算机 计算机 信息 机械
G
No Course 95001 数据库 95001 编译原理 95002 数据库 95002 编译原理 Grade 92 78 90 82
S G S.No=G.No
S.No 95001 95001 95002 95002 Name 李勇 李勇 刘琛 刘琛 Dept 计算机 计算机 计算机 计算机 G.No 95001 95001 95002 95002 Course 数据库 编译原理 数据库 编译原理 Grade 92 78 90 82
4.选择
在关系中选择满足给定条件F的诸元组,选择 又称为限制(Restriction),记作:σF(R) 选择运算是从行的角度进行的运算。
σ
22
选择举例:
Student Sno 95001
95002
Sname 李勇
刘琛
Ssex 男
女
Sage 20
19
Sdept 计算机
计算机
95003
95004
出生年月 1979.10 1978.08 1981.01 1979.05
24
选择运算举例:
订购单关系
从订购单关系中选择职工 号为“E3”的元组构成新的关系
σ职工号="E3"(订购单)
关系运算
5.投影
从关系中选择出若干属性列组成新的关系,记 作: π属性1,属性2,……属性n(R) 投影操作主要是从列的角度进行运算。
传统的集合运算 并运算( ∪) 交运算(∩) 差运算(-) 广义笛卡尔(×)
专门的关系运算 选择运算( σ ) 投影运算( π ) 连接运算(∞) 除运算(÷)
3) 算术比较符:θ ={ >,≥,<,≤,=,≠或<> } 4) 逻辑运算符: (非),∧(与),∨(或)
练习
设R(A,B,C)={(a1,b1,c1),(a2,b2,c1),(a3,b2,c3)} S(A,B,C)={(a2,b2,c2),(a3,b3,c4),(a1,b1,c1)} 计算RUS,R ∩ S,R-S, R S
专门的关系运算
选择运算(Select)
投影运算(Project)
L
N
H 175
W 80
关系S
M
L
180
78
11
差(Difference)
R-S包含了所有属于R但不属于S的元组
A B
b1 b2 b2
C
c1 c2 c1 A B C
R
a1 a1 a2
R-S
A B
b2 b3 b2
a1
b1
c1
C
c2 c2 c1
12
S
a1 a1 a2
差(Difference)
给定关系R和关系S,具有相同的关系模式: (姓名N,身高H,体重W)
∟
并交差运算
1.并 记作R∪S。 R∪S既包含R中的元组,也包含S中的元 组。 2.交 记作R∩S。R∩S包含了所有同属于R、S的元组。 3.差 记作R-S。R-S包含了所有属于R但不属于S的元组。
注:
1:参加运算的R与S两个表必须包含有相同的属性个数, 且对应的属性域要相同。 2:并不要求R与S表的属性名必须完全相同。 3:运算的结果关系要与R关系模式一样。 7
并(Union)
R∪S既包含R中的元组,也包含S中的元组。
A B b1 b2 C c1 c2 A a1 B b1 C c1
R
a1 a1
a2
b2
c1
R∪S
A B C
a1
a1 a2
b2
b3 b2
c2
c2 c1
S
a1
a1 a2
b2
b3 b2
c2
c2 c1
8
并(Union)
给定关系R和关系S,具有相同的关系模式: (姓名N,身高H,体重W)
姓 名 韩 东 刘 玲 王 冬 姜瑞青 翁超雷 田茉莉 宋江明 邵林文贺
系 名 计算机系 外语系 计算机系 数学系 电子工程系 电子工程系 计算机系 计算机系
性别 男 女 男 男 男 女 男 女
出生年月 1979.10 1979.08 1978.08 1981.06 1980.08 1976.09 1981.01 1979.05
N
H 170 180 170
W N H 170 180 170 175 W 75 78 75 80 75 78 75 C
关系R
C L Z
R∪S
L Z
N
H 175
W 80
M
关系S
M
L
180
78
9
交(Intersection)
R∩S包含了所有同属于R、S的元组
A B b1 b2 C c1 c2 A a1 B b2 b2 C c2 c1
姓 名 韩 东 刘 玲 王 冬 姜瑞青 翁超雷 田茉莉 宋江明 28 邵林文贺
Select 系名,姓名 from student
关系运算
6.连接 连接也称为θ连接,连接运算的含义:从两个关系的笛 卡尔积中选取满足一定条件的元组 记作:R F S,F表示连接条件,是一个R中和S中 的属性之间的比较表达式。
回顾
1. 逻辑模型:层次型、网状、关系型三种数据模型 2. ER模型到关系模型的转化
1
数据库原理与应用
第4讲 关系运算
本讲内容、重点、难点
重点 基本的关系运算:笛卡儿积、并、差、投影、选择。 难点 关系运算中的笛卡儿积、投影、选择、连接
3
1. 关系代数
• 关系的数学定义 • 关系运算
1.1 关系代数
连接运算例 .设有如图的关系R和关系S
R S 等值连接
R C<E S
E
3 7
R R.B=S.B S
C S.B
5 6 8 8 b1 b2 b3 b3
A B
a1 b1 a1 b2 a2 b3
C
5 6 8
B
b1 b2
A
a1 a1 a1 a1 a2 B b1 b2 C 5 6
R.B
b1 b1 b2 b2 b3
连接运算(Join)
除运算(Division)
专门关系运算
传统集合运算只是从行的角度进行,而要灵活
的实现关系数据库的数据维护、查询、统计等
多样操作,则须引入专门的关系运算。(不仅 涉及到行,而且涉及列) 选择运算( σ ) 投影运算( π ) 连接运算(∞) 除运算(÷)
关系运算
则D1,D2,D3的笛卡尔积为:D1×D2×D3 =
{(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨), (张清玫,计算机专业,王敏),(张清玫,信息专业,李勇), (张清玫,信息专业,刘晨),(张清玫,信息专业,王敏), (刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨), (刘逸,计算机专业,王敏),(刘逸,信息专业,李勇), (刘逸,信息专业,刘晨),(刘逸,信息专业,王敏) }
17
上例的运算结果: 导师
现实的数据是这 个表中的一部分
专业 研究生
张清枚
张清枚 张清枚 张清枚 张清枚 张清枚 刘逸 刘逸 刘逸 刘逸 刘逸 刘逸
计算机
计算机 计算机 机械 机械 机械 计算机 计算机 计算机 机械 机械 机械
李勇
刘琛 王敏 李勇 刘琛 王敏 李勇 刘琛 王敏 李勇 刘琛 王敏 18
b. 查询学生所在系: πSdept(Student)
Sdept 计算机 信息 机械 投影后不仅取消了 原关系中的某些列, 而且还可能取消某 些元组(避免重复 行) 27
投影举例
编 号 03004 02001 03001 04001 05001 05002 03002 03003
系 名 计算机系 外语系 计算机系 数学系 电子工程系 电子工程系 计算机系 计算机系
王敏
章立
女
男
18
19
信息
机械
a. 查询计算机系全体学生: b. 查询计算机系年龄小于20的学 σSdept=‘计算机’(Student) 生: σSdept=‘计算机’ ∧ Sage<20(Student) 或σ5=‘计算机’(Student) 或σ5=‘计算机’ ∧ 4<20(Student)
23