关系代数是一种抽象的查询语言。

运算符

  • 传统的集合运算:并,交,笛卡尔积,差。
  • 专门的关系运算:选择σ,投影π,连接⋈,除运算÷。

传统运算符

用图中例子为例。

1,并

2,交

3,差

4,笛卡尔积

关系运算符

1,选择

选择又称为限制(Restriction)。它是在关系R中选择满足给定条件的诸元组。

人话就是 根据条件选出对应元组

选择条件可以选用下图中的表示符。

例子

2,投影

关系R上的投影是从R中选择出若干属性列组成新的关系。

人话就是 把表中选中的属性和其值提取出来。就是对列操作。

例子

3,除运算

除法运算是一个复合的二目运算。如果把笛卡尔积看作“乘法”运算,则除法运算可以看作这个“乘法”的逆运算。

自然语言

A/B除法就是找出A中特有的列,然后在特有的列上找出包含所有共有列共有行的行。

计算机实现的逻辑语言

1,找出关系R和关系S中相同的属性,即Y属性。在关系S中对Y做投影(即将Y列取出);所得结果如下

第二步:被除关系R中与S中不相同的属性列是X ,关系R在属性(X)上做取消重复值的投影为{X1,X2};

第三步:求关系R中X属性对应的像集Y

根据关系R的记录,可以得到与X1值有关的记录,如图3所示;与X2有关的记录,如图4所示

第四步:判断包含关系

R÷S其实就是判断关系R中X各个值的像集Y是否包含关系S中属性Y的所有值。对比即可发现:
X1的像集只有Y1,不能包含关系S中属性Y的所有值,所以排除掉X1;
而X2的像集包含了关系S中属性Y的所有值,所以R÷S的最终结果就是X2

4,连接

连接也称为θ连接,关系R与关系S的连接运算是从两个关系的广义笛卡尔积中选取属性间满足一定条件的元组形成一个新的连接。

人话就是 将两个表中符合条件的元组合在同一张表里。

(一)等值连接

条件为=的连接,例子见下图。

(二)非等值连接

条件为<,>,!=啥的。

(三)自然连接

两个关系中进行比较的分量必须是相同的属性组,并且在结果中把属性重复的列去掉。

图示

(四) 左连接

自然连接的基础上加上左边表上不包含自然连接中所含元组(行)的元组。

(五) 右连接

自然连接的基础上加上右边表上不包含自然连接中所含元组(行)的元组。