数据库-关系代数
传统的集合运算
1. 并
2. 交
3. 差
4. 笛卡尔积
4.1 域
域是一组具有相同数据类型的值的集合, 例如: { 李明, 张三 , 王五} , { 男, 女 } , { 计算机 , 旅游管理 }
4.2 笛卡尔积
笛卡尔积是域上的集合运算, 允许某些域上是相同的
按域的顺序, 每个域任取一个值, 列出所有的组合, 就是笛卡尔积
姓名 | 性别 | 专业 |
---|---|---|
李明 | 男 | 计算机 |
李明 | 男 | 旅游管理 |
李明 | 女 | 计算机 |
李明 | 女 | 旅游管理 |
张三 | 男 | 计算机 |
张三 | 男 | 旅游管理 |
张三 | 女 | 计算机 |
张三 | 女 | 旅游管理 |
王五 | 男 | 计算机 |
王五 | 男 | 旅游管理 |
王五 | 女 | 计算机 |
王五 | 女 | 旅游管理 |
专门的关系运算符
前置知识
关系模式
表示一张表的首行信息,是一个关系的抽象,例如:
比如下图表的第一行:
关系
一张表代表一个关系,n 目,表示 n 列,例如:
属性
表内的首行的每个元素叫属性,一个属性对应一列,从第二行开始,下面的都是属性的具体数值
例如: 属性集合
元组
表内的一行叫关系的一个元组
例如:
Student 表的 元组一共有 4 个 ( 不包含第一行, 也就是不包含关系模式 )
元组连接
成为元组连接,形成一个
其实就是把两个元组直接拼到一起
例如将李勇和刘晨这两个元组进行连接:
连接还有一些其他的形式: 等值连接, 非等值连接, 自然连接……后面会说到
象集
关系
下图是
如果你看了后面的计算,那么象集你可以直接用选择加投影来计算象集,比如图中的就是先选择 Y=2 再做 x 的投影
选择
查询所在系为
查询年龄小于 20 的学生,则
投影
在
连接
连接也称
连接运算从
等值连接
非等值连接、等值连接、自然连接
自然连接是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉。
如图就是非等值连接,等值连接,自然连接的对比
可以看到,
非等值连接是符合
的笛卡尔积元组, 是符合 的等值连接,自然连接要求进行比较的属性 ( 分量 ) 必须是同名的属性组, 并且在结果中把重复的属性组列去掉
也就是将同属性的两列合并成一列
举一个 非等值连接 的计算过程 , 如图是笛卡尔积 , 黄色的是满足
外连接
做自然连接的时候,会有一些不满足条件的元组被舍弃,叫 悬浮元组。
,外连接是保留(不舍弃)悬浮元组的连接⟗ ,左外连接是保留左边关系的悬浮元组的连接⟕ ,右外连接是保留右边关系的悬浮元组的连接⟖
在下图可以看到,
同样,
除运算
给定关系
我们看这个式子,给定关系
的结果是一个集合, 集合里的元素是 也就是 属性 的一个分量 表示元组属于关系 , 表示 新关系 是 的子集 ( 集合里的元素是元组 ) 表示 关系 中的 属性, 应该在 在 中的象集里象集
是为了逐一比较, 不同 下的 是否包含 中 的投影
举例: 下图可以看到,只有
首先看,包含在
但是不包含在 的属性显然是属性 ,所以我们求解的答案肯定是一个 分量 的列其次,求出
的所有值对应的象集,也就是 的象集各象集
求出
中 的投影然后确定包含关系,发现只有
包含 中的 所有组合答案就是
- Title: 数据库-关系代数
- Author: lucas
- Created at : 2024-04-22 17:02:37
- Updated at : 2024-12-02 08:24:52
- Link: https://darkflamemasterdev.github.io/2024/04/22/数据库-关系代数/
- License: This work is licensed under CC BY-NC-SA 4.0.