1

データベースの正規化について学ぼうとして、次の表に戸惑いました。

名前 日付 生物
老化 1984-07-13 人間
老化 1984-07-13 ワーム
しわ 1987-08-15 人間
しわ 1987-08-15 マウス
毛深い 1990-09-30 マウス

私が使用している本は、これを 1NF のテーブルの例として示しています。しかし、Wikipedia の 1NF、2NF、および 3NF の記事を読んだ後、少し混乱しました。

私が知る限り、このテーブルには {Name,Organisms} と {Date,Organisms} の 2 つの候補キーがあります。ウィキペディアによると (リンク テキスト):

1NF テーブルは、すべての非素数属性がすべての候補キー全体に機能的に依存している場合にのみ、2NF になります。(非プライム属性とは、どの候補キーにも属さない属性です。)

「非プライム属性」のこの定義により、すべてのフィールドが2つの候補キーの少なくとも1つに属しているため、このテーブルには非プライム属性がないように思えます。非プライム属性がない場合、(このテーブルは 1NF にあるため) Wikipedia の定義により、このテーブルは 2NF にあるように見えます。

しかし、このテーブルは設計が悪く、更新エラーが発生しやすいことを認識しているため、どこかでロジックを間違えているに違いないと思います。 この表がどの正規形であるか、および/または私の推論がどこに誤りがあるかを誰かが説明できれば、大いに感謝します.

4

1 に答える 1

1

非素数属性がないことが正しい場合、問題の関係は少なくとも 2NF になります。ただし、一連の属性名のみに基づいてどのキーと依存関係が適用されるかを推測することは、常に非常に主観的な作業になります。このような例は、満たすべき依存関係を定義する場合にのみ役立ちます。

ウィキペディアで読んだものに頼らないことをお勧めします。良い教育ツールではありません。Chris Date や David Maier の著書など、このテーマに関する適切な本を入手してください。

于 2010-11-22T12:51:39.853 に答える