数据库-关系代数
传统的集合运算
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 下 的集合,条件为 ,下图是 , 在 中的象集:如果你看了后面的计算,那么象集你可以直接用选择加投影来计算象集,比如图中的就是先选择 Y=2 再做 x 的投影
1. 选择
查询所在系为 IS 的学生,则
查询年龄小于 20 的学生,则
2. 投影
在 Student 中查询姓名与所在系的关系,
3. 连接
3.1 等值连接
=
的连接运算称为等值连接
3.2 非等值连接、等值连接、自然连接
自然连接是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉。
如图就是非等值连接,等值连接,自然连接的对比
可以看到,
非等值连接是符合
的笛卡尔积元组, 是符合 的等值连接,自然连接是将相等的两列合并成一列
3.3 外连接
info
做自然连接的时候,会有一些不满足条件的元组被舍弃,叫 悬浮元组。
,外连接是保留(不舍弃)悬浮元组的连接⟗ ,左外连接是保留左边关系的悬浮元组的连接⟕ ,右外连接是保留右边关系的悬浮元组的连接⟖
在下图可以看到,
同样,
4. 除运算
T 包含所有在 R 但不在 S 中的属性及其值, 且 T 的元组与 S 的元组的所有组合都在 R 中。(所以这个有排除的意思)
我们看这个式子,给定关系
的结果是一个集合- 集合里的元素是
也就是 属性X 的元组 表示元组属于 关系R 表示 关系S 中 属性Y 的投影 表示象集 也就是 R 中 Y 那一列,其实也就是关系 R 中 Y 的投影 表示 关系S 中的 Y 的值,得包含在 R 内
总的下来,就是 关系R 中的 X属性 的元组,
下图可以看到,只有
- 首先看,包含在 R 但是不包含在 S 的属性显然是属性 A,所以我们求解的答案肯定是一个 A分量 的列
- 其次,球出 A 的所有象集,也就是
的象集 - 然后确定包含关系,发现只有
包含 S 中的 BC 所有组合 - 答案就是
所以除运算就是一个确定包含关系的过程
- 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.