参考サイト:正規化とは?
山岸製作所のルールとして、開発前の事前準備として データベースの要素の整理 をしてもらいます。
ソフトを開発するにあたって、ここが非常に重要になります。
大まかな整理の手順としては。
手順1:必要なデータを横並びに並べてみる
手順2:手順1でつくったデータベースから、1つのレコードを絞れる要素の項目を選び、別のテーブルとする。
手順3:IDで持たせられるような要素を抽出して、別テーブルとする
この手順で開発前の準備をおこないます。
まずは例題をみてみましょう。
これは、商社の受注管理のソフトの開発をイメージしてください。
何か注文がはいったらその都度、注文番号をふって管理していきます。
1つの注文番号には複数の商品が対象になっています。

これが 手順1:必要なデータを横並びに並べてみる という状態です。
開発担当者のみなさんは、作りたいソフトのデーターベース要素をこのような形で横並びでイメージしましょう。
次はこのデータから 手順2:手順1でつくったデータベースから、1つのレコードを絞れる要素の項目を選び、別のテーブルとする。
という手順になります。
さて、上のデータベースから1つのレコードをしていするには何の要素があればいいでしょうか。
答えを言うと、 注文番号と商品ID になります。

手順2にてこのテーブルに切り分けていきます。
そして 手順3:IDで持たせられるような要素を抽出して、別テーブルとする
これはやらないとどんなことが起きるのか?ですが。
これをしないと、例えば 新規取引先が増えたり、取引先の社名が変わった場合に、レコードのすべての値を変更していく必要があります。
それは使用期間が長いソフトであればかなり面倒なことです。
だから、IDで持たせられる要素はIDで持たせてリレーションをつかって紐づけておけば、名前が変わっても、マスタを編集すれば自動で変わってくれます。エクセルの参照のようなものです。
その手順3を実施したのちが下図です。
こんな形で、最終的には1つのデータベースを3つのテーブルに切り分けることができました。
これを当社の事前準備とします。
そして、この作業が非常に重要な作業となります。

では問題です。
下図は当社のシステムのデータベースの表です。
ここまで学んだ方は、この表が事前準備がされていないとわかると思います。
当社のルールとなる事前準備が終わった形に直してください。


No responses yet