平成30年度 春期 (特別措置試験) 問81
データベース
正規化された表
顧客名と住所,商品名と単価,顧客が注文した商品の個数と注文した日付を関係データベースで管理したい。正規化された表として,適切なものはどれか。ここで,下線は主キーを表し,顧客名や商品名には,それぞれ同一のものがあるとする。
〔選択肢〕(原典では選択肢そのものが表=表の名前と項目を枠で並べ,主キーに下線を引いたもの。表ごとに / で区切り,項目の並びに書き起こしたもの)
- ア顧客{顧客番号|顧客名|住所} / 商品{商品番号|商品名|単価} / 注文{注文番号|顧客番号|商品番号|個数|日付}
- イ顧客{顧客番号|顧客名|住所} / 商品{商品番号|商品名|単価} / 注文{注文番号|顧客名|商品名|個数|日付}
- ウ顧客{顧客番号|顧客名|住所|日付} / 注文{注文番号|顧客名|商品名|単価|個数}
- エ商品{商品番号|商品名|単価|個数} / 注文{注文番号|商品番号|顧客名|住所|日付}
答えと解説を見る
✓ これが正解ア顧客{顧客番号|顧客名|住所} / 商品{商品番号|商品名|単価} / 注文{注文番号|顧客番号|商品番号|個数|日付}
解説
注文の表は、名前ではなく番号のほうで相手を指します。
表を分けるときの狙いは、同じことを二か所に書かないことと、必要なものを落とさないことです。この分け方を正規化と呼びます。ここでは、顧客の情報、商品の情報、注文の情報の三つに分けます。注文の表には、誰が何をいくつ、いつ買ったかだけを置きます。このとき効いてくるのが、設問の最後に置かれた断りです。顧客名も商品名も、同じものが複数あると書いてあります。つまり名前では相手を一つに決められません。だから注文の表は、名前ではなく番号で相手を指す必要があります。表が二つしかない案は、注文だけの情報が顧客や商品の表に紛れ込んでいて、分け方そのものが崩れています。分ける問題では、まず表の数を数え、次にそれぞれの表が何で相手を指しているかを見ます。この二段で、四つの案はきれいに分かれます。順が決まっています。
ほかの選択肢はなぜ違うのか
- イ顧客{顧客番号|顧客名|住所} / 商品…:三つの表に分けるところまでは同じですが、注文の表が名前のほうで相手を指しています。同じ名前が複数あると断ってあるので、これでは相手が一つに決まりません。設問の最後の一文は、まさにこの肢を落とすために置かれています。
- ウ顧客{顧客番号|顧客名|住所|日付} /…:表が二つしかなく、商品の表がありません。さらに顧客の表に注文の日付が入っており、注文ごとに変わる情報が顧客の情報に紛れ込んでいます。同じことを二か所に書かない、という狙いから外れた形になっています。分け方の数だけでは足りません。
- エ商品{商品番号|商品名|単価|個数} /…:こちらも表が二つで、今度は顧客の表がありません。商品の表に注文の個数が入っており、商品ごとの情報と注文ごとの情報が混ざっています。同じ商品が買われるたびに書き換えが必要になり、分けた意味がなくなります。更新の手間も増えます。
この問題の用語
- 関係データベースデータを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。データの定義や操作にはSQLを使います。
出典:平成30年度 春期 ITパスポート試験(特別措置試験) 問81(改変:原典の図表をテキストに書き起こした)
同じ用語が出る問題
- 令和8年度 問72:外部キーに関する問題(関係データベース)
- 令和8年度 問69:正規化に関する問題(関係データベース)
- 令和8年度 問57:外部キーに関する問題(関係データベース)
- 令和7年度 問66:関係データベースに関する問題(関係データベース)
- 令和6年度 問93:抽出された従業員(関係データベース)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)