会社のシステム導入(顧客管理システム・販売管理システム等)は、株式会社ネーブルスへご相談ください

  • トップページ
  • サービス概要
  • 実績・事例
  • よくあるご質問
  • お問い合わせ
  • 会社概要

データベースの考え方 履歴

前回、結合について説明しました。正規化すると共通のデータがコード化され、マスタとして管理できる事は理解頂いたと思いますが、逆に正規化した事によって弊害が出る場合があります。
今回は、正規化するべきデータと正規化してはいけないデータについて解説します。

正規化

前回にも出ました、コード化した注文データです。

コード化前のデータ

日付会社名部署商品単価個数金額
2014/01/22あいう商事東京支店まみむめもセット(工業用)2,500円20個50,000円
2014/01/22かきく会社大阪営業所まみむめもセット(工業用)2,500円50個125,000円
2014/01/23あいう商事大阪支店わをんパック(大型)5,800円30個174,000円
2014/01/24さしす工業浦和工場なにぬねのセット1,500円80個120,000円
2014/01/25さしす工業厚木工場なにぬねのセット1,500円70個105,000円

コード化後のデータ

日付会社名部署商品単価個数金額
2014/01/221112,500円20個50,000円
2014/01/222112,500円50個125,000円
2014/01/231225,800円30個174,000円
2014/01/243131,500円80個120,000円
2014/01/253231,500円70個105,000円

今までの説明で、このコード化したデータについて、既に疑問を持たれている方もいるかと思います。

「コード化したデータの中に単価が入っているのは、おかしい。」

その疑問をもう少し分りやすく書くと、こんな感じではないでしょうか?

「商品の項目には、商品の番号が入っている。商品のマスタには、単価が入っているのだから、このコード化したデータには単価が入っていてはおかしい。省略できるはずだ。それこそ正規化できるはずだ。」

商品名単価番号
まみむめもセット(工業用)2,500
わをんパック(大型)5,800
なにぬねのセット1,500

また、もうひとつ「金額」という項目も不要なのではないかと感じる方もいる事でしょう。「単価」があって「個数」があるのだから「金額」の項目は不要なのではないか。

過剰な正規化の弊害

その答えは、以下です。
もし、来月から「わをんパック(大型)」が安くなり単価が5,000円に変わったら、どうなるでしょう。
マスターデータとして登録されているデータの単価を変更する事になります。
すると既に実績として2014年1月23日に単価5,800円で売上が立っているのに、正規化されているため過去のデータまで単価が5,000円となってしまいます。

また、「金額」に関しても割引や値引きが発生し単価×個数の金額でなくなる可能性もありますね。
当然、値引きが発生したのなら、値引きをした事が分る様な記録をしておく事は必須となります。
この様に正規化しては問題が発生する場合もあります。

正規化の検討

つまり、今回の例の単価の様に将来、変わると考えられる項目は、正規化されたコードとしてではなく、実際の値としてデータを保存しておく必要があります。
先程の商品マスタの商品名が将来的に変わる可能性があるならば、コードとしてではなく、商品名を文字としてデータに保管しておいた方が良いかもしれません。
なお、処理としては、マスタデータから単価を取得し、その値を保管すると言う方法になります。
この様に履歴となるデータは、正規化してはいけない場合も存在します。データの正規化を行う場合には、よく検討を重ねて決定する必要があります。
システムが完成した後に過剰な正規化に気が付き修正を行わなければならない場合、膨大な作業が待ち受けているはずですから。






Webシステムに関するお問合せ・ご相談は下記までご連絡ください。

「まだ詳細は決まっていないけれど相談したい。」「なんとなく興味がある」
など、具体的な内容が決まっていない段階でも、お気軽にご連絡ください。

お電話でも、承っております/03-6869-5054 (平日10時~18時)
「Webシステムの件で」
と、お電話ください。

  • お問合せ
  • 開発費用自動お見積り

HOME> Webシステム開発導入読本> データベースの考え方 正規化 ↑Webシステム開発費用の概算をオンラインでご提示致します。(無料)

データベースの考え方 正規化

お客様の声 Webシステム開発導入読本 社長のブログ
TOPへ戻る