2013-11-02 26 views

回答

3

*應該更正確地寫×,因爲它代表一個Cartesian product。該操作返回從每個操作數連接元組的所有元組的集合。聯接將笛卡爾積過濾爲僅限於具有指定屬性上的匹配值的那些元組。如果連接是自然連接,如在您的示例中,匹配的屬性是具有相同名稱的連接。

例如,給定以下兩個關係RS如圖所示:

R (a, b, c)  S (b, c, d) 
    (1, 2, 3)  (2, 7, 9) 
    (2, 4, 6)  (5, 3, 4) 
    (3, 6, 9)  (2, 3, 6) 

的笛卡爾乘積R × S是:

(R.a, R.b, R.c, S.b, S.c, S.d) 
    (1, 2, 3, 2, 7, 9 ) 
    (1, 2, 3, 5, 3, 4 ) 
    (1, 2, 3, 2, 3, 6 ) 
    (2, 4, 6, 2, 7, 9 ) 
    (2, 4, 6, 5, 3, 4 ) 
    (2, 4, 6, 2, 3, 6 ) 
    (3, 6, 9, 2, 7, 9 ) 
    (3, 6, 9, 5, 3, 4 ) 
    (3, 6, 9, 2, 3, 6 ) 

自然連接R ⨝ S是過濾爲僅元組,其中產品在bc值匹配:

(a, b, c, d) 
    (1, 2, 3, 6) 

的加入R ⨝b S是過濾,只有在b值匹配元組的產品:

(R.a, b, R.c, S.c, S.d) 
    (1, 2, 3, 7, 9 ) 
    (1, 2, 3, 3, 6 ) 
+0

書「數據庫系統基礎」 - 第6版用乘號*作爲自然連接的一種替代符號第159頁(第6版,ISBN 0136086209)。 – pln