データベース|平成28年度 春期 ITパスポート試験(特別措置試験) 問94
商品の仕入状況を管理している関係データベースの“仕入一覧”表を正規化して,“仕入”表と“商品”表に分割したい。分割後の二つの表に共通して必要なフィールドとして,最も適切なものはどれか。ここで,仕入れは一度に一つの商品だけを仕入れることとし,仕入番号で一意に識別できる。また,商品は商品番号で一意に識別できる。
仕入一覧
| 仕入番号 | 商品番号 | 商品名 | 個数 | 単価 | 支払方法 | 納品日 |
|---|
- 仕入番号
- 支払方法
- ✓ これが正解商品番号
- 商品名
解説
分けた二つの表をあとでつなぎ直せる列が、両方に要ります。
表を分けるときに欠かせないのは、あとでつなぎ直せることです。共通して必要な列とは、そのつなぎ目のことを指しています。設問は、二つの表それぞれを一意に決める列をはっきり書いています。一意に識別できるという一文は、答えの置き場所を指しています。つなぎ目は、一つしかない側の主キーを、何度も現れる側が持つ形になります。向きを取り違えると、分けたはずの表の中で同じものが何度も並び、分けた意味が消えます。重なる値しか持たない列や、片方にしか要らない列は、つなぎ目になれません。どちらの表に置くとどちらが増えるのかを、一度だけ頭の中で並べてみます。一意に識別できるという一文が、答えを指しています。つなぎ目は、一つしかない側の主キーを、何度も現れる側が持ちます。向きを取り違えると、分けた意味が消えます。
ほかの選択肢はなぜ違うのか
- 仕入の側を一意に決める列です。商品の表に置くと、同じ商品が仕入のたびに現れます。つなぐ向きが逆になっており、正規化して分けた意味が消えてしまいます。つなぐ向きが逆になっています。同じ商品が何度も並びます。商品の表が膨らみます。
- 仕入ごとの属性で、同じ値が何度も重なります。重なる列では行を一つに決められないので、つなぎ目の役目を果たせません。そもそも鍵の候補にすらなりません。値が何度も重なります。行を一つに決められません。鍵の候補になりません。
- 商品の表だけが持つ属性です。設問は商品番号で一意に識別できると書いており、名前についてはそう書いていません。同じ名前が並ぶ余地が残ってしまいます。名前は一意とは限りません。設問が宣言した列だけが鍵になれます。
この問題に関係する言葉
- 主キー
- 外部キー
- 正規化
出典:平成28年度 春期 ITパスポート試験(特別措置試験) 問94
同じ単元をまとめて解くならデータベースへ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)