当前位置:K88软件开发文章中心编程全书编程全书01 → 文章内容

关系运算:除

减小字体 增大字体 作者:佚名  来源:翔宇亭IT乐园  发布时间:2019-1-3 1:44:24

:2017-05-22 21:19:57

 数据库的关系运算中,专门的关系运算包括选择,投影,连接和除。本文讲解一下除运算的原理。

在讲解除运算之前,先介绍一下象集的概念。

关于像集的概念:

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

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

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

关系除运算的定义:

关系的除运算是同时从关系的水平方向和垂直方向上进行的运算。假设关系R(X,Y)和S(Y,Z),X、Y、Z为属性组。R÷S应当满足元组在X上的分量值X的像集YX包含关系S在属性组Y上投影的集合。其形式定义为:

R÷S = {tn[X]|tn∈R^πY(S)⊆YX}

R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:

关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组(R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集);

元组在X上的分量值X 的像集YX包含S在Y上的投影。

下面以一个例子来说明:

假设关系R和S如下:

计算R÷S的过程:

a1的象集为{(b1,c2),(b2,c3),(b2,c1)}

a2的象集为{(b3,c7),(b2,c3)}

a3的象集为{(b4,c6)}

a4的象集为{(b6,c6)}

S在(B,C)上的投影为:

{(b1,c2),(b2,c1),(b2,c3)}

因为只有a1的象集包含了S在(B,C)属性组上的投影,故R÷S={a1},即:

R÷S的结果为:


关系运算:除