关系模型之关系代数
书写关系代数的基本思维训练:
一个集合, 施加一个集合, 依次施加关系代数操作, 进而得到所需的结果
以集合为中心
关系代数概述

基本操作
为什么要提出关系代数?
就像是编程语言的各种操作, 最后到了底层都是与或非等的基本操作.

为什么要提出关系代数
关系代数的基本操作
并相容性
关系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)



左右外连接

全连接和等值连接
本讲小结

本讲小结