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

正答2
解説
正解は2です。 繰返し項目を含むデータを、第3正規形まで正規化する問題です。 図の元データは、伝票番号を主キーとし、日付・顧客コード・顧客名・住所が続きます。 その後ろに、商品コード・単位・数量・単価の組が繰り返されています。 正規化の手順は次のとおりです。 第1正規形では、繰返し部分を別の表に分け、伝票番号と商品コードを複合主キーにします。 第2正規形では、主キーの一部だけで決まる項目を別の表に分けます。 単位と単価は商品コードだけで決まるので、商品の表に分けます。 日付・顧客コードなどは伝票番号だけで決まるので、伝票の表に残します。 第3正規形では、主キー以外の項目で決まる項目を分けます。 顧客名と住所は顧客コードで決まるので、顧客の表に分けます。 結果は、伝票(伝票番号、日付、顧客コード)、顧客、明細(伝票番号、商品コード、数量)、商品の4つの表です。 【選択肢別解説】 1:× 選択肢1(図のア)では、日付が伝票の表になく、明細の表に入っています。 明細の表は、伝票番号・日付・商品コードの3つが主キーになっています。 しかし日付は伝票番号だけで決まるので、この表のキーは伝票番号と商品コードの組で足ります。 日付はそのキーの一部である伝票番号に従属するので、部分関数従属が残り第2正規形を満たしません。 正しくは、日付は伝票の表に置きます。 2:○ 選択肢2(図のイ)は、伝票・顧客・明細・商品の4つの表に分かれています。 日付は伝票の表、顧客名と住所は顧客の表、単位と単価は商品の表に置かれています。 部分関数従属も推移的関数従属もないので、第3正規形になっています。 3:× 選択肢3(図のウ)では、伝票の表に顧客名と住所が残っています。 これらは主キーの伝票番号ではなく顧客コードで決まる推移的関数従属なので、第3正規形ではありません。 正しくは、顧客コードを主キーとする顧客の表に分けます。 4:× 選択肢4(図のエ)では、明細の表に単位と単価が残っています。 これらは複合主キーの一部である商品コードだけで決まるので、第2正規形を満たしません。 また伝票の表にも顧客名と住所が残っており、第3正規形でもありません。 【ポイント】 第2正規形は「主キーの一部だけで決まる項目をなくす」、第3正規形は「主キー以外の項目で決まる項目をなくす」と覚えます。 どの項目が何で決まるかを書き出すと、表の分け方を確かめやすくなります。まとめて解く
修了試験 2014-01-26実施分を通しで解く(80問)→