第2正規形
メニューを表示するにはスワイプしてください
第二正規形を理解するためには、まず複合主キーの概念に慣れることが重要です。複合主キーとは、テーブル内の2つ以上の属性を組み合わせて形成されるキーです。複合キーの目的は、複数の列の組み合わせによって各行を一意に識別することです。前のセクションでも触れたように、複合主キーを構成する属性はキー属性と呼ばれます。
例
Employee-Departmentテーブルを考えます。EmployeeテーブルにはEmployeeIDとDepartmentIDの列があるとします。各従業員が複数の部署で働く可能性があり、各部署にも複数の従業員が所属できるため、両方の列を組み合わせた複合キーがテーブルの主キーとして機能します。
第二正規形のルール:
-
テーブルは第一正規形の条件を満たしていること;
-
すべての非キー属性(主キーに含まれない列)は、主キー全体に完全従属していること。
後者のルールを理解するためには、「完全従属」の意味を明確にすることが重要です。列が主キーに完全従属しているとは、その依存関係が主キー全体に対して成り立ち、一部のみに依存していない場合を指します。
例の場合、テーブルはEmployeeIDとDepartmentIDからなる複合キーで第一正規形を満たしています。しかし、第二正規形は満たしていません。給与は従業員IDと部署IDの両方に依存していますが、部署責任者は部署IDのみに依存し、従業員の識別子には依存しません。
NameおよびSurname属性はEmployeeIDに依存しています。したがって、これらは別のテーブルに格納すべきです。このように、一部の属性は複合キーの一部のみに依存しています。
この構成は更新異常を引き起こす可能性があります。たとえば、2行目を削除すると、その部署の責任者に関する情報も失われてしまいます。なぜなら、他の行にはその特定の部署IDが存在しないからです。
正規化
それでは、正規化を進めましょう。第二正規形では:
更新されたデータベースは、どの属性も複合キーの一部だけに依存しないことを保証:テーブルは第2正規形に準拠し、初期テーブルから行が削除されても重要な情報が保持される。
注意
複合キーを持たない第1正規形のテーブルは、自動的に第2正規形の要件を満たす。
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください