Iのデータは次のように2つのテーブルがあります。私は2つの外部キーは、の主キーであることの両方で別のテーブルを作成しているStudent、Subject、Student-SubjectテーブルのSecond Normal Formはどのようにして達成できますか?
ID SubjectCode
1 PHY1
2 PHY2
3 MATH1
:
第1表:
ID NAME GENDER AGE
1 test1 M 18
2 test2 F 20
3 test3 M 18
2表2つのテーブルの上。以下のようになる:
Student_ID Subject_ID
1 PHY1
2 MATH1
1 PHY2
2 PHY2
この第3のテーブルは、第2のテーブルからテーブルと被験者IDから学生IDを挿入することによって作成されます。しかし、あなたが見ることができるように、1人の学生が複数の科目を申請することができ、それは学生IDの重複を作成します。私はSQLの初心者であり、3番目の表を2番目の正規形に変換したいと考えています。どうすればいいのですか?私がそれを達成するのに役立つ操作はどれですか?
2NFに関して少し混乱しました。しかし、私は3番目のテーブルのIDを繰り返す必要はありません。私は、IDを一意にとどめ、同じIDに対応する新しいサブジェクトコードを別の列に含めるようにします。私は私が尋ねることを意味していることを伝えたいと思う。あなたはそれを達成するために何を提案しますか?
なぜ学生IDの冗長性が2NFを破ると思いますか? 2NFは何と思いますか? –
私は、Su_IDがSubjectCodeではなく、2番目のテーブルのID値でなければならないと推測しています。あなたが学習していると言っているので、私はあなたの主キーIDの命名を習得しないことを提案します。あいまいで挑戦的です。単一の列名は、大きな命名規則ではない使用法に基づいて名前を変更する必要があるため、混乱の原因となります。 –
いいえ、他のファクト表と同じ行(学生またはサブジェクト)への複数の参照は、レディダンスと見なされません。大丈夫です 。 – Serg