* 应该更正确地写作×,因为它代表Cartesian product。此操作返回所有元组的集合,这些元组是来自每个操作数的元组的串联。连接将笛卡尔积过滤为仅在指定属性上具有匹配值的那些元组。如果联接是自然联接,如您的示例所示,则匹配的属性是具有相同名称的属性。
例如,给定如下两个关系R和S如图:
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 是仅过滤到b 和c 值匹配的元组的产品:
( a, b, c, d )
( 1, 2, 3, 6 )
连接 R ⨝<sub>b</sub> S 是仅过滤到 b 值匹配的元组的产品:
( R.a, b, R.c, S.c, S.d )
( 1, 2, 3, 7, 9 )
( 1, 2, 3, 3, 6 )