非可逆分解が非可逆と呼ばれるのはなぜですか?非可逆分解で正確に何が失われますか?
関係Rがあります。それは2つの関係R1とR2に分解されます。
r =(R1 JOIN R2)の場合、それはロスレス結合分解です。大丈夫です。
rが(R1 JOIN R2)のサブセットである場合、不可逆結合分解。
これが不可逆結合分解です。結合R1とR2の後、実際にはRと比較してより多くのレコードを取得しています。つまり、何が失われているのでしょうか。 ?
あるインスタンスRを扱っているので、リレーションには固定数のレコードが含まれています。また、どのレコードが存在しないかに関する情報も暗黙的に含まれています。 R1とR2の結合によって余分なレコードが生成されると、情報の整合性が失われます。
次の関係R =(SSN、名前、住所)を使用していたとします。
R
SSN Name Address
1111 Joe 1 Pine
2222 Alice 2 Oak
3333 Alice 3 Pine
R1 =(SSN、名前)およびR2 =(名前、アドレス)とします。
R1 R2
SSN Name | Name Address
1111 Joe | Joe 1 Pine
2222 Alice | Alice 2 Oak
3333 Alice | Alice 3 Pine
R1とR2を結合すると、次のテーブルが生成されます。
R1 join R2
SSN Name Address
1111 Joe 1 Pine
2222 Alice 2 Oak
2222 Alice 3 Pine
3333 Alice 2 Oak
3333 Alice 3 Pine
この例で失われた情報は、人物2222と3333の住所です。元の関係Rでは、人物2222は2オークに住んでいます。 R1とR2の結合では、人2222は2オークまたは3パインのいずれかに住んでいます。この情報はもうありません。
これは、余分な情報が不可逆分解につながる可能性がある方法です。 レコードは失われませんでした-私たちが失ったのは情報どのレコードが元の関係にあったかについてでした。