2016-04-29 11 views
0

のは、次のように私が関係を持っているとしましょう:ロスレス分解はBCNF(標準形)を得るため

R(A、B、C、D){A-> B、B-> C}

関数の依存関係を保持しながら、RをBCNFのコンポーネント関係に無損失で分解できますか?

私はそれを変更した場合:

R(A、B、C、D){A-> B、B-> C、BC-> D)?

私は最初にBCNFに分解することはできないと信じています。私はBC-> Dを加えることで、分解することができますが、確信が持てません。誰かが私のためにこれを明確にするのを助けることができる?

答えて

0

どちらの場合でも、BCNFで機能の依存関係を保持しながら分解することができます。最初のケースで

は、一意のキーは、ADであり、そして分析アルゴリズムを使用して分解(各関係は、その上に投影された依存性のカバーで示されている)は、以下である:

R1 <(AB) 、 {A→B}>

R2 <(BC)、 {B→C}>

R3 <(AD)、 {}>

そして、依存関係の属性を持つ2つの関係があるので、両方の依存関係が保持されていることに気付くことができます。第2のケースで

は、依存関係の正規のカバーである:

{→Bを、 B→C、 B]→[D}

キーであり、使用分解分析アルゴリズムは、以下を(再び、各関係がその上に投影された依存性のカバーで示されている)である。

R1 <(BCD)、 {B→C、 B]→[D}>

R2 <(B)、 {A→Bは}>

我々は、分解はすべての依存関係を保持することに注意することができます。

関連する問題