平成20年秋期試験問題 午前問57

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
次のような繰返し構造をもったデータを,第3正規形に正規化したものはどれか。ここで,下線部分は主キーを表す。また,単位と単価は商品コードごとに決まるものとする。
57.gif

  • 57a.gif
  • 57i.gif
  • 57u.gif
  • 57e.gif
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:データベース設計
解説
関係データベースの正規化は次のように3段階に分けて行います。
第1正規化
繰り返し項目をなくす
第2正規化
主キーの一部によって一意に決まる項目を別表に移す
第3正規化
主キー以外の項目によって一意に決まる項目を別表に移す
この手順どおりに正規化を進めていきます。まず第1正規化では繰返し項目をなくすためにそれらを複数のレコードに分割します。
57_1.gif
1つの紙に複数の商品が記載された伝票をイメージすると、
(伝票番号1234, …,商品コード111, …)
(伝票番号1234, …,商品コード222, …)
というように、同じ伝票番号を持つレコードが複数存在することになるので、表中のレコードを一意に特定するためには「伝票番号」+「商品コード」の複合主キーにしなければならないことがわかります。

第2正規化では主キーの一部によって一意に決まる項目を別表に移します。表を見ると「伝票番号」から「日付」「顧客コード」「顧客名」「住所」の4つ、「商品コード」から「単位」「単価」の2つが一意に定まることがわかるのでこれらの関係を別表に分離します。
57_2.gif
第3正規化では主キー以外の項目によって一意に決まる項目を別表に移します。主キー以外の項目をみると、「顧客コード」から「顧客名」「住所」が一意に定めることがわかるためこの関係を別表に分離します。
57i.gif
以上より、設問のデータを第3正規化まで完了すると「イ」のデータベース構造となります。

この問題の出題歴


Pagetop