数据库系统丨关系代数运算总结

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

数据库系统丨关系代数运算总结