一、基本概念
1.象集
给定一个关系R(X,Z),X和Z为属性组,当t[X]=x时,x在R中的象集定义为:
Z x = { t [ Z ] ∣ t ∈ R , t [ X ] = x } Z_x=\{t[Z]|t\in R,t[X]=x\} Zx={t[Z]∣t∈R,t[X]=x}
表示R中属性组X上值为x的诸元组在Z上分量的集合。
例:
有如下表R
X取值 | Z取值 |
---|---|
x 1 x_1 x1 | Z 2 Z_2 Z2 |
x 1 x_1 x1 | Z 2 Z_2 Z2 |
x 1 x_1 x1 | Z 3 Z_3 Z3 |
x 2 x_2 x2 | Z 2 Z_2 Z2 |
x 2 x_2 x2 | Z 3 Z_3 Z3 |
x 3 x_3 x3 | Z 1 Z_1 Z1 |
x 3 x_3 x3 | Z 3 Z_3 Z3 |
则
x
1
x_1
x1在R中的象集
Z
x
1
=
{
Z
1
,
Z
2
,
Z
3
}
Z_{x1}=\{Z_1,Z_2,Z_3\}
Zx1={Z1,Z2,Z3}
x
2
x_2
x2在R中的象集
Z
x
2
=
{
Z
2
,
Z
3
}
Z_{x2}=\{Z_2,Z_3\}
Zx2={Z2,Z3}
x
3
x_3
x3在R中的象集
Z
x
3
=
{
Z
1
,
Z
3
}
Z_{x3}=\{Z_1,Z_3\}
Zx3={Z1,Z3}
2.除法运算
R ÷ S = { t r [ X ] ∣ t r ∈ R ∧ Π Y ( S ) ⊆ Y x } \div S=\{t_r[X] |t_r\in R\wedge \Pi_Y(S)\subseteq Y_x\} ÷S={tr[X]∣tr∈R∧ΠY(S)⊆Yx}
除运算的结果为P(X)
P是R中满足满足以下条件的元组在X属性上的投影:元组在X上分量值x的象集
Y
x
Y_x
Yx包含S在Y上投影的集合。
这个定义看起来比较难以理解,因此下面给出几个例子。
二、除法运算的例子(通过例子更容易理解)
例一
R和S共有的属性为B和C,在S中(B,C)组合有三种,即
(
b
1
,
c
2
)
,
(
b
2
,
c
1
)
,
(
b
2
,
c
3
)
(b_1,c_2),(b_2,c_1),(b_2,c_3)
(b1,c2),(b2,c1),(b2,c3),因此接下来就要找到R中象集为这三个的元素A。
R中
a
1
a_1
a1的象集为
{
(
b
1
,
c
2
)
,
(
b
2
,
c
3
)
,
(
b
2
,
c
1
)
}
\{(b_1,c_2),(b_2,c_3),(b_2,c_1)\}
{(b1,c2),(b2,c3),(b2,c1)}
a
2
a_2
a2的象集为
{
(
b
3
,
c
7
)
,
(
b
2
,
c
3
)
}
\{(b_3,c_7),(b_2,c_3)\}
{(b3,c7),(b2,c3)}
a
3
a_3
a3的象集为
{
(
b
4
,
c
6
)
}
\{(b_4,c_6)\}
{(b4,c6)}
a
4
a_4
a4的象集为
{
(
b
6
,
c
6
)
}
\{(b_6,c_6)\}
{(b6,c6)}
由于只有
a
1
a_1
a1的象集包含了S在(B,C)属性组上的投影,所以
R
÷
S
=
{
a
1
}
R\div S=\{a_1\}
R÷S={a1}
例二
参考资料
1.《数据库系统概论》王珊,萨师煊
2. 数据库-——关系代数的除法运算最白话解析 by lmo星星呐