私は3NFで自分のデータベースを作ろうとしていますが、私は混乱しています。以下の説明では、ジップが複数回発生する可能性がある場合、Zipがアドレステーブルのプライマリキーになる方法を理解していません。 Student_Detailテーブルでは再構築ジップは問題ありませんが、主キーは一意ではありませんか?第3正規形一意性制約
第3正規形(3NF)
第3正規形は、テーブルのすべての非プライム属性が主キーに依存しなければならないことに適用される、または我々は非プライムケースがあってはならない、と言うことができます属性は別の非プライム属性によって決定されます。したがって、この推移的な関数の依存関係はテーブルから削除する必要があり、テーブルはSecond Normal形式でなければなりません。たとえば、次のフィールドを持つテーブルを考えてみましょう。
Student_Detail表は:
STUDENT_ID - Student_name - DOB - ストリート - 都市 - 国家は - この表で
ジップSTUDENT_IDは主キーですが、通り、都市や州は、郵便番号に依存します。 zipと他のフィールドとの間の依存性は、推移的依存性と呼ばれます。したがって、3NFを適用するには、ストリート、市および州を新しいテーブルに移動し、Zipを主キーとして移動する必要があります。
新Student_Detail表:
STUDENT_ID - Student_name - DOB - ジップ
アドレステーブル:
ジップ - ストリート - 都市 - 国家
transtive依存性を除去する利点は、
ですデータの複製量が減少します。 データの整合性が達成されました。
例: http://www.studytonight.com/dbms/database-normalization.php
これは、指定された郵便番号に都市、通り、州が1つあると仮定しています。実際には郵便番号については真実ではありません。しかし、その仮定の下でさえ、 "ジップと他のフィールドとの間の依存性は推移的依存性と呼ばれています"という言い方が間違っており、その3NFの特性も同様です。これは貧しい資源です。大学/大学の教科書/プレゼンテーション/コースを探す。多くはオンラインです。 – philipxy