関係データベースの表設計と正規化
関係データベースの表設計とは、業務で扱うデータを複数の表に分け、各表にどの属性を持たせるかを決める作業である。正規化は、関数従属性に基づいて表を分解し、同じ事実の重複や更新時の矛盾を防ぐための手続きであり、第1正規形から第3正規形までの段階がある。試験では、正規形の条件と変換手順の対応関係、および参照制約の働きが繰り返し問われる。
関数従属性と表の分解の原理
関数従属性とは、ある属性(または属性の組)の値が決まると、別の属性の値が一意に決まる関係を指す。主キーや候補キーは、この関係によって表の各行を一意に識別できる属性の最小の組であり、表の中心となる。正規化では、キー以外の属性がどのキーに依存しているかを見極め、その依存の仕方に応じて表を分ける。依存関係を正しく読み取れないと、分解の方向を誤ってしまう。分解の目的は、単に表を小さくすることではなく、一つの事実が一箇所にだけ記録される状態をつくることにある。
第1正規形から第3正規形までの条件
第1正規形は、一つの属性に複数の値を入れる繰返し属性が存在しない状態である。繰返し属性を含む表は、値ごとに行を分けるなどして単一値の表に直す必要がある。 第2正規形は、主キーの真部分集合、つまり主キーの一部にだけ非キー属性が関数従属しない状態である。複合キーをもつ表で、キーの一部だけで決まる属性があるとき、その部分を別の表に切り出して部分関数従属を除く。 第3正規形は、非キー属性が主キーに対して推移的に関数従属しない状態である。主キーから別の非キー属性が決まり、さらにその属性から第三の属性が決まるような関係があれば、その推移的な関係を分解する。 これら三つの条件は、繰返し属性の除去、部分関数従属の除去、推移的関数従属の除去という順に対応しており、この対応を取り違えると誤った判断につながる。
この節の続き
- 参照制約と外部キーの働き
- 参照先の行を削除したときの動作
- 実務での表設計と試験で問われやすい区別
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む