データベース
基本情報技術者試験 科目A免除 修了試験 20220123 実施分 問25
関係 “注文記録” の属性間に ①~⑥ の関数従属性があり,それに基づいて第 3 正規形まで正規化を行って,“商品”,“顧客”,“注文”,“注文明細” の各関係に分解した。関係 “注文明細” として,適切なものはどれか。ここで,{X, Y} は,属性 X と Y の組みを表し,X → Y は,X が Y を関数的に決定することを表す。また,実線の下線は主キーを表す。
注文記録(注文番号,注文日,顧客番号,顧客名,商品番号,商品名,数量,販売単価)
〔関数従属性〕
① 注文番号 → 注文日
② 注文番号 → 顧客番号
③ 顧客番号 → 顧客名
④ {注文番号, 商品番号} → 数量
⑤ {注文番号, 商品番号} → 販売単価
⑥ 商品番号 → 商品名
各選択肢の主キー(実線の下線): ア=注文番号,顧客番号,商品番号 / イ=注文番号,顧客番号 / ウ=注文番号,商品番号 / エ=注文番号
答えを選ぶ
出典:基本情報技術者試験 科目A免除 修了試験 20220123 実施分 問25(問題文は IPA の公開問題。解説は当サイト作成)
答えと解説を見る
正解:ウ
覚える知識
関数従属性に基づく第3正規形への分解
第3正規形では、主キー全体に関数従属する属性だけを残し、部分・推移的従属する属性を別表に切り出す。
この問題で必要なこと
{注文番号,商品番号}で決まる数量・販売単価のみを持つ関係が注文明細。部分関数従属・推移的関数従属する項目は別の表へ分離する。
ひっかけ
顧客番号や顧客名など注文番号のみで決まる属性を明細に残した選択肢が並ぶ。
この知識の出題:本試験系 6 回・免除試験 32 回(公開問題での観測値)