基本情報技術者試験 - 令和7年7月修了 - 問19
関係 “注文記録” の属性間に ①~⑥ の関数従属性があり,それに基づいて第3正規形まで正規化を行って,“商品”,“顧客”,“注文”,“注文明細” の各関係に分解した。関係 “注文明細” として,適切なものはどれか。ここで,{X,Y}は,属性XとYの組みを表し,X→Yは,XがYを関数的に決定することを表す。また,実線の下線は主キーを表す。
注文記録(注文番号,注文日,顧客番号,顧客名,商品番号,商品名,数量,販売単価)
〔関数従属性〕
① 注文番号→注文日
② 注文番号→顧客番号
③ 顧客番号→顧客名
④ {注文番号,商品番号}→数量
⑤ {注文番号,商品番号}→販売単価
⑥ 商品番号→商品名
注文記録(注文番号,注文日,顧客番号,顧客名,商品番号,商品名,数量,販売単価)
〔関数従属性〕
① 注文番号→注文日
② 注文番号→顧客番号
③ 顧客番号→顧客名
④ {注文番号,商品番号}→数量
⑤ {注文番号,商品番号}→販売単価
⑥ 商品番号→商品名
| ア | 注文明細(注文番号,顧客番号,商品番号,顧客名,数量,販売単価) |
|---|---|
| イ | 注文明細(注文番号,顧客番号,数量,販売単価) |
| ウ | 注文明細(注文番号,商品番号,数量,販売単価) |
| エ | 注文明細(注文番号,数量,販売単価) |
答え : ウ
分野 : テクノロジ系 › 技術要素 › データベース › データベース設計
解説 :
関数従属性に基づいて正規化を行い,適切な関係(テーブル)を導き出す設問です。もとの関係「注文記録」には,注文番号,注文日,顧客番号,顧客名,商品番号,商品名,数量,販売単価という属性が含まれています。
関数従属性を見ると,数量と販売単価は「注文番号と商品番号の組み合わせ」によって決まる属性であることがわかります(④と⑤)。つまり,注文明細としてまとめるべき属性は,注文番号,商品番号,数量,販売単価の4つになります。この組み合わせに合致するのは選択肢「ウ」です。
誤りの選択肢を見ると,顧客番号や顧客名を含むものは,顧客に関する情報であるため別の「顧客」関係に分離すべき属性であり,注文明細に含めるのは誤りです。また,商品番号を含まない選択肢は,数量や販売単価がどの商品に対するものか特定できなくなってしまうため不適切です。正規化では,どの属性がどのキーによって決定されるかを丁寧に確認し,関係を適切に分割することが重要です。
分野 : テクノロジ系 › 技術要素 › データベース › データベース設計
解説 :
関数従属性に基づいて正規化を行い,適切な関係(テーブル)を導き出す設問です。もとの関係「注文記録」には,注文番号,注文日,顧客番号,顧客名,商品番号,商品名,数量,販売単価という属性が含まれています。
関数従属性を見ると,数量と販売単価は「注文番号と商品番号の組み合わせ」によって決まる属性であることがわかります(④と⑤)。つまり,注文明細としてまとめるべき属性は,注文番号,商品番号,数量,販売単価の4つになります。この組み合わせに合致するのは選択肢「ウ」です。
誤りの選択肢を見ると,顧客番号や顧客名を含むものは,顧客に関する情報であるため別の「顧客」関係に分離すべき属性であり,注文明細に含めるのは誤りです。また,商品番号を含まない選択肢は,数量や販売単価がどの商品に対するものか特定できなくなってしまうため不適切です。正規化では,どの属性がどのキーによって決定されるかを丁寧に確認し,関係を適切に分割することが重要です。