■正規化■
リレーショナル・データベースを設計するうえで必要な作業が「正規化」である。正規化とは、「テーブル(表)の設計における基本的な約束事」のことである。この正規化をおこなうことで、無駄がなくて効率のよいテーブルを設計ができる。正規化は、第一正規形、第二正規形、第三正規形、第四正規形と第五正規形がある。通常は、第一正規形、第二正規形、第三正規形までを使う。
  正規化をどのようにおこなうか、以下のDMの内容をデータベースに表現できるようにテーブルを作成していくことで解説をしていく。

              

  まず、DMをそのまま表(以下、テーブル)に置きかえたのが次の表である。

      

第一正規化:繰り返されているデータを見つける
  この表を見ると分かるように発送元に関するデータが繰り返し出てきている。これを解消するために発送元とそれ以外の表に分ける。

      

  このように繰り返しを取り除いた状態を「第一正規形」と呼ぶ。第一正規化の視点は、繰り返されているデータを見つけることである。

第二正規化:主キーが決まると他の列の値も決まるようにする
  テーブル「DM」を見ると、「DM発送日」は「DMNo」が決まると、決定する。しかし、「発送元」と「tel」はDMがいつ発送されても関係ない。言い換えれば、「DMNo」(主キー)が決まっても「発送元」と「tel」は決まらないということだ。そこで、テーブル「発送元」を作ってテーブル「DM」と分離させる。ここでテーブル「DM」と関連付けるために「DM」と「発送元」にそれぞれ「発送元ID」の列を追加する。

     

同じようにして考えると、主キーである「DMNo」と「発売日」の値が決まっても「製品」の値は決まらない。したがって、テーブル「製品」を作って分離させる。テーブル「DM詳細」と関連付けるために「DM詳細」と「製品」にそれぞれ「製品ID」の列を追加する。

     

このように主キーが決まれば他の列の値も決まるような状態を「第二正規形」と呼ぶ。第二正規化の視点は、主キーが決まれば他の列の値も決まるかということである。

第三正規化:主キー以外の列の値が他の列の値を決めていないようにする
  テーブル「製品」を見てみると、「メーカー」は「製品名」が決まると決まる。つまり、主キーである「製品ID」以外の列の値が他の列の値を決めている
ということである。そこで、テーブル「メーカー」を作って分離させる。テーブル「製品」と関連付けるために「製品」と「メーカー」にそれぞれ「メーカーID」の列を追加する。

     

このように主キー以外の列の値が他の列の値を決めていないようになった状態を「第三正規形」と呼ぶ。第三正規化の視点は、主キー以外の列の値が、他の列の値を決定していないかということである。

     

 

 Copyright (C) 2002 Pursue Inc., All Rights Reserved