【データの正規化】徹底解説!初心者でもすぐわかる!IT基礎知識

データ IT基礎知識

 

データの正規化について説明していくよ~!

 

 

データの正規化とは…?

正規化とは、関係データベースを作るときに一定のルールに基づいて表を分割し、利用しやすくすることです。
関係データベースを制作する場合、表の構成を決める必要があります。
しかし必要な項目をただ集めただけで表を作ってしまうと、データが重複したり表の出来としてはいまいちになります。
正規化を行うことでデータ同士の関連性が明確になり、表の更新が簡単になります。通常は、第一正規化~第三正規化まで行われます。

 

正規化で必要な用語

主キー

主キーは、データベースの表の行を一意に識別できるキーのことです。

例として社員番号、学生番号等が挙げられます。

名前等は同姓同名の場合もあり重複する可能性があるので、一意に特定できるように主キーが用いられます。

主キーの条件:①重複しない ②空の値(NULL値)がないこと

外部キー

外部キーは分割された表と表を関連づけるためにほかの表の主キーを参照する列のことです。

外部キーでも主キーを用います。

 

関数従属

主キーが決まれば列の値が一意に決まる関係のことです。

 

部分関数従属

複数の主キーの一部の項目で列の値が一意に決まる関係のことです。

 

完全関数従属

複数の主キーを使って値が決定する関係のことです。

 

関数従属、部分関数従属、完全関数従属の3つは列と列の関係を表したもの。「主キーに対してその項目がどのような関係にあるか」ということを意味しています。
では実際にこちらの表を正規化していきましょう。
正規化を行う間の表のことを非正規形というので、下の表は非正規形の表です。
表

第一正規化

第一正規化レコードの中にある繰り返される項目を独立させそれぞれを1行にする作業です。
1つの行の中に特定の項目が繰り返し含まれていたり、複数の項目が書かれた項目を排除します。

表

表のように繰り返し項目を1行ずつに分けます。

この表は簡略的なもので入荷のデータのみ扱っていますが、通常の業務で使う表は出荷データ等もほかに存在します。よって在庫数は【在庫数=入荷数ー出荷数】の計算で求められます。このように単純に計算だけで求められるデータも削除します。

 

第二正規化

第二正規化は、一言でいうと主キーで決定する完全関数従属の項目と、主キーの一部分で決定する部分関数従属の2つを別の表に独立させる作業です。

完全関数従属と部分関数従属は上で説明してあるから、

その内容を踏まえてかんがえてね!

第一正規形の表では、仕入れ先の情報・商品の情報・入荷の履歴等を同じ表で管理しています。

その為、もし新しい仕入れ先を追加したい場合は入荷するまでデータの追加ができません。また商品の名前を修正したい場合、1つ1つのデータをすべて編集しなければならず大変です。

これらの不具合を解消するために表を独立させてあげます。

第一正規形の表から、仕入先、商品名、入荷日、この3項目が1つの行を一意に決めることができる主キーだと分かります。

また、主キー以外の項目の中で、主キーの一部分だけでレコードを決めることができる要素も別の表に分割します。

表

 

 

第三正規化

第三正規化主キー以外の項目に関数従属する項目を別の表に独立させる作業です。

レコードの中にある主キー以外の項目の中でさらに項目同士が従属関係にあるものを細かく表に分けていきます。すると下の表になります。

表

このように「Aが決まるとBが決まる、Bが決まるとCが決まる」という関係のことを推移的関数従属といいます。
つまり第三正規形では推移的関数従属を独立させるという作業をします。

 

まとめ

このように正規化を行うことで、効率的にデータを管理できるようにしてるということです。

以上、解説はここまで!

Thank you

アバター

 

 

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