修了試験 2019-12-08実施分 基本情報技術者試験 問26
次のような繰返し構造をもったデータを,第3正規形に正規化したものはどれか。 ここで,図の下線部分及び(主キー)を付けた項目は主キーを表す。 また,単位と単価は商品コードごとに決まるものとする。 〔データ構造〕伝票番号(主キー)|日付|顧客コード|顧客名|住所|#1|#2|#3|…|#n(#1~#nは繰返し部:商品コード|単位|数量|単価)

正答2
解説
正解は2です。 元のデータは、伝票番号を主キーとし、商品コード・単位・数量・単価の組が繰り返す構造です。 第3正規形にするには、繰返しを分離し、部分関数従属と推移的関数従属を取り除きます。 単位と単価は商品コードだけで決まり、顧客名と住所は顧客コードで決まります。 【計算】 繰返し部を分けると、伝票番号と商品コードを主キーとする明細の表ができます。 明細のうち単位と単価は商品コードだけに従属するので、商品の表へ分けます。 伝票の表では、顧客名と住所が伝票番号から顧客コードを経由して決まります。 この推移的関数従属を除くため、顧客の表へ分けます。 結果は、伝票(伝票番号、日付、顧客コード)と顧客(顧客コード、顧客名、住所)です。 さらに、明細(伝票番号、商品コード、数量)と商品(商品コード、単位、単価)を加えた4表になります。 【選択肢別解説】 1:× 選択肢1(図のア)は、日付を伝票の表から外し、伝票番号・日付・商品コードを主キーとする表に入れています。 日付は伝票番号だけで決まるので部分関数従属が残り、第2正規形も満たしません。 2:○ 選択肢2(図のイ)は、上で導いた4つの表と一致します。 各表の主キー以外の項目が主キー全体だけに直接従属しており、第3正規形です。 3:× 選択肢3(図のウ)は、顧客名と住所が伝票の表に残っています。 伝票番号から顧客コードを経て決まる推移的関数従属があり、第3正規形ではありません。 4:× 選択肢4(図のエ)は、顧客名と住所の推移的関数従属に加え、商品コードだけで決まる単位と単価が明細の表に残っています。 第1正規形の段階にとどまります。 【ポイント】 第1正規形は繰返しの排除、第2正規形は部分関数従属の排除、第3正規形は推移的関数従属の排除です。まとめて解く
修了試験 2019-12-08実施分を通しで解く(80問)→