データベース 正規化
ホーム > 発行済み
読者の情報処理試験合格(シスアドから高度まで)を目指しています。
作者は、アプリケーションの開発を行なっているエンジニアです。
情報処理試験の知識(理論)を、日々の業務(実践)にどう生かしていくか、その辺りの事を意識
して、発行していきます。

データベース 正規化


                                               
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        ★★ 『情報処理試験のお勉強(千里の道も一歩から)』 ★★
                           2005/05/01 第48号
        知識の習得は、本当に楽しいものです。
        それぞれの目標に向かって、一歩ずつ踏出して行きましょう。
     
     ----------------------------------------------------------------------
        まぐまぐ:1324 めろんぱん:157 メル天:89 カプライト:103
        E-Magazine:119 Macky!:31 melma:45     総発部数:1868
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     
      秋期にネットワークに関する出題がある科目を受験しようと考えている方。
     
      テクニカルエンジニア(ネットワーク)、情報セキュアド、ソフ開、基本情報、
      上級・初級シスアド、アプリケーションエンジニアを受験しようかと考えている方は、
      まちがいなく、申込みしておいた方が良いですよ。
      
      試験範囲の技術習得の手助けになります。
      
      ・「5分でわかる最新キーワード解説」
      ・「ネットワーク早わかり講座」
      ・「運用コストを減らすワザ50」
      ・「すご腕アナリスト市場予測」
     
      今すぐ、無料登録をして、試験対策の準備が出来る環境を、作っておくことを
      お薦めしています。
     
       実力の習得は、日頃の努力です。 貪欲に知識の習得をしましょう。
       
       ▽ http://jstudy.fc2web.com/keyman2.html
     
     
     
       『情報処理技術者試験一種 午前平成12年問43』
     
      次のような繰返し構造をもったレコードからなるデータを,第3正規形に正規
     化したものはどれか。ここで,下線部分は主キーを表す。また,単位と単価は商
     品コードごとに決まるものとする。
     
     ┌────┬──┬─────┬───┬──┬─────┬──┬──┬──┐
     │伝票番号│日付│顧客コード│顧客名│住所│商品コード│単位│数量│単価│
     │ ̄ ̄ ̄ ̄│  │     │   │  │     │  │  │  │
     └────┴──┴─────┴───┴──┴─────┴──┴──┴──┘
                          └─────┴──┴──┴──┘
                           └─────┴──┴──┴──┘
                                  :繰返し
     
      ア ┌────┬─────┐
        │伝票番号│顧客コード│
        │ ̄ ̄ ̄ ̄│     │
        └────┴─────┘
        ┌─────┬───┬──┐
        │顧客コード│顧客名│住所│
        │ ̄ ̄ ̄ ̄ ̄│   │  │
        └─────┴───┴──┘
        ┌────┬──┬─────┬──┐
        │伝票番号│日付│商品コード│数量│
        │ ̄ ̄ ̄ ̄│ ̄ ̄│ ̄ ̄ ̄ ̄ ̄│  │
        └────┴──┴─────┴──┘
        ┌─────┬──┬──┐
        │商品コード│単位│単価│
        │ ̄ ̄ ̄ ̄ ̄│  │  │
        └─────┴──┴──┘
     
      イ ┌────┬──┬─────┐
        │伝票番号│日付│顧客コード│
        │ ̄ ̄ ̄ ̄│  │     │
        └────┴──┴─────┘
        ┌─────┬───┬──┐
        │顧客コード│顧客名│住所│
        │ ̄ ̄ ̄ ̄ ̄│   │  │
        └─────┴───┴──┘
        ┌────┬─────┬──┐
        │伝票番号│商品コード│数量│
        │ ̄ ̄ ̄ ̄│ ̄ ̄ ̄ ̄ ̄│  │
        └────┴─────┴──┘
        ┌─────┬──┬──┐
        │商品コード│単位│単価│
        │ ̄ ̄ ̄ ̄ ̄│  │  │
        └─────┴──┴──┘
     
      ウ ┌────┬──┬─────┬───┬──┐
        │伝票番号│日付│顧客コード│顧客名│住所│
        │ ̄ ̄ ̄ ̄│  │     │   │  │
        └────┴──┴─────┴───┴──┘
        ┌────┬─────┬──┐
        │伝票番号│商品コード│数量│
        │ ̄ ̄ ̄ ̄│ ̄ ̄ ̄ ̄ ̄│  │
        └────┴─────┴──┘
        ┌─────┬──┬──┐
        │商品コード│単位│単価│
        │ ̄ ̄ ̄ ̄ ̄│  │  │
        └─────┴──┴──┘
     
      エ ┌────┬──┬─────┬───┬──┐
        │伝票番号│日付│顧客コード│顧客名│住所│
        │ ̄ ̄ ̄ ̄│  │     │   │  │
        └────┴──┴─────┴───┴──┘
        ┌────┬─────┬──┬──┬──┐
        │伝票番号│商品コード│単位│数量│単価│
        │ ̄ ̄ ̄ ̄│ ̄ ̄ ̄ ̄ ̄│  │  │  │
        └────┴─────┴──┴──┴──┘


     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
      メールマガジンがずれて見える方は、
       http://www.mag2.com/faq/mua.htm を参考にしてください。
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



