關係代數 除法運算

首先講講運算的約束條件,在我看的《數據庫系統原理》一書中,假設RS÷S,那麼一般情況下S的屬性集是RS屬性集的真子集。而樓主給出的原題不符合這個條件(關係R的屬性集爲{A,B,C},關係S的屬性集爲{A,C,D},實際上S中只有S-R={A,C}這些屬性參與了運算),這種情況很少發生

要理解除法這個比較複雜的運算,得明白爲什麼需要它,也就是在什麼場合下需要。就本人目前所學中,這種場合只有一個,就是在兩個實體的聯繫關係中查找實體。算法的數學語言描述很令人費解,樓主看個例子就容易懂了。假設有這麼三個關係R、S、RS:

關係R:
學生名
--------
張三
李四
王五

關係S:
課程名
------
語文
數學

關係RS:
學生名 課程名
--------------
張三 語文
張三 數學
李四 語文

可以看出,關係R代表實體“學生”,關係S代表實體“課程”,關係RS代表學生和課程之間的聯繫“選課”。

RS÷S的意義就是“在R和S的聯繫RS中,找出與S中所有的元組有關係的R元組”。用例子說明:
R的元組有<張三>、<李四>、<王五>,S的元組有<語文>、<數學>;
那麼RS中的元組<張三,語文>就意味着R的元組<張三>與S中的元組<語文>有關係;元組<張三,數學>意味着R的元組<張三>與S中的元組<數學>有關係;
這樣,R中的<張三>與S中所有元組都有聯繫,所以它是RS÷S的結果之一,也是這個例子中唯一的結果(樓主可以自己分析<李四>和<王五>)。
所以RS÷S的結果是:

學生姓名
--------
張三

而RS÷S的意義是“選修了所有課程的學生”,樓主自己理解理解吧,其實很簡單的。
轉自:http://zhidao.baidu.com/question/71013057.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章