第 2 正規形 (2NF) の関係は 1NF の関係よりも冗長性が低くなりますが、それでも更新異常が発生する可能性があります。 1 つのタプルのみを更新し、もう 1 つのタプルを更新しないと、データベースは不整合な状態になります。この更新異常は、推移的な依存関係によって引き起こされます。第 3 正規形 (3NF) に進むことで、このような依存関係を削除する必要があります。
キャッチアンドトライJava
第 3 正規形 (3NF)
関係は、第 2 正規形であるのと同様に、非素数属性に対する推移的な依存関係がない場合、第 3 正規形になります。以下の条件の少なくとも 1 つがすべての非自明な関数依存関係 X –> Y に当てはまる場合、関係は 3NF に属します。
- Xはスーパーキーです。
- Y はプライム属性です (Y の各要素は何らかの候補キーの一部です)。
言い換えると、
第 1 および第 2 正規形であり、非主キー属性が主キーに推移的に依存しない関係は、第 3 正規形 (3NF) になります。
注記:
もし A->B そして B→C FD が 2 つある場合 A→C 推移的な依存関係と呼ばれます。の 正規化 2NF 関係から 3NF への変換には、推移的な依存関係の削除が含まれます。推移的な依存関係が存在する場合、属性を行列式のコピーとともに新しい関係に配置することにより、推移的に依存する属性を関係から削除します。以下に示す例を考えてみましょう。
例 1:
表 4 に示す STUDENT の関係では、

FDセット: {STUD_NO -> STUD_NAME、STUD_NO -> STUD_STATE、STUD_STATE -> STUD_COUNTRY、STUD_NO -> STUD_AGE} 候補キー: {STUD_NO} 表 4 のこの関係では、STUD_NO -> STUD_STATE および STUD_STATE -> STUD_COUNTRY が真になります。したがって、STUD_COUNTRY は STUD_NO に推移的に依存します。これは第 3 正規形に違反します。これを第 3 正規形に変換するには、リレーション STUDENT (STUD_NO、STUD_NAME、STUD_PHONE、STUD_STATE、STUD_COUNTRY_STUD_AGE) を次のように分解します。
STUDENT (STUD_NO, STUD_NAME, STUD_PHONE, STUD_STATE, STUD_AGE) STATE_COUNTRY (STATE, COUNTRY)>
例 2:
関係 R(A、B、C、D、E) を考慮します。
A ->BC、CD -> E、B -> D、E -> A>>
上記の関係で考えられるすべての候補キーは {A、E、CD、BC} です。すべての属性はすべての関数依存関係の右側にあり、素数です。
注記:
第 3 正規形 (3NF) が考慮されます 十分な ほとんどの 3NF テーブルには挿入、更新、削除の異常がないため、通常のリレーショナル データベース設計では最適です。また、3NF 関数の依存関係の保持とロスレスを常に保証します 。
結論
結論として、データベースの正規化における重要な段階は、第 3 正規形 (3NF) です。推移的な依存関係に対処し、効果的な情報編成を通じてデータの整合性を向上させます。 3NF は、キー以外のプロパティがのみに依存することを保証します。 主キー 、冗長性を削除し、適切に組織化され正規化されたシステムを作成するのに役立ちます。 リレーショナルデータベースモデル 。
マドゥバラ