合格を勝取るにはコレ!! 絶対に読んでおくべきです。

▽ http://www.mag2.com/m/0000120201.htm


     
     『解説』
     
       今回の問題は、正規化についての問題です。
     
       正規化とは、データのメンテナンス性を高めるなどの目的から、データ
       ベース内で同じ情報が2回以上記録されず、テーブルひとつひとつは主キー
       から直接連想されるデータのみで構成されるよう設計することですね。
     
       正規化を進めるにあたり、データの重複をはなくなり,保守・管理を容易に
       します。(整合性を高めます。)
     
       ただし、検索を行なう時に結合処理が必要となるために、検索効率は悪く
       なります。 そのため表示速度を重視するシステム等では、わざと正規化
       を緩め、検索の効率性を上げたりします。
     
     
       それでは、正規化を進めていきましょう。
     
     ┌────┬──┬─────┬───┬──┬─────┬──┬──┬──┐
     │伝票番号│日付│顧客コード│顧客名│住所│商品コード│単位│数量│単価│
     │ ̄ ̄ ̄ ̄│  │     │   │  │     │  │  │  │
     └────┴──┴─────┴───┴──┴─────┴──┴──┴──┘
                          └─────┴──┴──┴──┘
                           └─────┴──┴──┴──┘
                                  :繰返し
     
     
       正規化を進めるときに、最初にやるべきことは主キーを見つけ出すことです。
       問題文に「主キーは、伝票番号である」ことを記す文言がありますが、それ
       だけでは、行を一意に特定することが出来ませんね。
     
       繰返しが複数発生した時には、伝票番号の同じ行が複数出てしまい行を一意
       に特定出来なくなってしまいます。
       そのため、主キーは{伝票番号、商品コード}にする必要があります。
     
       このようにすることにより、「定義域は単純であり繰返し項目も存在しない」
       第一正規形を満たすことになります。
     
       続いて、第二正規形にしましょう。
       第二正規形を満たす条件は「部分関数従属の排除」です。
     
       日付、顧客コード、顧客名、住所は、伝票番号に関数従属しています。
       単位、単価は、商品コードに関数従属しています。 これについては、
       問題文に記されていますね。
       よって、これらの項目を別テーブルに分けます。
       
       すると、以下のようなテーブル構成になりますね。
       テーブル名についても、妥当な名前を付けます。
       
       伝票明細(伝票番号、商品コード、数量) 主キー{伝票番号、商品コード}
       伝票  (伝票番号、日付、顧客コード、顧客名、住所) 主キー{伝票番号}
       商品  (商品コード、単位、単価) 主キー{商品コード}
     
       という3テーブルが出来ました。
     
       
       続いて、第三正規形にしましょう。
       第三正規形は「推移関数従属の排除」です。
     
       顧客名、住所は、顧客コードに関数従属しています。
       よって、これらの項目を別テーブルに分けます。
     
       すると、以下のようなテーブル構成になりますね。
       テーブル名についても、妥当な名前を付けます。
     
       伝票明細(伝票番号、商品コード、数量) 主キー{伝票番号、商品コード}
       伝票  (伝票番号、日付、顧客コード) 主キー{伝票番号}
       商品  (商品コード、単位、単価) 主キー{商品コード}
       顧客  (顧客コード、顧客名、住所) 主キー{顧客コード}
     
     
       ここで、出来上がったテーブルと設問を見比べると。。。
       同じ形のテーブルが存在している
     
      イ ┌────┬──┬─────┐
        │伝票番号│日付│顧客コード│
        │ ̄ ̄ ̄ ̄│  │     │
        └────┴──┴─────┘
        ┌─────┬───┬──┐
        │顧客コード│顧客名│住所│
        │ ̄ ̄ ̄ ̄ ̄│   │  │
        └─────┴───┴──┘
        ┌────┬─────┬──┐
        │伝票番号│商品コード│数量│
        │ ̄ ̄ ̄ ̄│ ̄ ̄ ̄ ̄ ̄│  │
        └────┴─────┴──┘
        ┌─────┬──┬──┐
        │商品コード│単位│単価│
        │ ̄ ̄ ̄ ̄ ̄│  │  │
        └─────┴──┴──┘
     
       が正解だとわかります。
     
     
     
       折角、ここまで正規化を進めたので、復習も兼ねてER図も
       考えて見ましょう。
       
       伝票明細(伝票番号、商品コード、数量) 主キー{伝票番号、商品コード}
       伝票  (伝票番号、日付、顧客コード) 主キー{伝票番号}
       商品  (商品コード、単位、単価) 主キー{商品コード}
       顧客  (顧客コード、顧客名、住所) 主キー{顧客コード}
     
        ┌──┐ ┌────┐ ┌──┐
        │伝票│→│伝票明細│←│商品│
        └──┘ └────┘ └──┘
          ↑
        ┌──┐
        │顧客│
        └──┘
     
     
       上記の様になりますね。
     
       過去にER図、正規化について扱っています。
       余力のある人はどうぞ。
       「ER図」
         [http://jstudy.fc2web.com/old_merumaga/20040201.html]
         [http://jstudy.fc2web.com/old_merumaga/20040208.html]
       「正規化」
         [http://jstudy.fc2web.com/old_merumaga/20031228.html]
         [http://jstudy.fc2web.com/old_merumaga/20040215.html]
     
     
      今日の解説、理解できて納得ならば、クリックをお願いします。
      ▽ http://ranking.with2.net/link.cgi?33705
     
     



合格を勝取るにはコレ!! 絶対に読んでおくべきです。

▽ http://www.mag2.com/m/0000120201.htm


     
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
      『 大手資格学校 模範解答 』
     
        資格の学校 TACの解答速報
        ▽ http://www.tac-school.co.jp/sokuhou/joho/joho0504.html
        
     
      『 試験センター 模範解答 』
     
        試験センター 模範解答
        ▽ http://www.jitec.jp/1_05goukaku/kaitourei.html
     
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
       『 情報処理試験のお勉強(千里の道も一歩から) 』
       作者  :メガフラ(megafriday@yahoo.co.jp)
       HP  :http://jstudy.fc2web.com/
       発行周期:隔週
     
      以下のスタンドより、発行させて頂いています。
      配信登録、配信中止も以下のアドレスよりお願いします。
     
      まぐまぐ  :http://www.mag2.com/m/0000120201.htm
      めろんぱん :http://www.melonpan.net/mag.php?005485
      メル天   :http://melten.com/m/16380.html
      カプライト :http://cgi.kapu.biglobe.ne.jp/m/8670.html
      E-MAGAZINE :http://www.emaga.com/info/megafri.html
      Macky!   :http://macky.nifty.com/cgi-bin/bndisp.cgi?M-ID=megafriday
      melma!   :http://www.melma.com/mag/20/m00102220/index_bn.html
     
     ----------------------------------------------------------------------
     <免責事項>掲載されているいかなる情報により損害を被っても、
           当方では責任を負いませんことをご了承ください。
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     
     『秋季試験対策 参考書・問題集』
     
      基本は、無理せず焦らずコツコツと。
      早めに午後試験に目を通し、傾向と対策を練っておくと、より良いですよ。
     
     
          システムアナリスト試験
         ▽ http://jstudy.fc2web.com/book/book_fall_sn.html
     
          プロジェクトマネージャー試験
         ▽ http://jstudy.fc2web.com/book/book_fall_pm.html
     
          アプリケーションエンジニア試験
         ▽ http://jstudy.fc2web.com/book/book_fall_ae.html
     
          テクニカルエンジニア(ネットワーク)試験
         ▽ http://jstudy.fc2web.com/book/book_fall_nw.html
     
          情報セキュリティアドミニストレータ試験
         ▽ http://jstudy.fc2web.com/book/book_fall_ss.html
     
          上級システムアドミニストレータ試験
         ▽ http://jstudy.fc2web.com/book/book_fall_JyokyuSysAdo.html
     
          ソフトウェア開発技術者試験
         ▽ http://jstudy.fc2web.com/book/book_sofukai.html
     
          基本情報技術者試験
         ▽ http://jstudy.fc2web.com/book/book_fall_fe.html
     
          初級システムアドミニストレータ試験
         ▽ http://jstudy.fc2web.com/book/book_fall_SyokyuSysAdo.html
     
     





情報処理試験のお勉強(千里の道も一歩から) (マガジンID:0000120201)

メールアドレス:
メールアドレス:

Powered by まぐまぐ


メインメニューに戻る

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送