主キーとは?しゅキー
主キーとは、表の中の1行を一意に特定するために、候補キーの中から設計者が1つ選んで指定したキー。一意性に加えて構成列にNULLを許さず、1つの表に1つしか置けない。外部キーの参照先になり、多くのDBMSでは主キーを宣言すると一意索引が自動的に作られる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
関係モデルの表には行番号も物理的な位置もなく、行を指し示す手段は「その行が持つ値」だけしかない。値だけで行を特定できる列の組を決めておかないと、同じ内容の行が二重に登録されても検知できず、更新や削除の対象を一意に言い表せない。そこで候補キーの中から代表を1つ選び、参照と制約の基準点として固定したものが主キーである。試験では概念データモデルから関係スキーマを導く場面で、どの列を主キーに置くかがそのまま設問の答えになる。
具体例
PostgreSQLで受注明細表に PRIMARY KEY (受注番号, 明細番号) と宣言すると、同じ受注の同じ明細番号が二重に登録された時点でエラーになる。明細番号を受注ごとに1から振り直せるのは、主キーが単独の列ではなく2列の組だからである。
試験での引っ掛け
UNIQUE制約と混同しやすい。UNIQUEはNULLを許し、実装によっては複数行のNULLを並べられるが、PRIMARY KEYは構成列すべてにNOT NULLが課される。また「一意だから主キー」ではない——一意に識別できる候補キーは複数あってよく、その中から代表を選ぶ行為が主キーの指定である。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成28年度 春期 データベーススペシャリスト試験 午前Ⅱ 問5(IPA)
関係データベースの表を設計する過程で、A表とB表が抽出された。主キーはそれぞれ列aと列bである。この二つの表の対応関係を実装する表の設計に関する記述のうち、適切…
正解:A表とB表の対応関係が1対1の場合、列aをB表に追加して外部キーとしてもよいし、列bをA表に追加して外部キーとしてもよい。
要点:1対1は外部キーの置き方が自由、多対多は連関表が必須
1対1の対応関係は、どちらの表に相手の主キーを外部キーとして持たせても一意性が保てるため、どちら向きの実装も可能である。1対多なら「多」側に「1」側の主キーを外部キーとして持たせ、多対多なら両方の主キーをもつ連関表を新設するのが定石である。
出典:平成28年度 春期 データベーススペシャリスト試験 午前Ⅱ 問6(IPA)
四つの表の関係を表すE-R図として、適切なものはどれか。ここで、1―*は1対多の関連を表し、実線の下線は主キーを、破線の下線は外部キーを表す。「医師」表(医師番…
正解:医師*―1診療科1―*診察*―1患者
要点:外部キーを持つ表がE-R図では常に「多」側になる
外部キーをもつ側が「多」になる。医師は診療科コードを外部キーにもつので医師(多)対診療科(1)、診察は診療科コードと患者番号を外部キーにもつので診療科(1)対診察(多)、診察(多)対患者(1)となる。この向きを全て満たすのがイである。
出典:平成28年度 春期 データベーススペシャリスト試験 午前Ⅱ 問7(IPA)解説で登場
関係モデルの候補キーの説明のうち、適切なものはどれか。
正解:候補キーの値はタプルごとに異なる。
要点:候補キーはタプルを一意識別する最小の属性集合
候補キーはタプルを一意に識別できる属性の最小集合なので、その値は必ずタプルごとに異なる。候補キーは関係の属性の中から選ばれ、複数存在することもあり、その中の一つを主キーとして選ぶという関係にある。
出典:平成29年度 春期 データベーススペシャリスト試験 午前Ⅱ 問2(IPA)
図のデータモデルは会計取引の仕訳を表現している。“移動”がリンクする“勘定”の残高を増やす場合は金額の符号を正に、減らす場合は負にすることで、貸借平均の原理を表…
正解:SELECT 期首残高 + SUM(金額) AS 残高 FROM 勘定, 移動, 会計取引 WHERE 勘定.勘定科目 = 移動.勘定科目 AND 会計取引.取引番号 = 移動.取引番号 AND 勘定.勘定科目 = '現金' AND 取引日 <= '2017-04-30' GROUP BY 勘定.勘定科目, 期首残高
要点:導出される残高は期首残高+期間内の移動金額合計で求める
このモデルでは残高は導出属性であり、期首残高に当期の移動金額の合計を足して求める。したがって勘定・移動・会計取引を結合し、勘定科目と取引日で絞り込んだ上で金額を合計し、期首残高に加算する必要がある。集計と非集計の列を併記するため、勘定科目と期首残高でのGROUP BYも欠かせない。
出典:平成29年度 春期 データベーススペシャリスト試験 午前Ⅱ 問5(IPA)解説で登場
E-Rモデルにおいて、実体Aのインスタンスaが他の実体Bのインスタンスbと関連しており、インスタンスaが存在しなくなれば、インスタンスbも存在しなくなる場合、こ…
正解:弱実体
要点:他の実体の存在に依存して識別される実体が弱実体
他の実体の存在に依存し、単独では存在できない実体を弱実体と呼ぶ。弱実体は自分だけでは主キーを構成できず、依存先の実体の識別子を含めて識別する点が特徴である。依存先となる側は強実体(正実体)と呼ばれる。
出典・参考
高度試験 午前I(高度午前I 相当)のシラバスの3 技術要素 > 2. データベース設計 > (2) データベースの設計に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。