解釋
有關係:R(x,y) S(y,z)
R S
A B C B C D
a1 b1 c2 b1 c2 d1
a1 b2 c3 b2 c1 d1
a1 b2 c1 b2 c3 d2
......
R÷S的結果為a1
x相當於A y 相當於B,C z相當於D
按照除運算規則,我們不必關注D
只需比較B,C當S關係中的B,C所有的組合(b1,c2)(b2,c3)(b2,c1)都出現在R關係中時,結果才為A
R÷S = {tr[X] | trÎR∧πY (S) íYx }
Yx:x在R中的象集,x = tr[X]
除操作是同時從行和列角度進行運算
舉例
R:
| A | B | C |
| a1 | b1 | c2 |
| a2 | b3 | c7 |
| a3 | b4 | c6 |
| a1 | b2 | c3 |
| a4 | b6 | c6 |
| a2 | b2 | c3 |
| a1 | b2 | c1 |
S:
| B | C | D |
| b1 | c2 | d1 |
| b2 | c1 | d1 |
| b2 | c3 | d2 |
R÷S
| A |
| a1 |
/*
(1) 找S與R的共同屬性,其元組看做整體 k
(2)選擇R中包含k的 非S與R相同屬性的 屬性 即為R÷S
*/
解答如下:
在關係R中,A可以取四個值{a1,a2,a3,a4},其中:
a1的象集為:{(b1,c2),(b2,c3),(b2,c1)}
a2的象集為:{(b3,c7),(b2,c3)}
a3的象集為:{(b4,c6)}
a4的象集為:{(b6,c6)}
S在(B,C)上的投影為{(b1,c2),(b2,c3),(b2,c1)}。
顯然只有R的象集a1包含S在(B,C)屬性組上的投影,所以R÷S={a1}。
