私は関係代数が初めてです。*
次の式で演算子を見つけました
これと結合を使用したものとの違いは何ですか
はデカルト積を表すため、*
より正確に記述する必要があります。この操作は、各オペランドのタプルを連結したすべてのタプルのセットを返します。結合は、デカルト積をフィルター処理して、指定された属性の値が一致するタプルのみに絞り込みます。あなたの例のように、結合が自然な結合である場合、一致する属性は同じ名前のものです。×
たとえば、次の 2 つの関係が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 S
が一致するタプルのみにフィルター処理された製品です。b
( R.a, b, R.c, S.c, S.d )
( 1, 2, 3, 7, 9 )
( 1, 2, 3, 3, 6 )