首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

系统架构设计师:数据库设计基础知识--关系运算

关系操作的特点是操作对象和操作结果都是集合。

关系代数运算符有4类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符。根据运算符的不同,关系代数运算可分为传统的集合运算和专门的关系运算。传统的集合运算是从关系的水平方向进行的,包括并、交、差及广义笛卡儿积。专门的关系运算既可以从关系的水平方向进行运算,又可以向关系的垂直方向运算,包括选择、投影、连接以及除法,如表6-1所示。

5种基本的关系代数运算包括并、差、笛卡尔积、投影和选择,其他运算可以通过基本的关系运算导出。

1.并(Union)

关系R 与S 具有相同的关系模式,即R与S 的元数相同(结构相同)。关系R与S 的并由属于R或属于S的元组构成的集合组成,记作RUS,其形式定义如下,式中t为元组变量。

RUS ={t|t Rvt S}

2.差(Difference)

关系R 与 S具有相同的关系模式,关系R 与 S 的差是由属于 R 但不属于S 的元组构成的集合,记作R-S,其形式定义如下:R-S={t|t∈R?t∈S}

3.广义笛卡尔积(Extended Cartesian Product)

两个元数分别为n 目和m 目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组,记作R×S,其形式定义如下:

R×S={t|t=?t"∈R?t"ES}

如果R和S中有相同的属性名,可在属性名前加关系名作为限定,以示区别。若R有K,个元组,S 有K?个元组,则R 和S的广义笛卡尔积有K?×K?个元组。

注意:本书中的意为元组t”和t"拼接成的一个元组。

4,投影(Projection)

投影运算是从关系的垂直方向进行运算,在关系R中选择出若干属性列A组成新的关系,记作 π?(R),其形式定义如下:

л(R)={[A]|t∈R}5.选择(Selection)

选择运算是从关系的水平方向进行运算,是从关系 R 中选择满足给定条件的诸元组,记作

σp(R),其形式定义如下:

Op(R)={t|t∈R?F(t)= True其中,F 中的运算对象是属性名(或列的序号)或常数,由运算符、算术比较符(=、≠)和逻辑运算符(?、√、)构成。例如,o>6(R)表示选取R 关系中第1个属性值大于等于第6个属性值的元组;O>6(R)表示选取R 关系中第1个属性值大于等于6的.

6.交(Intersection)

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

R∩S={1 t∈R?t∈S显然 R∩S=R-(R-S),或者R∩S-S-(S-R)。

7.连接(Join)

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

10.外连接(Outer Jion)

外连接运算是连接运算的扩展,可以处理缺失的信息。外连接运算有三种:左外连接、右外连接和全外连接。

左外连接(Left Outer Jion)A左外连接:取出左侧关系中所有与右侧关系中任一元组都不匹配的元组,用空值null充填所有来自右侧关系的属性,构成新的元组,将其加入自然连接的结果中。

右外连接(Right Outer Jion)区C右外连接:取出右侧关系中所有与左侧关系中任一元组都不匹配的元组,用空值nul1填充所有来自左侧关系的属性,构成新的元组,将其加入自然连接的结果中。

全外连接(Full Outer Jion)IX[

全外连接:完成左外连接和右外连接的操作。即填充左侧关系中所有与右侧关系中任一元组都不匹配的元组,又填充右侧关系中所有与左侧关系中任一元组都不匹配的元组,将产生的新元组加入自然连接的结果中。

11.聚集函数

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

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

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

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OQPs0QPsahkBeF6nIglvkO1Q0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券