修了試験 2011-12-18実施分 基本情報技術者試験 問29
次の“受注台帳”表を“注文”表と“顧客”表に分解し,第3正規形にしたとき,両方に必要な属性はどれか。 ここで,送付先と支払方法は注文ごとに決めるものとする。 また,表の下線は主キーを表す。 受注台帳([注文番号],注文年月日,顧客ID,顧客名,顧客住所,品目,数量,送付先,支払方法,受注金額) ※[ ]内は主キー(下線)を表す。
正答1
解説
正解は1です。 受注台帳には、注文に関する属性と、顧客に関する属性が混在しています。 顧客名と顧客住所は、注文番号ではなく顧客IDによって決まります。 主キーの注文番号から顧客ID、顧客IDから顧客名・顧客住所が決まる推移的関数従属があるので、これを別の表に分けて第3正規形にします。 分解すると、注文表は注文番号、注文年月日、顧客ID、品目、数量、送付先、支払方法、受注金額になります。 顧客表は、顧客ID、顧客名、顧客住所になります。 【選択肢別解説】 1:○ 顧客IDは顧客表の主キーで、注文表では顧客表を参照する外部キーになります。 2つの表を結び付けるため、両方に必要です。 2:× 顧客名は顧客IDによって決まる属性なので、顧客表だけに置きます。 注文表にも置くと重複が生じ、第3正規形になりません。 3:× 送付先と支払方法は注文ごとに決めるという条件なので、支払方法は注文表だけに置きます。 顧客表には不要です。 4:× 注文番号は注文表の主キーです。 顧客の情報は注文番号によらず決まるので、顧客表には不要です。 【ポイント】 表を分解したとき、両方の表に残るのは、結合に使うキー(主キーと外部キー)です。 推移的関数従属を取り除いた形が第3正規形、と覚えておきましょう。まとめて解く
修了試験 2011-12-18実施分を通しで解く(80問)→