次の関係“注文”の属性に@〜Fの関数従属性があるとき、主キーとして正しいものはどれか。
ここで、(A, B)は、属性AとBの組を表し、A→Cは、CがAに関数従属していることを表す。
関係“注文”
(注文番号, 注文日, 顧客番号, 顧客名, 商品番号, 商品名, 数量, 金額)
関数従属性
@ |
注文番号 → 注文日 |
|
A |
注文番号 → 顧客番号 |
B |
注文番号 → 顧客名 |
|
C |
顧客番号 → 顧客名 |
D |
(注文番号, 商品番号) → 数量 |
|
E |
(注文番号, 商品番号) → 金額 |
F |
商品番号 → 商品名 |
|
ア |
(注文番号) |
イ |
(注文番号, 顧客番号) |
ウ |
(注文番号, 顧客番号, 商品番号) |
エ |
(注文番号, 商品番号) |
答え エ
【解説】
関数従属性の条件@〜Fで、左辺 → 右辺で、右辺に来る属性は左辺の属性から求める(決める)ことができるので、主キーとはならない。
したがって、
@の右辺にある“注文日”
Aの右辺にある“顧客番号”
BとCの右辺にある“顧客名”
Dの右辺にある“数量”
Eの右辺にある“金額”
Fの右辺にある“商品名”
は主キーにはならないので、主キーになるのは、残った(注文番号, 商品番号)(エ)である。
【キーワード】
・関数従属性
【キーワードの解説】
- 関数従属性
データベースの2つの属性の間で、一方の属性の値が、もう一方の属性の値から関数的(一意)に決まる関係である。
例としては、携帯電話の番号と機種である。1つの電話番号は1台の電話機にしか割り当てられないので、電話番号がわかれば、その番号が割り当てられている電話機の機種はわかるので、電話番号 → 機種が成り立つ。(1台の電話に2つの番号が割り当てられても成り立ちます。内線などで、1つの電話番号を複数の電話機に割り当てられているときは成立しない。)
もっと、「関数従属性」について調べてみよう。
戻る
一覧へ
次へ
|