第2正規形から第3正規形への変換手順|科目A-1(応用情報技術者) 令和7年 春期午前試験 問26
出典:令和7年春期 午前 問26
分野:データベース / データベース設計
関係を第2正規形から第3正規形に変換する手順はどれか。
- ア:候補キー以外の属性から,候補キーの一部の属性に対して関数従属性がある場合,その関係を分解する。
- イ:候補キー以外の属性間に関数従属性がある場合,その関係を分解する。
- ウ:候補キーの一部の属性から,候補キー以外の属性への関数従属性がある場合,その関係を分解する。
- エ:一つの属性に複数の値が入っている場合,単一の値になるように分解する。
TSUNAGARU-ADVICE
まず押さえたいこと
第2正規形から第3正規形へ進めるときは、候補キー以外の属性どうしにある推移的関数従属性を取り除きます。つまり、候補キー以外の属性が、別の候補キー以外の属性によって決まる場合に関係を分解します。
迷ったときの判断軸
候補キーの一部から候補キー以外の属性が決まる部分関数従属を取り除くのは、第1正規形から第2正規形への変換です。一つの属性に複数の値が入っている状態を分解するのは、第1正規形にする段階です。「非キー属性 → 非キー属性」が残っていないかを確認しましょう。
科目Bにつなげるために
特にプロフェッショナルデジタルスキル(データ・AI)試験合格を目指す方は、第2正規形では部分関数従属、第3正規形では推移的関数従属を取り除くと整理すると有効です。更新時異常や削除時異常を防ぐテーブル設計の問題につながります。

関係の正規化とは、データベースの表を整理して、データの重複や更新ミスを起こしにくくする考え方です。
簡単にいうと、「1つの表に何でも詰め込まず、意味のまとまりごとに表を分ける作業」です。
たとえば、次のような表があるとします。
この表では、商品名は商品IDが分かれば決まります。また、顧客名は顧客IDが分かれば決まります。
つまり、商品名や顧客名は、受注IDそのものではなく、商品IDや顧客IDに依存しています。このように、主キー以外の項目から決まる項目をそのまま同じ表に入れておくと、同じ商品名や顧客名が何度も出てきて、修正漏れの原因になります。
そこで、第3正規化では次のように表を分けます。
このように分けると、商品名を変更したいときは商品表だけを直せばよくなります。顧客名を変更したいときも、顧客表だけを直せば済みます。
つまり正規化は、「データの重複を減らし、変更に強い表に整理すること」です。科目A-1試験では、まず第1正規化から第3正規化までを押さえれば十分です。
したがって、イが適切です。
❌他選択肢が誤りの理由ア:候補キー以外の属性から,候補キーの一部の属性に対して関数従属性がある場合,その関係を分解する。
⇒候補キーではない属性が候補キーの一部を決定する関数従属性は、第3正規形よりも厳しいボイスコッド正規形への変換で問題になる場合があります。第3正規化で取り除くのは、候補キー以外の属性間にある関数従属性です。
ウ:候補キーの一部の属性から,候補キー以外の属性への関数従属性がある場合,その関係を分解する。
⇒第2正規化の手順です。複数の属性から成る候補キーの一部だけに、非キー属性が依存する部分関数従属を取り除きます。例えば、候補キーが{受注ID、商品ID}で、商品ID → 商品名が成り立つ場合、商品IDと商品名を別の関係へ分離します。
エ:一つの属性に複数の値が入っている場合,単一の値になるように分解する。
⇒第1正規化の手順です。繰返し項目や集合値を取り除き、各行・各列の交点に一つの値だけが入るようにします。