データベース

基本情報技術者試験 科目A免除 修了試験 20120624 実施分 問30

次のような繰返し構造をもったデータを,第 3 正規形に正規化したものはどれか。ここで,下線部分は主キーを表す。また,単位と単価は商品コードごとに決まるものとする。
元データ(繰返し構造): [伝票番号(主キー)|日付|顧客コード|顧客名|住所|#1|#2|#3|…|#n]。#1〜#n は「繰返し」で,各 #: [商品コード(主キー)|単位|数量|単価]。 選択肢は各項の表(レコード)の列挙。下線(主キー)は図の下線に基づく。
  • ア [図] 4 表: 伝票番号(主キー)・顧客コード / 顧客コード(主キー)・顧客名・住所 / 伝票番号(主キー)・日付(主キー)・商品コード(主キー)・数量 / 商品コード(主キー)・単位・単価
  • イ [図] 4 表: 伝票番号(主キー)・日付・顧客コード / 顧客コード(主キー)・顧客名・住所 / 伝票番号(主キー)・商品コード(主キー)・数量 / 商品コード(主キー)・単位・単価
  • ウ [図] 3 表: 伝票番号(主キー)・日付・顧客コード・顧客名・住所 / 伝票番号(主キー)・商品コード(主キー)・数量 / 商品コード(主キー)・単位・単価
  • エ [図] 2 表: 伝票番号(主キー)・日付・顧客コード・顧客名・住所 / 伝票番号(主キー)・商品コード(主キー)・単位・数量・単価

出典:基本情報技術者試験 科目A免除 修了試験 20120624 実施分 問30

答えと解説を見る

正解:イ

覚える知識

関数従属性に基づく第3正規形への分解

第3正規形は、主キー以外の属性が他の属性を介して主キーに従属する推移的関数従属を取り除いた形である。

この問題で必要なこと

繰返し部分を分離し、部分関数従属(商品コード→単位・単価)と推移的関数従属(顧客コード→顧客名・住所)を分離すると、伝票・顧客・明細・商品の4表になる。

ひっかけ

顧客名・住所を伝票表に残す、または単位・単価を明細表に残す不完全な分解を選ばせる。

この知識の出題:本試験系 6 回・免除試験 32 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「関数従属と正規化(第1〜第3正規形)」で学ぶ

同じ知識の過去問