数据库的关系运算中,专门的关系运算包括选择,投影,连接和除。本文讲解一下除运算的原理。
在讲解除运算之前,先介绍一下象集的概念。
关于像集的概念:
给定一个关系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的结果为:
新闻热点
疑难解答