データベース

基本情報技術者試験 科目A免除 修了試験 20250727 実施分 問19

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

出典:基本情報技術者試験 科目A免除 修了試験 20250727 実施分 問19(問題文は IPA の公開問題。解説は当サイト作成)

答えと解説を見る

正解:ウ

覚える知識

関数従属性に基づく第3正規形への分解

第 3 正規形では、主キーに完全関数従属しない属性や推移的に従属する属性を別の関係へ分離する。

この問題で必要なこと

注文明細の主キーは {注文番号, 商品番号} で、数量と販売単価はこの組に関数従属する。顧客番号、顧客名、商品名は他の関係へ分離される。

ひっかけ

顧客番号・顧客名・商品名などを明細に残させる、または主キーを注文番号だけにさせる。

この知識の出題:本試験系 6 回・免除試験 32 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「関数従属と正規化(第1〜第3正規形)」で学ぶ

同じ知識の過去問