数据库-关系代数

数据库-关系代数

lucas Lv4

传统的集合运算

1. 并

2. 交

3. 差

4. 笛卡尔积

专门的关系运算符

前置条件

  • 关系模式:表示一张表的首行信息,是一个关系的抽象,例如: 是属性抽象

  • 关系:一张表代表一个关系,n 目,表示 n 列,例如:

  • 元组:表内的一行叫关系的一个元组,例如:表示 t 元组中的 分量,也就是属性 A 的第 i 行

  • 属性:表内的首行的每个元素叫属性,一个属性对应一列,从第二行开始,下面的都是属性的具体数值

    例如:,这表示第 i 行的每列的分量集合,叫做属性组(属性列)。

    属性具体值是

    表示取反,也就是除去第 i 行的其他属性组

  • 元组连接: 成为元组连接,形成一个 n+m 列的元组,前 n 个分量为 R 中的一个 n 元组,也就是 n 列,前 m 个分量为 S 中的一个 m 元组,也就是 m 列。

  • 象集:关系 , 为属性组。当 t[X]=x 时, 中的象集(images set)为:,这是一个 元组在 分量(属性)Y 下 的集合,条件为 ,下图是 中的象集:

    元组1.png

    如果你看了后面的计算,那么象集你可以直接用选择加投影来计算象集,比如图中的就是先选择 Y=2 再做 x 的投影

1. 选择

表示在 R 中选出符合条件 F 的元组(也就是行)

选择 1.png

查询所在系为 IS 的学生,则 结果如图所示

选择 2.png

查询年龄小于 20 的学生,则 结果如图所示

选择 3.png

2. 投影

表示关系 R 上的投影,是从 R 中选择出若干属性列组成新的关系(A 是属性列)。

在 Student 中查询姓名与所在系的关系, 结果如图所示

投影 1.png

3. 连接

表示从两个关系的笛卡尔积中选取属性间满足一定条件的元组

就是条件

3.1 等值连接

= 的连接运算称为等值连接

3.2 非等值连接、等值连接、自然连接

自然连接是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉。

如图就是非等值连接,等值连接,自然连接的对比

可以看到,

  • 非等值连接是符合 的笛卡尔积元组,

  • 是符合 的等值连接,

  • 自然连接是将相等的两列合并成一列

连接1.png
连接2.png

3.3 外连接

info

做自然连接的时候,会有一些不满足条件的元组被舍弃,叫 悬浮元组。

  • ,外连接是保留(不舍弃)悬浮元组的连接
  • ,左外连接是保留左边关系的悬浮元组的连接
  • ,右外连接是保留右边关系的悬浮元组的连接

在下图可以看到,

没有对应的 值,所以填

同样, 也没有对应的 值,也填

外连接1.png

4. 除运算

表示 关系T 是 关系R 除以 关系S 的结果(商)

T 包含所有在 R 但不在 S 中的属性及其值, 且 T 的元组与 S 的元组的所有组合都在 R 中。(所以这个有排除的意思)

除2.png

我们看这个式子,给定关系 \

  • 的结果是一个集合
  • 集合里的元素是 也就是 属性X 的元组
  • 表示元组属于 关系R
  • 表示 关系S 中 属性Y 的投影
  • 表示象集 也就是 R 中 Y 那一列,其实也就是关系 R 中 Y 的投影
  • 表示 关系S 中的 Y 的值,得包含在 R 内

总的下来,就是 关系R 中的 X属性 的元组,

下图可以看到,只有 中的

  • 首先看,包含在 R 但是不包含在 S 的属性显然是属性 A,所以我们求解的答案肯定是一个 A分量 的列
  • 其次,球出 A 的所有象集,也就是 的象集
  • 然后确定包含关系,发现只有 包含 S 中的 BC 所有组合
  • 答案就是

所以除运算就是一个确定包含关系的过程

除1.png

  • Title: 数据库-关系代数
  • Author: lucas
  • Created at : 2024-04-22 17:02:37
  • Updated at : 2024-04-24 20:15:55
  • Link: https://darkflamemasterdev.github.io/2024/04/22/数据库-关系代数/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments