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