外部キーとは?
外部キーとは、ある表の列のうち、他の表(またはその表自身)の主キーを参照する列。表と表を結びつける役割を持ち、参照先に存在しない値を持てないという制約が付く。1対多の関係を実装する基本手段としてFEで頻出。
基本情報技術者試験の過去問では2回出題されています(2016年度〜2017年度)。
がいぶきー
外部キーの意味
ある表の列のうち、他の表(またはその表自身)の主キーを参照する列。表と表を結びつける役割を持ち、参照先に存在しない値を持てないという制約が付く。1対多の関係を実装する基本手段としてFEで頻出。
外部キーの具体例
社員表の部署コード列を、部署表の部署コード(主キー)を参照する外部キーとして定義する。すると部署表に存在しない「D99」を社員表へ登録しようとしても、DBMSがエラーとして拒否する。
外部キーは試験でどう引っ掛けられる?
外部キーの値は重複してよく、条件によってはNULLも許される(主キーとの大きな違い)。1対多の「多」の側に外部キーを置くのが原則で、向きを逆に設計すると多重度を表現できない。
外部キーと関連する用語
外部キーが出た過去問
関係データベースにおいて,外部キーを定義する目的として,適切なものはどれか。
正解:関係する相互のテーブルにおいて,レコード間の参照一貫性が維持される制約をもたせる。
要点:外部キーはテーブル間の参照一貫性を守るための制約
外部キーは、あるテーブルの列が別のテーブルの主キーを参照していることを宣言するものである。これを定義すると、参照先に存在しない値を登録できない、参照されている行を勝手に削除できないといった制約がDBMSによって課される。すなわち目的はテーブル間の参照整合性(参照一貫性)を保つことにある。
出典:平成28年度 春期 基本情報技術者試験 午前 問29(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)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。