数据库系统丨关系代数运算总结
文章目录
1. 需要记忆的符号
-
记号:设 t 为R的元组变量
-
设:R(A1,A2,……,An)=R(U)
- t[Ai](Ai为属性)
- t[A] (A为属性集)
-
常见运算符
2. 集合运算
[1] 并运算
- RUS = {t|(t∈R)∨(t∈S)}
[2] 差运算
- R - S = {t|(t∈R)∧(t∉S)}
[3] 交运算
- R∩S = {t|(t∈R)∧(t∈S)}
这三个运算结果为同类关系
[4] 广义笛卡尔积
-
设:R、S为不同类关系,则结果为不同类关系
-
R×S={tr ts|(tr∈R)∧(ts ∈ S)}
3. 关系运算
[1] 选择(Selection)
-
在行上做选择,结果产生同类元素
-
σF®={t|(t∈R)∧F( t )=true}}
- 由R中满足F条件的元组组成,F由属性名(值)、比较符、逻辑运算符组成。
-
例如:
- σA2>5 ∨ A3 ≠“f”® -> 等价于 σ[2]>5 ∨ [3] ≠“f”®
- 意义:[A2]中大于5,或者[A3]中≠’f’的
[2] 投影(Projection)
- 在列上做选择,结果产生不同类元素
-
πA®={t[A] |(t∈R) }
- R中取属性名表A中指定的列,消除重复元组。
- 例如:
- πA3,A2(T)
- 意义:去除A3和A2相同的行。
[3] 连接(Join)
-
连接运算也称为θ运算。
-
从两个关系的笛卡尔积中选取属性间满足一定条件的元素。
- - A 和 B 分别为 R 上和 S 上列数相等且可比的属性组 - 含义: - 从 R × S 中选取 R 关系在 A 属性组上的值与 S 关系在 B 属性组上值满足 θ 关系的元组,构成一个新关系。
常用的连接运算有:
-
等值连接(即 θ 为 ‘=’)
-
自然连接
-
是一种特殊的等值连接,要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。
-
运算步骤:
① 计算 R × S
② 选择满足等值条件 R.B1 = S.B1 Λ ·· ·Λ R.BK = S.BK 的元组
③ 去掉重复属性 S.B1, ···, S.Bk
PS: 等值连接与自然连接的区别:
-
自然连接一定是等值连接,但等值连接不一定是自然连接。因为自然连接要求相等的分量必须是公共属性,而等值连接相等的分量不一定是公共属性。
-
等值连接不把重复的属性去掉,而自然连接要把重复属性去掉。
-
完全外连接
- R和S作自然连接时,把原该舍弃的元组也保留在新关系中,同时在这些元组新增加的属性上填空值(NULL)。
-
左外连接
- 只把R中原该舍弃的元组放到新关系中。
-
右外连接
- 只把S中原该舍弃的元组放到新关系中。
[4] 除(Division)
除法:是”至少选择了“的意思
-
设关系R(X,Y)和S(Y,Z),X,Y,Z为属性组。X属性上的值为xi。则有:
-
R÷S={t[X]|t∈R ∧πY(S)⊆Yx}
① 求 πX®
② 求 πY(S)
③ 求 YX:对于每个值 xi,xi ∈ πX®,求 πY( σX = xi® )
(YX 为 X 在 R 中的像集,它表示 R 中属性组 X 上值为 xi 的诸元组上分量的集合。)
④ R ÷ S 运算结果为:像集 YX 包含了 πY(S) 的 xi