外部キーとは?
外部キーとは、他の表(または自表)の主キーまたは一意キーを参照する属性(の集合)。参照先に存在する値かNULLしか取れないという参照制約を課す。
データベーススペシャリスト試験の過去問では10回出題されています(2016年度〜2025年度)。
がいぶキー
外部キーの意味
他の表(または自表)の主キーまたは一意キーを参照する属性(の集合)。参照先に存在する値かNULLしか取れないという参照制約を課す。
外部キーの具体例
受注表の顧客コードは顧客表の主キーを参照する外部キー。
外部キーは試験でどう引っ掛けられる?
外部キーを持つ側がE-R図では常に「多」側になる。また外部キーはNULLを許すため、必須参照にしたい場合はNOT NULLを併せて指定する。
外部キーと関連する用語
外部キーが出た過去問
関係データベースの表を設計する過程で、A表とB表が抽出された。主キーはそれぞれ列aと列bである。この二つの表の対応関係を実装する表の設計に関する記述のうち、適切…
正解:A表とB表の対応関係が1対1の場合、列aをB表に追加して外部キーとしてもよいし、列bをA表に追加して外部キーとしてもよい。
要点:1対1は外部キーの置き方が自由、多対多は連関表が必須
1対1の対応関係は、どちらの表に相手の主キーを外部キーとして持たせても一意性が保てるため、どちら向きの実装も可能である。1対多なら「多」側に「1」側の主キーを外部キーとして持たせ、多対多なら両方の主キーをもつ連関表を新設するのが定石である。
出典:平成28年度 春期 データベーススペシャリスト試験 am2 問5(IPA)四つの表の関係を表すE-R図として、適切なものはどれか。ここで、1―*は1対多の関連を表し、実線の下線は主キーを、破線の下線は外部キーを表す。「医師」表(医師番…
正解:医師*―1診療科1―*診察*―1患者
要点:外部キーを持つ表がE-R図では常に「多」側になる
外部キーをもつ側が「多」になる。医師は診療科コードを外部キーにもつので医師(多)対診療科(1)、診察は診療科コードと患者番号を外部キーにもつので診療科(1)対診察(多)、診察(多)対患者(1)となる。この向きを全て満たすのがイである。
出典:平成28年度 春期 データベーススペシャリスト試験 am2 問6(IPA)PCへのメモリカードの取付け状態を管理するデータモデルを作成した。1台のPCは、スロット番号によって識別されるメモリカードスロットを二つ備える。“取付け”表を定…
正解:PRIMARY KEY(PCID, スロット番号), UNIQUE(メモリカードID),
要点:取付け位置は複合主キー、カードの重複はUNIQUEで防ぐ
1台のPCは2つのスロットをもち、スロットごとに1枚のカードが取り付けられるため、PCIDとスロット番号の組が取付けを一意に識別する主キーになる。さらに1枚のメモリカードが同時に複数のスロットへ取り付けられることはないので、メモリカードIDに一意性制約が必要になる。
出典:平成29年度 春期 データベーススペシャリスト試験 am2 問11(IPA)関係データベースの表を設計する過程で、A表とB表が抽出された。主キーはそれぞれ列aと列bである。この二つの表の対応関係を実装する表の設計に関する記述のうち、適切…
正解:A表とB表の対応関係が1対1の場合、列aをB表に追加して外部キーとしてもよいし、列bをA表に追加して外部キーとしてもよい。
要点:1対1は外部キーの向きが自由、多対多は連関表が必要
1対1の対応関係では、どちらか一方の表に相手の主キーを外部キーとして持たせれば対応関係を表現でき、どちらの向きでも一意性が保たれる。1対多では「多」側に「1」側の主キーを置き、多対多では両方の主キーをもつ連関表を新設するのが基本である。
出典:平成30年度 春期 データベーススペシャリスト試験 am2 問2(IPA)四つの表の関係を表すE-R図として、適切なものはどれか。ここで、1━*は1対多の関連を表し、実線の下線は主キーを、破線の下線は外部キーを表す。 医師(医師番号[…
正解:医師 *━1 診療科 1━* 診察 *━1 患者
要点:外部キーを持つ側がE-R図の「多」側になる
外部キーを持つ側が「多」になるという原則で判断する。医師は診療科コードを外部キーに持つので医師(多)対診療科(1)、診察は診療科コードと患者番号を外部キーに持つので診療科(1)対診察(多)、診察(多)対患者(1)となる。この向きを全て満たすのがイである。
出典:令和1年度 春期 データベーススペシャリスト試験 am2 問5(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。