2

無関係な属性の概念と 3NF への適切な分解について、私はちょっと混乱しています。

たとえば、次の関係があります。

r(A,B,C,D,E,F)

F = FD's
F = {A-> BCD, BC-> DE, B->D, D->A}

アルゴリズムを使用して 3NF に分解するために、正規カバーを計算したいと考えています。したがって、FD から不要な属性を削除する必要があります。

A+. B+, C+, D+ (A+ = ABCDE, B+ = BD, C+ = C, D+ = AD) 私は無関係な属性を見つけようとして始めたと計算しました。まずはβで属性を見てみました

D が無関係かどうかを調べようとしました

BC -> DE

BC+ を使用すると、D が無関係であることがわかりました (BC+ には属性 D が含まれているため)。そのため、FD は から変更されBC -> DE to BC -> E ました。α の無関係な属性を計算しようとしました。

B または C が FD で異質であるかどうかを調べましたBC -> DE(B+ と C+ を計算すると、B または C のいずれにも E が含まれていないため、異質ではないことがわかりました)。

また、A -> BCD の無関係な属性も調べたところ、B と C の両方が無関係であることがわかりました (A+ にはすべての属性が含まれているため)。そのため、次のものが残されました。

A -> D
BC -> E
B -> D
D -> A

非常に長い質問で申し訳ありませんが、私がしたことを書き留めたかっただけです。

これが正しいのか、それとも私がこれを正しく行っているのか、私は混乱しています。私はいくつかのメモといくつかのオンライン参照に従おうとしていますが、誰かが私がこれを正しく行っているかどうかを指摘できればいいと思います.

4

1 に答える 1

1

クロージャの一部が間違っています (B+ = ABCDE、たとえば B->D、D-​​>A、A->BCD、BC->DE による)。

B と C は、A->BCD では無関係ではありません。実際、A の閉包は

{A -> D、BC -> E、B -> D、D -> A}

ABCDEではなくADです。

それでは、前のステップに戻りましょう。

{A-> BCD、BC-> E、B->D、D-​​>A}

A->B および B->D であるため、D は A->BCD では無関係です。A-> BCD から D を削除すると、次のようになります。

{A->BC、BC->E、B->D、D-​​>A}

C は BC->E で無関係です。確かに、B->D、D-​​>A、A-> BC です。したがって、

{A->BC、B->E、B->D、D-​​>A}

次に、すべての fd を同じ左側に結合します。

{A-> BC、B-> DE、D-> A}

この一連の機能依存関係には、冗長な依存関係や無関係な属性が含まれていないため、正規のカバーです。

于 2012-04-08T14:08:54.603 に答える