Access(ADP & VBA)とMSDEで作るクライアントサーバーシステム(c/s)

 
実践テクニック、Accessで作るクラサバシステム



2003/01/31配信
 

第1コース  増刊号1 「正規化について」




 

■ 正規化について

  設計がうまく作れてないと必要以上にシステムの作成期間が
    長くなります。

  設計次第でシステムが決まると言っても過言ではありません。
  多少時間をかけても構わないと思います。
  シンプルな設計を心がけましょう。


  データーベースを設計するには、どのような表の集合体にするかです

  表のデータ間の意味的な関係に注目して、できる限り不必要な項目の
  重複がないような表に分割していくことを正規化といいます。

  では、わかりやすく簡単に記述します。

  正規化には、第1正規化、第2正規化、第3正規化などがあります。


  1.第1正規化
    
    繰り返しのグループを取り除きます。

    例えば売上伝票は、売上トランと売上明細トランで構成
    されているとします。
    売上トランが1に対して、売上明細トランは複数あります。
    つまり、売上明細トランは繰り返しのグループとなります。
    それを分離させます。


   「売上トラン」         「売上明細トラン」

    売上伝票番号(主キー)     売上伝票番号(主キー1)  
    売上日付            商品コード(主キー2)
    得意先コード          商品名
    得意先名            数量
    担当者名            単価

    *売上明細トランの売上伝票番号(主キー1)、商品コード
    (主キー2)を合わせて複合キーと呼びます。                       
 

  2.第2正規化

    売上明細トランの複合キーの一部(ここでは、商品コード)にのみ
    関係従属しているデータ項目を取り出して別の新しい表を
    作成し分離する。


    <<正規化前>>         <<正規化後>>

   「売上明細トラン」   --------> 「売上明細トラン」
               
    売上伝票番号           売上伝票番号
    商品コード              商品コード
    商品名                数量
    数量                
        単価
   
    I-----------------------> 「商品マスタ」

                            商品コード(主キー)
                          商品名   
                          単価

  3.第3正規化

    主キー以外(ここでは、得意先コード)に、データ項目同士に
    従属関係がある場合、それを分離する。

    <<正規化前>>         <<正規化後>>

   「売上トラン」   ----------->  「売上トラン」
               
    売上伝票番号            売上伝票番号
    売上日付                売上日付  
    得意先コード              得意先コード
    得意先名             
    担当者名      

         I------------------------>  「得意先マスタ」

                             得意先コード(主キー)
                             得意先名
                             担当者名
 

  第4正規化もありますが、今回は説明を省きます。
  第3正規化までできればよいと思います。


  では、正規化すればどうなるのか。
  そのメリットとデメリットとは。

  *メリット
  
   ・重複を排除できてデーターベースを小さくできる。
   ・全体の整合性を高める。
   ・データの更新、追加、削除を効率化できる。
  
  *デメリット

   ・検索処理には適さない。
   ・正規化しすぎるとわかりにくい。
   ・正規化しすぎてスピードが落ちる場合がある。


  <まとめ>

  正規化は、更新処理を主とした処理の効率化を重視した考え方です。

  とにかく、正規化に努めればよいというものではありません。
  つまり、細かく分割さえすればよいとはいえません。

  分割されたテーブル同士をリレーションで連結します。
  が、テーブルを正しく正規化されていて、なおかつリレーションも
  うまく結合されているはずなのにレスポンスが遅いと感じる事が
    あります。

  これを回避する場合、結合の数を減らすなどの処理をします。
  あまりにも、正規化にこだわり過ぎるとこのような結果を招くわけです

  安易な設計もいけませんが、正規化にばかりこだわりすぎるのも
  考えものです。

  正規化も適度に。

===================================================================

                ◆ 実践テクニック、Accessで作るクラサバシステム ◆

Accessの扱い方を教わるには、システムの完成品から学ぶのが一番

  編集・構成:高橋浩
  提供・発行:ティウェア

http://www.1tware.com/index.html

Access2000+MSDE2000、Access2002+MSDE2000、Access2003+MSDE2000で
作る販売管理ソフト、クライアントサーバーシステムを構築

※当メールマガジンに掲載された記事を許可なく転載することを禁じます。

===================================================================

実践テクニック、Accessで作るクラサバシステム(隔週 火曜日発行中)

SEが10年以上の開発ノウハウを惜しみなく完全公開!

Mail:  (半角英数字)     Powered byまぐまぐ


HOME / お客様の声 / メルマガ / 販売管理ソフト教材 / 会社概要/ 特定商取引法/ お申し込み
 お問い合わせ / メルマガのご意見ご感想 / メルマガのバックナンバー/ プライバシーポリシー
 


 Copyright (c) 2001 ティウェア All rights reserved.