2013-11-02 29 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