1

関数の依存関係に基づいて関係が第 3 正規形であるかどうかを判断することについて質問があります。

R = {A,B,C,D,E}
A -> B
BC -> E ED -> A

これから、私は候補キーを次のように決定しました: {ACD},{BCD},{CDE}
ウィキペディアによると、各機能依存関係 X->Y について、次の要件の少なくとも 1 つを満たす場合、関係は第 3 正規形であるとされています: 1. Y は X のサブセットです。 2. X はスーパーキー Y は、あるキー K の K のサブセットです。

私の仕事:A -> Bキーのため{BCD}3を満たし、BC->Eのために 3{CDE}を満たし、 のために 3 をCD -> A満たし{ACD}ます。

これは、これらのルールを解釈する正しい方法ですか?

4

1 に答える 1

2

A -> B機能依存を表します。しかし、これらは

R 1 = { A ,B}
R 2 = { B,C ,E}
R 3 = { E,D ,A}

関係を表現します。(R を分解して得た関係として、これらを取得するつもりだったと思います。)

通常の形式は関係に適用されます。機能依存関係には適用されません。A -> B「3NF にある」とか「A が B を 3NF にあると判断する」と言っても意味がありません。

したがって、R 1 = { A ,B} は関係です。「キー{B、C、D}のため、ルール3を満たしません」。{B,C,D} は R 1にないため、できません。

これらの規則は、R 自体の候補キーではなく、R を分解した結果の関係の候補キーと関係があります。

後で 。. . 私は間違った仮定をしたことがわかりました。R を分解するのではなく、評価しようとしています。その場合、あなたの推論は正しく、R は 3NF にあります。非素数属性がないため、R は 3NF にあると結論付けることもできます。非プライム属性がないため、すべての FD の右側は候補キーの一部である必要があります。

しかし、R は BCNF にはありません。(または 4NF、または 5NF。) それを修正できますか?

于 2011-03-14T03:12:21.227 に答える