「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

出典:平成30年度 ITパスポート試験(IP) 春期分 問81

difficulty難易度設定
スポンサーリンク

予備知識


用語意味
データベースデータを入れておく箱
関係データベースデータを表形式で扱っていて、表同士をくっつけたりなんだりできるデータベース。OracleとかMySQLとかのこと
正規化データとかを使いやすいように整理したり変形したりすること
主キーデータベースのデータを一意に識別するための項目

問題


問題文
顧客名と住所,商品名と単価,顧客が注文した商品の個数と注文した日付を関係データベースで管理したい。正規化された表として,適切なものはどれか。ここで,下線は主キーを表し,顧客名や商品名には,それぞれ同一のものがあるとする。
ピヨ意訳:以下の3つの情報をデータベースで管理するよ。

1.顧客の情報:「顧客名」と「住所」
2.商品の情報:「商品名」と「単価」
3.注文の情報:「顧客が注文した商品の個数」「注文した日付」

一番、過不足がない構成になっている選択肢は、どれ?
なお、下線が付いている項目は主キーだよ。あと、顧客名や商品名の項目には重複(名前は同じだけど実際には別のやつ)があるよ。

解答選択肢
顧客
顧客番号顧客名住所

商品
商品番号商品名単価

注文
注文番号顧客番号商品番号個数日付
ピヨ意訳:-
顧客
顧客番号顧客名住所

商品
商品番号商品名単価

注文
注文番号顧客名商品名個数日付
ピヨ意訳:-
顧客
顧客番号顧客名住所日付

注文
注文番号顧客名商品名単価個数
ピヨ意訳:-
商品
商品番号商品名単価個数

注文
注文番号商品番号顧客名住所日付
ピヨ意訳:-


正解までのつなぎ

正解


正解
顧客
顧客番号顧客名住所

商品
商品番号商品名単価

注文
注文番号顧客番号商品番号個数日付
ピヨ意訳:-

ピヨピヨ解説


データベース設計の話ですね。

管理したい情報は

1.顧客の情報
2.商品の情報
3.注文の情報


です。

それぞれの情報で管理したい項目は

1.顧客の情報
(1) 顧客名
(2) 住所


2.商品の情報
(1) 商品名
(2) 単価


3.注文の情報
(1) 顧客が注文した商品の個数
(2) 注文した日付


です。

ここで「3.注文の情報」の「(1) 顧客が注文した商品の個数」に注目してください。

これは

i. 誰が買ったのか
ii. 何を買ったのか
iii.何個買ったのか


の3つの情報が合体した姿です。

バラすと

1.顧客の情報
(1) 顧客名
(2) 住所

2.商品の情報
(1) 商品名
(2) 単価

3.注文の情報
(1) 注文した顧客の情報
(2) 注文した商品の情報
(3) 注文した商品の個数

(4) 注文した日付


になります。

ここまでバラすと、なんとなく「『ア』か『イ』が正解かな?」と分かりますよね。
ちなみに主キーになっている「○○番号」は行を特定するための番号です。
データに付けた会員番号とか背番号みたいなものだと思ってください。

さて、次に行きましょう。

「3.注文の情報」の「(1) 注文した顧客の情報」に注目してください。

顧客の情報自体は「1.顧客の情報」に保管してあります。
よって「3.注文の情報」には「『1.顧客の情報』の中にある、この人だよ」という情報があれば事足ります。

それでは、どの項目を使って「『1.顧客の情報』の中にある、この人だよ」を表現しましょうか?

答えを先に書くと「顧客番号」を使います。
「顧客名」は重複があるので使えません。

顧客番号123の人から注文がありました!」と言われたら「あぁ、あの人か」と分かります。
顧客番号と顧客は1対1で結び付いているからです。
これが「佐藤さんから注文がありました!」だと「佐藤さんは2人いるけど、どっちの佐藤さん?」となる可能性がありますよね。
それと同じです。

ということで「ア」が正解です。

ちなみに「イ」だと、上でも書きましたが、注文情報から注文した顧客や商品が特定できません。
顧客名や商品名には重複があるからです。

「ウ」は同じ顧客が2回注文した時点で破たんします。
例えば、ピヨ太君が1/1と1/2に買ったとしましょう。
顧客情報は

1:ピヨ太:ピヨピヨ家:1/1
1:ピヨ太:ピヨピヨ家:1/2


のようになるはずですが顧客番号が主キーだから同じ値を入れられません。

「エ」は同じ商品が2回注文された時点で破たんします。
例えば、苺ショートを1/1に1個買い、1/2に2個買ったとしましょう。
商品情報は

1:苺ショート:300:1
1:苺ショート:300:2


のようになるはずですが商品番号が主キーだから同じ値を入れられません。


スポンサーリンク
書籍画像061
書籍画像033


書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
7日間でハッキングをはじめる本 TryHackMeを使って身体で覚える攻撃手法と脆弱性
クイズで学ぶUIデザイン ユーザビリティの基本が身につく50問