首页 百科知识 关系运算中的连接运算

关系运算中的连接运算

时间:2022-10-17 百科知识 版权反馈
【摘要】:它的一个关系设为R。,Aik}后剩余的属性组。R为n目关系,S为m目关系。这是从行的角度进行的运算。除也是二元关系运算。R与S的除运算得到一个新的关系P,P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上的投影的集合,记为:在上述的传统集合运算和专门的关系运算中,并、差、笛卡儿积、选择和投影是关系代数中最基本的5种运算,其他一些算法都可以用这5种基本运算来表达。

2.2.2 专门的关系运算

专门的关系运算包括选择、投影、连接、除等。

一、记号说明

(1)设关系模式为R(A1,A2,…,An)。它的一个关系设为R。t∈R表示t是R的一个元组。t[Ai]则表示元组t中相应于属性Ai的一个分量。

(2)若A={Ail,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,则A称为属性列或域列。A则表示(A1,A2,…,An)中去掉{Ai1,Ai2,…,Aik}后剩余的属性组。t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元组t在属性列A上诸分量的集合。

(3)R为n目关系,S为m目关系。tr∈R,ts∈R,img12为元组的连接(Concatenation)。它是一个(n+m)列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。

(4)给定一个关系R(X,Z),X和Z为属性组。我们定义,当t[X]=x时,x在R中的象集(Images Set)为:

Zx={t[Z]t∈R,t[X]=x}

它表示R中属性组X上值为x的各个元组在Z上分量的集合。

二、专门的关系运算

(1)选择

选择运算(Selection)又称为限制运算(Restriction)。选择运算指在关系R中选择满足给定条件的元组,记为:

σF(R)={t|t∈R∧F(t)='真'}

其中,F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。

逻辑表达式F的基本形式为:

X1θY1

θ表示比较运算符,它可以是>、≥、<、≤、=或≠。X1、Y1等是属性名或常量或简单函数。属性名也可以用它的序号来代替。

因此,选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。这是从行的角度进行的运算。例如,列出关系R中A<5的元组,结果如图2-2所示。

img13

图2-2

设有一个学生-课程关系数据库,包括学生关系、课程关系和选课关系。下面的例子将对这三个关系进行运算。

  学生(学号,姓名,年龄,所在系)

  课程(课程号,课程名,学分)

  选课(学号,课程号,成绩)

例2-1 用关系代数表示在学生-课程数据库中查询信息系的全体学生的操作。

σ所在系='信息系'(学生)

结果如图2-3(a)所示。

例2-2 用关系代数表示在学生-课程数据库中查询年龄小于20岁的学生的操作。

σ年龄<20(学生)

结果如图2-3(b)所示。

img14

(a)

img15

(b)

图2-3 选择运算举例

(2)投影

投影运算是一种一元运算,它作用于一个关系。关系R上的投影是从R中选择出若干属性列组成新的关系,记为:

ΠA(R)={t[A]|t∈R}

其中,A为R中的属性列。例如,列出关系R在A、B上的投影,结果如图2-4所示。

img16

图2-4

例2-3 查询学生的姓名和所在系,即求学生关系在姓名和所在系两个属性上的投影。

姓名,所在系(学生)

结果如图2-5(a)所示。

例2-4 查询学生关系中都有哪些系,即求学生关系在所在系属性上的投影。

所在系(学生)

结果如图2-5(b)所示。学生关系原来有四个元组,而投影结果取消了重复的信息系元组,因此只有三个元组。

img17

(a)

img18

(b)

图2-5 投影运算举例

(3)连接

连接也称为θ连接。它是从两个关系的笛卡儿积中选取属性间满足一定条件的元组,记为:

img19

其中,A和B分别为R和S上度数相等且可比的属性组。连接运算从R和S的广义笛卡儿积R×S中选取(R关系)在A属性组的值与(S关系)在B属性组上的值满足比较关系的θ元组。如果当θ是等号“=”时,则称连接运算为等值运算,其他时候均称为不等值连接。

自然连接(Natural Join)是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。即若R和S具有相同的属性组,则自然连接可记为:

img20

自然连接是同时从行和列的角度进行运算,是最有用的等值连接。以后若无特殊说明,连接均指自然连接。

例2-5 图2-6(a)和(b)分别为关系R和关系S,图(c)为img21的结果,图(d)为等值连接img22的结果,图(e)为自然连接img23的结果。

(4)除

除(Division)也是二元关系运算。给定关系R(X,Y)和S(Y,Z),其中X、Y、Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上的投影的集合,记为:

R÷S={tr[X]|tr∈R∧Πy(S)⊆Yx}

其中,Yx为x在R中的象集,x=tr[X]。

除操作是同时从行和列角度进行运算的。

img24

图2-6 连接运算举例

例2-6 设关系R和关系S分别为图2-7(a)和(b),则R÷S运算的结果如图2-7(c)所示。

img25

图2-7 除运算的举例

在上述的传统集合运算和专门的关系运算中,并、差、笛卡儿积、选择和投影是关系代数中最基本的5种运算,其他一些算法都可以用这5种基本运算来表达。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