関数従属とは?
関数従属とは、ある列Aの値が決まれば列Bの値が一意に定まる関係を「AはBを関数的に決定する(A→B)」と表す。正規化の理論的な根拠であり、部分関数従属や推移的関数従属を取り除く作業が第2・第3正規化に対応する。
基本情報技術者試験の過去問では3回出題されています(2016年度〜2023年度)。
かんすうじゅうぞく
関数従属の意味
ある列Aの値が決まれば列Bの値が一意に定まる関係を「AはBを関数的に決定する(A→B)」と表す。正規化の理論的な根拠であり、部分関数従属や推移的関数従属を取り除く作業が第2・第3正規化に対応する。
関数従属の具体例
社員番号→氏名は成立する(社員番号が決まれば氏名は1つ)。逆に氏名→社員番号は同姓同名がありうるので成立しない。「社員番号→部署コード→部署名」のようにつながるものが推移的関数従属である。
関数従属は試験でどう引っ掛けられる?
矢印の向きの取り違えが定番。「決める側→決まる側」であり、決まる側が一意であることが条件。また現在のデータで偶然一意なだけでは関数従属とは言えず、業務ルール上必ずそうなることが必要。
関数従属と関連する用語
関数従属が出た過去問
6行だけから成る“配送”表において成立している関数従属はどれか。ここで,X→Yは,XはYを関数的に決定することを表す。
正解:配送先 → 部品ID
要点:関数従属は左辺が同じ行で右辺も必ず同じかで判定する
関数従属X→Yは、Xの値が同じ行ではYの値も必ず同じになることを意味する。表を見ると、配送先が同じ行は部品IDも必ず同じ値になっており(名古屋工場の3行はいずれも同一の部品ID)、この従属だけが6行すべてで崩れていない。
出典:平成28年度 秋期 基本情報技術者試験 午前 問27(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が含まれる組合せが適切です。
出典:平成29年度 春期 基本情報技術者試験 午前 問25(IPA)次の関数従属を満足するとき,成立する推移的関数従属はどれか。ここで,“A→B”はBがAに関数従属していることを表し,“A→{B, C}”は,“A→B”かつ“A→…
正解:注文コード → 顧客コード → 顧客住所
要点:推移的関数従属はA→B→Cと2段でCが決まる関係
推移的関数従属は、A→B かつ B→C が成り立ち、Bが候補キーでないために A→C が間接的に導かれる関係をいう。ここでは注文コードから顧客コードが決まり、顧客コードから顧客住所が決まるので、注文コードを起点とした推移的関数従属が成立する。正規化ではこの連鎖を切り離して別表にすることが第3正規形の目的となる。
出典:令和5年度 (公開問題) 基本情報技術者試験 kamokuA 問6(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。