資料庫除運算

除運算的含義–給定關係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(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}。

相關詞條

相關搜尋

熱門詞條

聯絡我們