応用情報技術者試験 応用情報技術者試験 令和2年度 午前28: 関係“注文記録”の属性間に ① 〜 ⑥ の関数従属性があり,それに基づいて第 3 正規形まで正規化を行って,“商品”,“顧客”,“注文”,“注文明細”の各関係に

応用情報技術者試験 令和2年度 午前
Q 2828 / 80
関係“注文記録”の属性間に ① 〜 ⑥ の関数従属性があり,それに基づいて第 3 正規形までを行って,“商品”,“顧客”,“注文”,“注文明細”の各関係に分解した。関係“注文明細”として,適切なものはどれか。ここで,〔X,Y〕は,属性 X と Y の組みを表し,X→Y は,X が Y を関数的に決定することを表す。また,実線の下線は主キーを表す。 注文記録(注文番号,注文日,顧客番号,顧客名,商品番号,商品名,数量,販売単価) 〔関数従属性〕 ① 注文番号 → 注文日 ② 注文番号 → 顧客番号 ③ 顧客番号 → 顧客名 ④ 〔注文番号,商品番号〕→ 数量 ⑤ 〔注文番号,商品番号〕→ 販売単価 ⑥ 商品番号 → 商品名
この問の正解率:63.29%(504件)

問題本文

関係“注文記録”の属性間に ① 〜 ⑥ の関数従属性があり,それに基づいて第 3 正規形まで正規化を行って,“商品”,“顧客”,“注文”,“注文明細”の各関係に分解した。関係“注文明細”として,適切なものはどれか。ここで,〔X,Y〕は,属性 X と Y の組みを表し,X→Y は,X が Y を関数的に決定することを表す。また,実線の下線は主キーを表す。 注文記録(注文番号,注文日,顧客番号,顧客名,商品番号,商品名,数量,販売単価) 〔関数従属性〕 ① 注文番号 → 注文日 ② 注文番号 → 顧客番号 ③ 顧客番号 → 顧客名 ④ 〔注文番号,商品番号〕→ 数量 ⑤ 〔注文番号,商品番号〕→ 販売単価 ⑥ 商品番号 → 商品名

選択肢

  • .注文明細(注文番号,顧客番号,商品番号,顧客名,数量,販売単価)
  • .注文明細(注文番号,顧客番号,数量,販売単価)
  • .注文明細(注文番号,商品番号,数量,販売単価)
  • .注文明細(注文番号,数量,販売単価)

正解

. 注文明細(注文番号,商品番号,数量,販売単価)

解説

第3正規形への正規化では、関数従属性に従って属性を「何によって一意に決まるか」でグループ分けする。数量と販売単価は④⑤より〔注文番号,商品番号〕の組で初めて一意に決まる(複合キーへの完全関数従属)ので、これらは複合キー〔注文番号,商品番号〕を主キーとする注文明細表にまとめられる。注文日・顧客番号は注文番号に(注文表)、顧客名は顧客番号に(顧客表)、商品名は商品番号に(商品表)それぞれ分離される。したがって注文明細は(注文番号,商品番号,数量,販売単価)となり、ウが正解。

選択肢ごとの解説

  • .顧客番号は注文番号に(②)、顧客名は顧客番号に(③)従属し別表へ分離されるべきで、注文明細に含めるのは正規化されておらず誤り。
  • .数量・販売単価を一意に決めるには商品番号が必須(④⑤)なのに商品番号が欠けており、主キーが不完全で誤り。
  • .複合キー〔注文番号,商品番号〕に完全関数従属する数量と販売単価だけをまとめており、第3正規形の注文明細として正しい。
  • .商品番号が欠けており〔注文番号,商品番号〕の複合キーが構成できず、数量・販売単価を一意に特定できないため誤り。

応用情報技術者試験 令和2年度 午前過去問一覧へ戻る・問28