過去問解きまくり研究所 ホーム

平成22年度 秋期 午前 問29

データベース

第3正規形に関する問題

次の "受注台帳" 表を "注文" 表と "顧客" 表に分解し,第3正規形にしたとき,両方に必要な属性はどれか。ここで,送付先と支払方法は注文ごとに決めるものとする。また,表の下線は主キーを表す。

受注台帳(【注文番号】, 注文年月日, 顧客ID, 顧客名, 顧客住所, 品目, 数量,
     送付先, 支払方法, 受注金額)
【 】で囲んだ「注文番号」は,原典では下線(=主キー)
答えと解説を見る

✓ これが正解ア顧客 ID

解説

分けた二つの表をつなぎ直す属性が必要です。

受注台帳には、注文ごとに決まる事柄と、顧客ごとに決まる事柄が混ざっています。顧客名や顧客住所は、同じ顧客なら注文が何件あっても同じ値になるので、注文の側に置いたままだと同じ内容が何度も現れます。この重複をなくすのが第3正規形への分解で、顧客の情報を別の表へ移し、注文の表にはどの顧客かを指す属性だけを残します。分けたあとで元の内容を復元できなければ意味がないので、両方の表に共通して置き、突き合わせの手掛かりになる属性が必要です。それは顧客の表では行を一意に決める主キーになり、注文の表ではどの顧客の注文かを指す印になります。判定の軸は、その属性が二つの表それぞれで役目を持つかどうかです。片方の表だけで用が足りる属性は、両方に置く必要がありません。

ほかの選択肢はなぜ違うのか

出典:平成22年度 秋期 基本情報技術者試験 午前 問29(改変:原典の図表をテキストに書き起こした)

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)