1. 程式人生 > >資料庫基礎--關係代數中的除法運算

資料庫基礎--關係代數中的除法運算

  除法運算的定義:
      


  這個概念的描述的非常抽象,剛開始學習的同學完全不知所云。這裡通過一個例項來說明除法運算的求解過程
  

   設有關係R、S 如圖所示,求R÷S 的結果

    

      求解步驟過程:
     第一步:找出關係R和關係S中相同的屬性,即Y屬性。在關係S中對Y做投影(即將Y列取出);所得結果如下

      

      第二步:被除關係R中與S中不相同的屬性列是X ,關係R在屬性(X)上做取消重複值的投影為{X1,X2};
      第三步:求關係R中X屬性對應的像集Y

                      根據關係R的記錄,可以得到與X1值有關的記錄,如圖3所示;與X2有關的記錄,如圖4所示


     第四步:判斷包含關係
                   R÷S其實就是判斷關係R中X各個值的像集Y是否包含關係S中屬性Y的所有值。對比即可發現:
                   X1的像集只有Y1,不能包含關係S中屬性Y的所有值,所以排除掉X1;
                   而X2的像集包含了關係S中屬性Y的所有值,所以R÷S的最終結果就是X2 ,

       

   也許你現在有點明白除法運算是如何操作的了,下面我們來引申一下,除法運算可以解決什麼問題呢
     看下面一個小例子:
              設有關係R,S以及RS,如圖所示,求RS÷S的結果
   


 

    很容易求得結果為:{張三 } 
    
   所以你很容易看出來RS÷S 在這裡解決的問題就是:“得到選修了所有課程的學生”
   RS÷S的意義就是:“在R和S的聯絡RS中,找出與S中所有的元組有關係的R元組”。