2

リレーショナル データベースを研究しているときに、次のスナップショットが私の混乱をまとめたこの紛らわしいページに出くわしました。

よくわかりません!

著者は、student_id 401 と subject Math が青色で示されているのと同じように繰り返される場合、Subject Table が 1NF にあると言うのはなぜですか? これは矛盾しているように思えます。

4

2 に答える 2

2

このページで言及されていない重要な概念は、行に含まれるデータを複製してはならないということです。つまり、1 つのキー値が 1 つの列に対して複数の値を持つことはできません。本当の問題は、401 の学生 ID の場合、最初のテーブルで名前が 2 回指定されていることです。

最後の表に続くテキストは、「Subject テーブルでは、subject_id と student_id の連結が主キーです」と読む必要があります。新しいサブジェクト テーブルが正常である理由は、キーが実際にはこれらの値の両方であるためです。したがって、401 が繰り返されている間、キーは 10, 401 と 11, 401 であり、これらは 2 つの異なる値です。同様に、数学が繰り返されますが、それは 2 つの別個のキーのデータです。行内で繰り返されません。これらのキーの値は異なるため、問題ありません。

あなたが参照したページは、非常に正確な定義を与えていません. この説明がお役に立てば幸いです。より明確な理解を得るために、他のサイトをチェックし続けてください。ウィキペディアには良い例と正確な定義がありますが、少し抽象的で理解しにくいものです。 http://en.wikipedia.org/wiki/First_normal_form

于 2013-06-04T21:13:16.453 に答える