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

データベース 正規化とは


                                           
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        ★★ 『情報処理試験のお勉強(千里の道も一歩から)』 ★★
                           2004/04/11 第19号
        知識の習得は、本当に楽しいものです。
        それぞれの目標に向かって、一歩ずつ踏出して行きましょう。
     ----------------------------------------------------------------------
        まぐまぐ:739 めろんぱん:90 メル天:55 カプライト:70
        E-Magazine:54 Macky!:24 melma:15      総発部数:1047
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     
      秋期にネットワークに関する出題がある科目を受験しようと考えている方。
     
      テクニカルエンジニア(ネットワーク)、情報セキュアド、ソフ開、基本情報、
      上級・初級シスアド、アプリケーションエンジニアを受験しようかと考えている
      方は、まちがいなく、申込みしておいた方が良いですよ。
      
      試験範囲の技術習得の手助けになります。
      
      ・「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://www.mag2.com/m/0000120201.htm



     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     『編集後記』
     
       いよいよ、情報処理技術者試験まであと1週間となりましたね。
       今回が、試験前の最後の発行となります。
       今まで、勉強してきた事が生かせるように、万全の体調で試験に
       のぞんでください。
     
       理解不能な問題が出題されても、とりあえず何か書きましょう。
       多くの受験者が同じ問題でミスした時に、部分点がもらえるかも
       しれません。
     
       特に、合格率の低い高度の試験はその傾向が強い様に思います。
       最後のあがきが合格への道につながるかもしれません。
       あきらめずに、最後まで答案用紙を埋めて、がんばりましょう。
     
     
     
       前回、アンケートに、ご協力頂きましてありがとうございました。
       今後の「情報処理試験のお勉強(千里の道も一歩から)」の発行に
       生かして行きたいと思っています。
       アンケートの一番下のリンク「途中経過・最終結果を見る」から、
       結果を閲覧する事が出来ます。
       興味のある方は、どうぞご覧ください。
     
       今回、受験される科目はなんですか?
     
       ◆システム監査技術者試験
       ┗< http://clickanketo.com/cgi-bin/a.cgi?q00020120a71 >
       ◆テクニカルエンジニア(データベース)試験 
       ┗< http://clickanketo.com/cgi-bin/a.cgi?q00020120ae2 >
       ◆テクニカルエンジニア(システム管理)試験 
       ┗< http://clickanketo.com/cgi-bin/a.cgi?q00020120a53 >
       ◆テクニカルエンジニア(エンベデッドシステム)試験
       ┗< http://clickanketo.com/cgi-bin/a.cgi?q00020120ac4 >
       ◆ソフトウェア開発技術者試験 
       ┗< http://clickanketo.com/cgi-bin/a.cgi?q00020120a35 >
       ◆基本情報技術者試験
       ┗< http://clickanketo.com/cgi-bin/a.cgi?q00020120aa6 >
       ◆初級システムアドミニストレータ試験
       ┗< http://clickanketo.com/cgi-bin/a.cgi?q00020120a17 >
       ◆今回は受験しない
       ┗< http://clickanketo.com/cgi-bin/a.cgi?q00020120a88 >
       ■途中経過・最終結果を見る
       ┗< http://clickanketo.com/cgi-bin/a.cgi?q00020120a00 >
     
       ☆締切:2004年04月12日23時00分
       ★協力:メールマガジンをおもしろくする『クリックアンケート』
                →→  [ http://clickanketo.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
     
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
       『 情報処理試験のお勉強(千里の道も一歩から) 』
       作者  :メガフラ(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
     
     ----------------------------------------------------------------------
     <免責事項>掲載されているいかなる情報により損害を被っ
                 ても、当方では責任を負いませんことをご了承ください。
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     





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

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

Powered by まぐまぐ


メインメニューに戻る

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