1

一連の依存関係を持つリレーショナル スキーマ R(A、B、C、D) がある場合:

ABC -> D
D -> A

R を BCNF 関係に分解するにはどうすればよいですか? どのように考えても、唯一のもっともらしい方法は、FDの1つを破棄することです。他に方法はありますか?

4

1 に答える 1

2

そうです、FD を保持しながら常にロスレスで 3NF に分解できますが、BCNF はそれらを保持しない可能性があります。それにもかかわらず、それは無損失の分解です。元の投影を保持している場合、コンポーネントは元に結合します。しかし、元の値が特定の値を持っている場合はいつでも、コンポーネントはその値の投影でなければなりません。(そうでない場合は、エラーが発生しているため、DBMS でコンポーネントを適切に制約する必要があります。) したがって、コンポーネントをオリジナルの射影になるように制約することは必要ですが、十分です。ABCは自明です(キーなので)。これにより、AD = ABCD PROJECT {DA} を要求する必要が生じます。コンポーネントはその「等価依存性」を満たさなければならないと言います。

于 2014-05-31T04:47:56.273 に答える