平成22年度 春期 基本情報技術者試験 午前 問30
テクノロジ/データベース“発注伝票”表を第3正規形に書き換えたものはどれか。ここで,下線部は主キーを表す。 発注伝票(注文番号,商品番号,商品名,注文数量)
出典:平成22年度 春期 基本情報技術者試験 午前 問30
- ア発注(注文番号,注文数量) 商品(商品番号,商品名)
- イ発注(注文番号,注文数量) 商品(注文番号,商品番号,商品名)
- ウ発注(注文番号,商品番号,注文数量) 商品(商品番号,商品名)
- エ発注(注文番号,商品番号,注文数量) 商品(商品番号,商品名,注文数量)
正解:ウ
解説
元の“発注伝票”表では,注文数量が(注文番号,商品番号)に,商品名が商品番号だけに関数従属しており,部分関数従属が存在するため第3正規形になっていません。正規化すると,注文番号と商品番号の組を主キーとし注文数量をもつ“発注”表と,商品番号を主キーとし商品名をもつ“商品”表に分割されます。
選択肢ごとの解説
- ア誤り。発注表の主キーが注文番号だけになっており,商品番号が抜け落ちているため,どの商品を何個注文したかが表現できません。
- イ誤り。商品表に注文番号まで含まれており,商品名が注文番号にも従属しているかのような構造になっていて,正規化として不適切です。
- ウ正しい。発注(注文番号,商品番号,注文数量)と商品(商品番号,商品名)に分割することで,部分関数従属が解消され第3正規形になります。
- エ誤り。商品表に注文数量が含まれており,注文数量は商品番号だけでなく注文にも依存する値なので,商品表に置くのは不適切です。