關係代數運算之除法運算專題講解

1.關係運算的分類

  (1)基本運算操作:並、差、笛卡爾積、投影和選擇。

  (2)組合運算操作:交、聯接、自然聯接和除。

  另外,還有幾種擴充的關係代數操作:外聯接(左外聯接和右外聯接)、外部並和半聯接。

  2.除法定義的理解

  設兩個關係R和S的元數分別爲r和s(r>s>0),那麼R÷S是一個(r-s)元的元組的集合。(R÷S)是滿足下列條件的最大關係,其中每個元組t與S中每個元組u組成的新元組必在關係R中。

  

 

 

3.例題講解

  有很多學員對除法運算定義不是很理解,那麼,我們下面用圖示的方法來進行講解。

  例題1(2002年試題40)

  ● 關係R、S如下表所示,R÷(πAl,A2(σ1<3(S)))的結果爲__(40)__。

  

 

  (40) A.{d}      B. {c,d}

  C.{c,d,8}     D. {(a,b),(b,a),(c,d),(d,f)}

例題1分析

  首先看πAl,A21<3(S)) 得到哪些元組的一個關係表。

  (1)σ1<3(S)的意思就是從關係S中選擇第1列小於第3列的元組組成的關係表,如表1所示。

  

 

  (2)πAl,A2  的意思就是對錶1進行投影,對A1和A2列投影出來,如表2所示。

  

 

 

(3)表2是具有兩個屬性A1、A2和兩個元組的關係表。

  接下來是R÷X2了,首先,在R中找到A1與A2列和表2完全一致的元組。

  

 

  然後,在表3中,說明R關係內存在A1、A2列元組與表2的所有元組相同,此時關鍵是看R關係中其他列在這兩行元組的值是否相同。只有相同時,除法的結果就爲這個值,不相同,則除法的結果爲空。

  所以:R÷X2 = {d}

  例題2(數據庫系統工程師2005年5月試題44)

  設有如下關係:

  

關係代數表達式R÷S的運算結果是__(44)__。

  (44)

  

 

  例題2分析

  在本題中,R的屬性有A、B、C、D,而S的屬性有C、D、E,因此,R÷S的屬性有A、B。

  求除法的簡單方法是在關係R中尋找屬性C和D的值同時滿足關係S中屬性C和D的所有元組的元組。

  在關係R中,第1個元組(2,1,a,c)和第5個元組(2,1,b,d),其A和B的屬性值相同,而C和D的屬性值滿足關係S中的C和D的所有屬性值,因此(2,1)將是R÷S的元組。

  

 

  關係R元組(3,2)對應C、D屬性的值爲(b,d)和(b、c),它不能滿足關係S中屬性C、D中的(a、c),因此滿足要求。所以,第(44)空的正確答案是B。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章