7.2.3 扩展的关系运算

2025-11-03 17:46:03 更新

扩展的关系运算可以从基本的关系运算中导出,主要包括:交、连接、除、广义投影、外连接、聚集函数。

1. 交(Intersection)

关系R与S具有相同的关系模式,关系R与S的交是由属于R同时又属于S的元组构成的集合,关系A与3的交可记为R4S,其形式定义如下:

RflS = {f R/UeS}

2. 连接(Join)

连接分为θ连接、等值连接及自然连接三种。连接运算是从两个关系我和S的笛卡儿积中选取满足条件的元组。因此,可以认为笛卡儿积是无条件连接,其他的连接操作是有条件连接。

1) θ连接

2)等值连接(equijoin)

3)自然连接(Naturaljoin)

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

特别需要说明的是:一般连接是从关系的水平方向运算,而自然连接不仅要从关系的水平

方向,而且要从关系的垂直方向运算。因为自然连接要去掉重复属性,如果没有重复属性,那么自然连接就转化为笛卡儿积。

3. 除(Division)

除运算是同时从关系的水平方向和垂直方向进行运算。给定关系R(X,Y)和

s(、z),x、y、z为属性组.R;S应当满足元组在x上的分量值x的象集七包含关系s在属

性组y上投影的集合。其形式定义如下:

4 广义投影(generalized projection)

广义投影运算允许在投影列表中使用算术运算,实现了对投影运算的扩充。

5. 外连接(outer jion)

外连接运算是连接运算的扩展,可以处理缺失的信息。

外连接运算有三种:左外连接、右外连接

和全外连接。

1) 左外连接(leftouterjion) 2X1

左外连接:取出左侧关系中所有与右侧关系中任一元组都不匹配的元组,用空值null填充

所有来自右侧关系的属性,构成新的元组,将其加入自然连接的结果中。对于图7-9的S和SC关系,当我们对其进行左外连接时,其结果如图7-14所示。

2) 右外连接(right outer jion) [XE

右外连接:取出右侧关系中所有与左侧关系中任一元组都不匹配的元组,用空值null填充

所有来自左侧关系的属性,构成新的元组,将其加入自然连接的结果中。对于图7-9的SC和。关系,当我们对其进行右外连接SCXZC时,其结果如图7-15所示。

3)全外连接(fill outer jion) 2XE

全外联接:完成左外连接和右外连接的操作。既填充左侧关系中所有与右侧关系中任一元组都不匹配的元组,又填充右侧关系中所有与左侧关系中任一元组都不匹配的元组,将产生的

6. 聚集函数

聚集运算是关系代数运算中的一个非常重要的扩展。聚集函数输入一个值的集合,返回单—值作为结果。例如,集合{2,4,6,8,10,15}。将聚集函数sum用于该集合时返回和45;将聚集函数avg用于该集合时返回平均值7.5;将聚集函数count用于该集合时返回集合中元数的个数

6;将聚集函数min用于该集合时返回最小值2;将聚集函数max用于该集合时返回最大值15。

需要说明的是,使用聚集函数的集合中,一个值可以出现多次,值出现的顺序是无关紧要的,这样的集合称之为多重集。集合是多重集的一个特例,其中每个值都只出现一次。

但是,有时在计算聚集函数前必须去掉重复值,此时可以将“distinct”用连接符附加在函数名后,如 count-distinct。