データベース

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

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

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

答えと解説を見る

正解:イ

覚える知識

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

第3正規形は繰返しを除き、部分関数従属と推移的関数従属を取り除いた形である。

この問題で必要なこと

繰返し項目を別表(伝票番号+商品コード→数量)に分け、顧客コード→顧客名・住所、商品コード→単位・単価を分離する。日付は伝票番号に従属するので伝票表に残す。

ひっかけ

日付を明細側の主キーに含めたり、顧客名を伝票表に残す不完全な分解。

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

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

同じ知識の過去問