関数従属とは?かんすうじゅうぞく
関数従属とは、ある属性Aの値が決まれば属性Bの値がただ1つに定まる関係で、A→Bと書く。正規化の理論的な土台であり、主キーの一部だけで決まる部分関数従属を取り除くのが第2正規化、キー以外の属性を経由して決まる推移関数従属を取り除くのが第3正規化にあたる。
最終更新:2026-10-09
この語が出る過去問を解く →背景
1つの表に何でも詰め込むと同じ事実が何行にも重複して書かれ、片方だけ更新される事故が起きる。どの属性がどの属性に依存しているかを見取り図にすれば、表をどこで切るべきかが機械的に決まる。正規化の手順を丸暗記ではなく説明させる出題では、必ずこの依存関係が土台になる。
具体例
社員番号→氏名は成り立つ(社員番号が決まれば氏名は1つ)が、氏名→社員番号は同姓同名がありうるので成り立たない。社員番号→部署コード→部署名のようにつながる形が推移関数従属で、部署名は部署の表へ切り出すことになる。
試験での引っ掛け
矢印は「決める側→決まる側」で、向きの取り違えが定番。また現在登録されているデータでたまたま一意なだけでは関数従属とは言えず、業務ルール上必ず一意になることが条件である。完全関数従属と部分関数従属の区別は、複合キーのときだけ生じる点も押さえる。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成28年度 秋期 基本情報技術者試験 午前 問27(IPA)
6行だけから成る“配送”表において成立している関数従属はどれか。ここで,X→Yは,XはYを関数的に決定することを表す。
正解:配送先 → 部品ID
要点:関数従属は左辺が同じ行で右辺も必ず同じかで判定する
関数従属X→Yは、Xの値が同じ行ではYの値も必ず同じになることを意味する。表を見ると、配送先が同じ行は部品IDも必ず同じ値になっており(名古屋工場の3行はいずれも同一の部品ID)、この従属だけが6行すべてで崩れていない。
出典:平成29年度 春期 基本情報技術者試験 午前 問25(IPA)解説で登場
属性aの値が決まれば属性bの値が一意に定まることを,a→bで表す。例えば,社員番号が決まれば社員名が一意に定まるということの表現は,社員番号→社員名である。この…
正解:テーブル1(a,b,c,d,e)/テーブル2(b,f,g,h)/テーブル3(e,i,j)
要点:関数従属の起点属性を主キーにして表を分割する
関数従属の起点になっている属性が、それぞれの表の主キーになります。aからb,c,d,eが決まるのでaを主キーとする表にb,c,d,eを、bからf,g,hが決まるのでbを主キーとする表にf,g,hを、eからi,jが決まるのでeを主キーとする表にi,jを置きます。b・eは元の表では外部キーとして残るため、テーブル1にb,eが含まれる組合せが適切です。
出典:令和5年度 公開問題 基本情報技術者試験 科目A 問6(IPA)
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。