数据库:除运算
除運算
設關系R除以關系S的結果為關系T,則T包含所有在R但不在S中的屬性及其值,則T的原則與S的元組的所有組合都在R中。用象集來定義除法:給定關系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?S={tr[X]|tr∈R∧ ΠY(S)?Yx },其中Yx為x在R中的象集,x=tr[X]除操作是同時從行和列角度進行運算。
例1:
設關系R、S分別為圖一中的(a)和(b),R÷S的結果為圖二。在關系R中,A可以取4個值{a1,a2,a3,a4}
如圖所示,其分析結果如下圖所示
顯然,只有a1的象集(B,C)a1包含了S在(B,C)屬性組上的投影,所以R÷S={a1}
除數和被除數都為關系,因此做除運算之后的結果也是關系,即R÷S={a1},結果也可以使用表格的形式寫出來。
例2查詢至少選秀1號課程和3號課程的學生號碼(以P52學生-課程數據庫為例)
1.首先建立一個臨時關系K:
201215121的象集為{1,2,3}
201215122的象集為{2,3}
K在(Sno,Cno)201215121的投影為:{1,3}
故,結果為{201215121}。
總結
- 上一篇: 如何理解矩阵
- 下一篇: codeproject上发现的DataS