PostgreSQL データベースの正規化
https://oss-db.jp/dojo/dojo_info_04
第1正規形
- 主キーを設定する。
- 繰り返し現れる列のデータをグループ化して、別の表に切り離す。
- 導出項目(他の属性から算出できる項目)を削除する。
第2正規形
- 第一正規形の条件を満たす。
- すべての非キー属性が候補キーに完全関数従属する。
- 主キー以外の項目(非キー属性)について、主キーの一部の要素だけで決まる(部分関数従属と言います)ものがあれば別テーブルに分離させましょう。
第3正規形
- 第二正規形の条件を満たす。
- すべての非キー属性が候補キーに推移的関数従属しない。
- 主キー以外の項目について項目同士で依存関係を持っているもの(推移的関数従属と言います)も、別テーブルに切り分けましょう。
受験対策
2.04_Silverの例題解説「一般知識 - データベース設計、正規化」
2.13_Silverの例題解説「一般知識 - リレーショナルデータベースに関する一般的知識(データベースの設計と正規化) 」
2.17_Silverの例題解説「一般知識 - リレーショナルデータベースに関する一般知識(データベースの設計と正規化)」
関数従属性
- YはXに関数従属する。
- X → Y
部分関数従属性
- YがXの一部に関数従属することであり、XがABからなるとすると、「{A, B} → Y」かつ「A → Y」または「B → Y」と表す。
- Yは、「A → Y」の場合はAに、「B → Y」の場合はBに部分関数従属するという。
完全関数従属性
- 「XがABからなる場合、AとBが決まるとYが決まる」という関係。
- 「{A, B} → Y」と表記し、YはAとBに完全関数従属するといいます。
推移関数従属性
- 「Xが決まるとYが決まり、Yが決まるとZが決まる」という関係。
- X → Y、 Y → Z、但しY → Xは不成立の場合、「X → Z」と表記し、ZはXに推移関数従属するといいます。