見出し画像

正規化:データベース設計の基本:その2

REV26

ソフトウエア工房孫風雅です。

ブログ投稿しています。複数画像付き等最終版は此方から、ご覧ください。

基本に立ち返る意味で、正規化の手順を先ず記して、幾つかの正規化手順について纏めて複数回の分けて、ご説明したいと思います。

先ずは正規化の手順ですが、以下の通りと言われています。

  1. 第一正規化手順

  2. 第二正規化手順

  3. 第三正規化手順

  4. ボイスコッド正規化手順

  5. 第四正規化手順

  6. 第五正規化手順

  7. 第六正規化手順

第六正規化手順は正確に存在するかは?です。(説明は無しにするかもしれません)

この内、通常利用されているのは第一手順から第三手順までが多い様です。従って、今回は第一正規化手順から第三正規化手順までを説明したいと思います。

以下、具体的な正規化手順の説明です。

第一正規化手順

各々の正規化手順の内、一番皆さんが判り易いのがこの手順だと思います。

単純に説明すると、データのフィールドで同じデータを纏めて記述している場合が有ると思いますが、データベースではある部分は複数行纏めてというデータは持てない為、同じデータが同一フィールドに合っても全行に記述するのがセオリーです。これは所謂縦のデータの関係ですが、横のデータの関係、即ち各フィールドごとに同じデータ若しくは計算する事で同じ値が存在する事も意味が無い為纏めるなりして一つになる様にします。

結果、データを1行ずつで扱える状態にする・保存できる状態にするというのが第一正規化手順です。

ある商品の仕入れに関してのサンプルデータを以下に示します。

正規化前データ

仕入ID仕入年月日仕入先仕入先ID商品名商品ID商品数単価A00012023/1/5X商店Z0001リンゴF000110250A0001柿F000225150A00022023/1/6Y商店Z0002みかんF00035080A00032023/1/9Z商店Z0003イチゴF000410045

正規化前:非正規化

第一正規化後データ

仕入ID仕入年月日仕入先仕入先ID商品名商品ID商品数単価A00012023/1/5X商店Z0001リンゴF000110250A00012023/1/5X商店Z0001F000225150A00022023/1/6Y商店Z0002みかんF00035080A00032023/1/9Z商店Z0003イチゴF000410045

第一正規化後

第二正規化手順がボリュームが大きい為、今回は、此処までとさせて頂きます。

皆さんは、WEBシステムを使われていると思いますが、背後でこの様に設計されたデータが動いているという事になりますが、大変さを少しは感じて頂けましたでしょうか?

講師の経験が、皆様のお役に立てれば幸いです。

いいなと思ったら応援しよう!