数据库关系代数笔记

数据库中的关系代数是一种抽象的查询语言,是关系数据操作语言的一种传统表达方式,由关系的运算来表达查询。

关系代数的运算对象是关系,运算结果也是关系。

运算符:集合运算符、专门的关系运算符、算术比较运算符、逻辑运算符

虽然我觉得概念可能也会考,但是来一张例图感觉更容易理解。

算数比较运算

>(大于),≥(大于等于),<(小于), ≤(小于等于),=(等于),≠(不等于)

逻辑运算符

∧(与),∨(或),┐(非)

传统集合运算

传统集合运算包括:

  1. 并(Union),符号 ∪
  2. 交(Intersection),符号 ∩
  3. 差(Difference),符号 -
  4. 广义笛卡儿积(Extended Cartesian Product),符号 X

传统集合运算

专门的关系运算

1、选取:根据一定的条件从关系中进行筛选组成一个新关系。
选取
F 为选取的条件,R 为进行选取的关系

2、投影:在关系中选择若干属性列组成新关系
投影
A 为从 R 中选择的属性列,多个属性用逗号隔开,R 为进行投影的关系
此外,书里和网上好像都是用Π来表示的样子,老师说手写其实是一个 pai

3、连接:从两个关系的笛卡儿积中选出满足连接条件的元组组成新关系
连接
XθY 是连接条件,X 是 R 中的属性,Y 是 S 中的属性,θ是算术比较符,根据算术比较符的不同可以分为等值连接、大于连接、小于连接

自然连接:按照等值的情况进行连接,并且 X 和 Y 具有相同属性组,并把连接结果重复的属性列去掉。
自然连接

图例:
连接运算

4、除法:最难理解的一个,但是知道了计算流程后就很容易入手了
RS
假如现在又 R、S 两个表,要计算 R÷S

1、首先找出 R 和 S 中相同的属性,在 S 进行投影,保留和 R 相同属性的列,得到新关系 S1
RS1
2、然后找出 R 和 S 中不同的属性,在 R 中进行投影,保留和 S 不同属性的列,然后去除重复的行,得到新关系 R1
RS2
3、然后求出 R1 各个元组在 R 中对应 C、D 的像集
RS3
4、这时可以发现,R1 各个值所对应的像集包含 S1 所有值的只有{a1,b1}这一个

所以 R÷S={a1,b2}

参考自

《数据库原理及应用 第四版|微课版》 人民邮电出版社