完全関数従属とは?かんぜんかんすうじゅうぞく
完全関数従属とは、A→Bが成立し、かつAのどの真部分集合からもBを決定できない状態。複合キーの一部だけで決まってしまう属性を排除するための概念であり、第2正規形の判定は、すべての非キー属性が主キーに完全関数従属しているかどうかで下す。従属の向きと決定項の範囲をそろえて見る必要がある。
最終更新:2026-10-06
この語が出る過去問を解く →背景
一つの表に何もかも詰め込んだ設計では、同じ事実が行数ぶん重複して記録される。商品名を受注明細に持たせれば、商品名を直すのに該当する明細を全部更新することになり、直し漏れが矛盾として残る。関数従属の向きと範囲を形式的に書き分ける道具立ては、こうした更新時異状を設計者の感覚ではなく手続きで検出できるようにするために整えられた。
具体例
(社員番号, 資格コード)→取得年月日 は、社員番号だけでも資格コードだけでも取得年月日が定まらないため完全関数従属になる。同じ表に持たせた(社員番号, 資格コード)→社員氏名 のほうは社員番号だけで定まるので部分関数従属であり、社員表へ切り出すことで第2正規形へ進む。
試験での引っ掛け
決定項が一列しかない場合、真部分集合は空集合だけなので部分関数従属は起こりようがなく、主キーが単一列の表はそれだけで第2正規形を満たす。この推論を逆向きに使う設問が多い。もう一つの定番は正規形と排除対象の対応で、部分関数従属を除くのが第2正規形、推移的関数従属を除くのが第3正規形という組合せを入れ替えて出される。
関連用語
出た過去問
出典:平成29年度 秋期 応用情報技術者試験 午前 問27(IPA)解説で登場
第3正規形であることの効果又は影響に関する記述として、適切なものはどれか。
正解:冗長性が排除され、データの整合性を保ちやすくなる。
要点:第3正規形は冗長性を排して更新時の不整合を防ぐ
第3正規形は、非キー属性が主キーに完全関数従属し、かつ推移的関数従属が排除された状態である。同じ事実が複数箇所に重複して保持されなくなるため、更新時の不整合(更新異常)が起こりにくくなり、データの整合性を保ちやすくなる。
出典:令和2年度 10月試験 応用情報技術者試験 午前 問28(IPA)解説で登場
関係"注文記録"の属性間に①〜⑥の関数従属性があり、それに基づいて第3正規形まで正規化を行って、"商品"、"顧客"、"注文"、"注文明細"の各関係に分解した。関…
正解:注文明細(注文番号, 商品番号, 数量, 販売単価)(注文番号・商品番号が主キー)
要点:明細は{注文番号,商品番号}に完全従属する属性だけを残す
第3正規形では、主キー全体に完全関数従属し、かつ推移的従属のない属性だけを同じ関係に残す。数量と販売単価は{注文番号, 商品番号}に完全従属するので、この2属性を主キーとする関係にまとめる。注文日と顧客番号は注文番号に、顧客名は顧客番号に、商品名は商品番号に従属するので別の関係へ分ける。
出典・参考
公式シラバスの3 技術要素 > 2. データベース設計 > (3) データの正規化に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。