応用情報技術者試験 応用情報技術者試験 令和2年度 午前 問28: 関係“注文記録”の属性間に ① 〜 ⑥ の関数従属性があり,それに基づいて第 3 正規形まで正規化を行って,“商品”,“顧客”,“注文”,“注文明細”の各関係に
関係“注文記録”の属性間に ① 〜 ⑥ の関数従属性があり,それに基づいて第 3 正規形までを行って,“商品”,“顧客”,“注文”,“注文明細”の各関係に分解した。関係“注文明細”として,適切なものはどれか。ここで,〔X,Y〕は,属性 X と Y の組みを表し,X→Y は,X が Y を関数的に決定することを表す。また,実線の下線は主キーを表す。
注文記録(注文番号,注文日,顧客番号,顧客名,商品番号,商品名,数量,販売単価)
〔関数従属性〕
① 注文番号 → 注文日
② 注文番号 → 顧客番号
③ 顧客番号 → 顧客名
④ 〔注文番号,商品番号〕→ 数量
⑤ 〔注文番号,商品番号〕→ 販売単価
⑥ 商品番号 → 商品名
63.29%
問題本文
関係“注文記録”の属性間に ① 〜 ⑥ の関数従属性があり,それに基づいて第 3 正規形まで正規化を行って,“商品”,“顧客”,“注文”,“注文明細”の各関係に分解した。関係“注文明細”として,適切なものはどれか。ここで,〔X,Y〕は,属性 X と Y の組みを表し,X→Y は,X が Y を関数的に決定することを表す。また,実線の下線は主キーを表す。 注文記録(注文番号,注文日,顧客番号,顧客名,商品番号,商品名,数量,販売単価) 〔関数従属性〕 ① 注文番号 → 注文日 ② 注文番号 → 顧客番号 ③ 顧客番号 → 顧客名 ④ 〔注文番号,商品番号〕→ 数量 ⑤ 〔注文番号,商品番号〕→ 販売単価 ⑥ 商品番号 → 商品名
選択肢
- ア.注文明細(注文番号,顧客番号,商品番号,顧客名,数量,販売単価)
- イ.注文明細(注文番号,顧客番号,数量,販売単価)
- ウ.注文明細(注文番号,商品番号,数量,販売単価)
- エ.注文明細(注文番号,数量,販売単価)
正解
ウ. 注文明細(注文番号,商品番号,数量,販売単価)
解説
第3正規形への正規化では、関数従属性に従って属性を「何によって一意に決まるか」でグループ分けする。数量と販売単価は④⑤より〔注文番号,商品番号〕の組で初めて一意に決まる(複合キーへの完全関数従属)ので、これらは複合キー〔注文番号,商品番号〕を主キーとする注文明細表にまとめられる。注文日・顧客番号は注文番号に(注文表)、顧客名は顧客番号に(顧客表)、商品名は商品番号に(商品表)それぞれ分離される。したがって注文明細は(注文番号,商品番号,数量,販売単価)となり、ウが正解。
選択肢ごとの解説
- ア.顧客番号は注文番号に(②)、顧客名は顧客番号に(③)従属し別表へ分離されるべきで、注文明細に含めるのは正規化されておらず誤り。
- イ.数量・販売単価を一意に決めるには商品番号が必須(④⑤)なのに商品番号が欠けており、主キーが不完全で誤り。
- ウ.複合キー〔注文番号,商品番号〕に完全関数従属する数量と販売単価だけをまとめており、第3正規形の注文明細として正しい。
- エ.商品番号が欠けており〔注文番号,商品番号〕の複合キーが構成できず、数量・販売単価を一意に特定できないため誤り。
応用情報技術者試験 令和2年度 午前 の過去問一覧へ戻る・問28