問30 |
“発表伝票表”を第3正規形に書き換えたものはどれか。ここで、下線部は主キーを表す。
発注伝票(注文番号、商品番号、商品名、注文数量) |
|
ア |
発注(注文番号、注文数量) 商品(商品番号、商品名) |
イ |
発注(注文番号、注文数量) 商品(注文番号、商品番号、商品名) |
ウ |
発注(注文番号、商品番号、注文数量) 商品(商品番号、商品名) |
エ |
発注(注文番号、商品番号、注文数量) 商品(商品番号、商品名、注文数量) |
|
|
解説 |
リレーションデータベースの正規化にはいくつかの段階があります。通常は第3正規形までですが、ボイス・コッドや第4、第5正規形というのもあります。
第1正規形:繰り返しや、反復している部分を独立させる。
第2正規形:第1正規形であり、部分関数従属を除去する(完全関数従属にする)
第3正規形:第2正規形であり、主キー以外に従属するものを除去する(推移従属を除去する)
用語についても少し解説しておきます。
関数従属:BがAに関数従属するとは、A(例:社員番号)を決めるとB(社員名)が一意に決定するというもの。Aを決定項、Bを従属項といいA→Bであらわす。
完全関数従属:決定項に余分なものがないときにいう。社員番号→社員名など。
部分関数従属:決定項に余分なものがあるときにいう。{社員番号、部署番号}→社員名など(部署番号がなくても社員名を特定できる)
推移関数従属:主キー以外に従属するものをいう。{社員番号}→{部署番号、部署名、社員名}のとき部署名は、部署番号にも従属しているので推移従属となる。
今回の問題に当てはめると
完全関数従属は、商品番号→商品名
推移関数従属は、{注文番号、商品番号}→{注文数量}のようになります。 |
|