データベース

基本情報技術者試験正規化」の問題

テクノロジ系データベース計算問題難易度:hard
主キーが{受注番号,商品番号}である受注明細表があり、属性として『数量』(受注番号と商品番号で定まる)と『商品名』(商品番号だけで定まる)を持つ。この表の正規化の状態として最も適切なものはどれか。
部分関数従属が存在し、第1正規形だが第2正規形ではない
完全関数従属のみで、第2正規形を満たしている
推移的関数従属があり、第2正規形だが第3正規形ではない
繰返し項目を含み、第1正規形すら満たさない
正解
部分関数従属が存在し、第1正規形だが第2正規形ではない

第2正規形は全非キー属性が主キー全体に完全従属することを要する。商品名は主キーの一部の商品番号だけで定まる部分関数従属なので2NF違反であり、第1正規形にとどまるという判定が正しい。

?選択肢ごとの解説

ア ○第2正規形は全非キー属性が主キー全体に完全従属することを要する。商品名は主キーの一部の商品番号だけで定まる部分関数従属なので2NF違反であり、第1正規形にとどまるという判定が正しい。
イ ×商品名が商品番号だけに従属する部分関数従属が存在するため完全従属ではなく、第2正規形を満たすという判断は誤りである。
ウ ×問題の違反は非キー属性が主キーの一部に従属する部分従属であり、非キー属性間の推移的従属ではない。3NFの議論以前に2NF違反である。
エ ×各欄が単一値で繰返し項目を含まないため第1正規形は満たしており、1NFすら満たさないという説明は誤りである。

くわしく

複合主キーを持つ表では、非キー属性が主キーの一部だけに従属する部分関数従属が2NF違反となる。本問は商品名を商品表へ分離すれば2NFを満たす。部分従属(2NF)と推移従属(3NF)の区別が判定の核心である。

本番での押さえどころ

試験のコツ

複合主キーを見たらまず『非キー属性が主キーの一部だけで決まらないか』を確認し、決まれば2NF違反と判定する。

覚え方

2NFは『主キーは全部使え』。一部だけで決まる属性は別表へ追い出す、と覚える。

よくある誤り

部分関数従属(2NF違反)と推移的関数従属(3NF違反)を取り違える誤りが多い。主キーの一部への従属か非キー属性経由かで区別する。

データベースの他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0233

【基本情報技術者試験】正規化の問題 — 解答・解説|ukamiru 過去問