第四讲 关系模型之关系代数
2018-07-21 本文已影响0人
天际神游
关系模型之关系代数
书写关系代数的基本思维训练:
一个集合, 施加一个集合, 依次施加关系代数操作, 进而得到所需的结果
以集合为中心
关系代数概述
基本操作
为什么要提出关系代数?
就像是编程语言的各种操作, 最后到了底层都是与或非等的基本操作.
为什么要提出关系代数
关系代数的基本操作
并相容性
关系R与关系S存在相容性, 当且仅当:
- 关系R与关系S的属性数目相同
- 对于任意i, 关系R的第i个属性的域必须和关系S的第i个属性的域相同.
并(Union)
并
在汉语中的或者...或者..通常是并运算
理解自然语言基础上, 找到正确的操作
R+S = S+R
差操作(Difference)
差
汉语中的是...但不含...通常意义是差操作
R-S != S-R
广义笛卡尔积(Cartesian Product)
广义笛卡儿积
把两个关系进行所有可能的拼接
r, s各元组分别组合
SxR = RxS
选择(Select)
σcon(R), 表示从关系R中选择出满足给定条件condition的元组组成
从行选
投影(Project)
给定一个关系R, 投影运算结果也是一个关系, ∏A(R), 它从关系R中选出属性包含在A中的列构成.
从列选
若投影后有重复元组, 则应去掉
小结
小结
关系代数的扩展操作
交(Intersection)
交
可以通过差运算来实现:
R∩S = R - (R - S) = S - (S - R)
汉语中既...又..., ..., 并且...通常意义是交运算
θ连接操作(θ-Join, theta-Join)
θ连接操作是在乘积操作的基础上再进一步做选择操作
示例
更名操作
更名操作
把worker和position连接起来, 然后让其满足条件, 最后选出
θ连接操作执行过程
能用θ连接操作就用, DBMS系统可直接进行DBMS操作, 而不必先形成笛卡尔积
等值连接操作是特殊的θ连接操作
自然连接
- 是一种特殊的等值连接
- 满足R, S属性相同, 值必须相等才能连接
- 要在结果中去掉重复的属性列
示例
小结
小结
关系代数操作值组合与应用训练
从里向外写:
书写关系表达式的基本思路
关系代数之复杂扩展操作
除(Division)
利用乘法来辅助理解
除运算
外连接(Outer-Join)
左右外连接
全连接和等值连接
本讲小结
本讲小结