データベース|平成26年度 春期 ITパスポート試験(特別措置試験) 問60
ファイルで管理されていた受注データを,受注に関する情報と商品に関する情報に分割して,正規化を行った上で関係データベースの表で管理する。正規化を行った結果の表の組合せとして,最も適切なものはどれか。ここで,同一商品名で単価が異なるときは商品番号も異なるものとする。
```
〔受注データ〕
受注番号 発注者名 商品番号 商品名 個数 単価
T0001 山田花子 M0001 商品1 5 3,000
T0002 木村太郎 M0002 商品2 3 4,000
T0003 佐藤秋子 M0001 商品1 2 3,000
```
- 〔受注番号|発注者名〕/〔商品番号|商品名|個数|単価〕
- 〔受注番号|発注者名|商品番号〕/〔商品番号|商品名|個数|単価〕
- ✓ これが正解〔受注番号|発注者名|商品番号|個数〕/〔商品番号|商品名|単価〕
- 〔受注番号|発注者名|商品番号|個数|単価〕/〔商品番号|商品名〕
解説
元の表で繰り返されている値を、別の表へ移すのが正解です。
分け方の正しさは、項目ごとに何で決まるかを書き出すと見えます。項目が一つの表に混ざると、直す手間が増えます。発注した人の名は、受注の番号が決まれば定まります。個数もまた、受注の番号ごとに違う値になります。だから、この二つは受注の側の表に置きます。商品の名は、商品の番号さえ分かれば一つに決まります。単価も同じで、商品の番号によって決まります。設問の但し書きが、そのことを保証しています。よって正規化の結果は、受注の側に番号と名と商品番号と個数を置く形です。商品の側には、番号と名と単価が残ります。個数を商品の側に置いた肢は、受注ごとの違いを失います。単価を受注の側に残した肢は、同じ値が何度も現れます。それを消すことこそが、この作業の目的でした。分けた表が共通の項目でつながっているかも、必ず確かめます。
ほかの選択肢はなぜ違うのか
- 受注の側に番号と発注者の名だけを置く形です。個数が商品の側へ移っており、受注ごとの違いが失われます。そのうえ二つの表をつなぐ項目が受注の側にありません。つながりを断った形を問われたなら、こちらです。元に戻せなくなります。
- 受注の側に番号と名と商品番号を置く形です。つなぐ項目は残っていますが、個数が商品の側にあります。個数は受注ごとに変わるので、そこに置けません。つながりだけを整えた形を問われたなら、こちらです。置き場所を誤っています。
- 受注の側に単価まで残した形です。つながりも整っていて、一見きれいに見えます。しかし同じ商品を何度受注しても、同じ値を書くことになります。重複を残した形を問われたなら、こちらが答えです。最も紛らわしい肢になります。
この問題に関係する言葉
- 正規化
出典:平成26年度 春期 ITパスポート試験(特別措置試験) 問60
同じ単元をまとめて解くならデータベースへ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)