関係データベース 正規化について わかりやすく説明

関係データベース

正規化について

わかりやすく説明

正規化とは、データベース(関係データベース)を重複なく作成し、データの追加、更新、削除を行う際、データの不整合や喪失を防ぐための設計を指します。そのために行う作業は「表の横縦の繰り返しをなくしていくこと」です。

関係データベースとは、行と列で作成される、複数の表形式の「テーブル」を、互いに関連付けて作成されたデータベース。リレーショナルデータベース(RDB)ともいいます。

正規化は、第1正規形から第5正規形までありますが、第3正規形までに留めることが一般的です。

スポンサーリンク

第1正規形について

第1正規形は「横方向」の重複をなくしていきます。

上のような表があったとします。

注文番号ごとに、いつ、だれが、どのような商品を購入したのががわかるようになっています。

上の表の第1正規化を行うと下記のようになります。

もとの表では、商品名が繰り返されていたため、重複をなくします(横の重複をなくす)

オレンジセルを「主キー」とします。

ここで「主キー」と「外部キー」について知っておきましょう

主キー
データが1意であること(重複がないこと)
NULLでないこと(空欄ではないこと)
※行を組み合わせることで主キーとして扱うことを「複合キー」といいます

外部キー
ほかの表の主キーを参照することで、表と表を対応付ける項目(列)のこと
外部キーは参照先となるテーブルの列内ある値のみしか使用できません。

第2正規形について

第2正規形は「縦方向」の重複をなくしていきます。

第2正規形の条件は、第1正規形の条件に加え主キーが他の項目に対して「完全関数従属」している状態とします。

完全関数従属

「〇〇と決まれば××と1つに決まる」状態のこと

第1正規形の表から「注文テーブル」と「商品テーブル」を作成し、残りを「数量テーブル」とします。

「注文テーブル」の主キー「注文番号」が決まれば他の列の値が決まる状態。
また、「商品テーブル」の主キー「商品ID」が決まれば他の列の値が決まる状態。

上記とすることが第2正規形です。

第3正規形について

第3正規形は、第2正規形同様、「縦方向」の重複をなくしていきます。

第3正規形は、第2正規形の各テーブル内での関係従属している部分を別テーブルに分けます。

上記のように、第2正規形の「注文テーブル」の「ユーザーID」を別テーブルに分けることができます。

上記とすることが第3正規形です。

学び
スポンサーリンク
mairoをフォローする
たまたまたまごTOWN

コメント

タイトルとURLをコピーしました