主キー・候補キーとは?
主キー・候補キーとは、行を一意に識別できる列の組が候補キーで、その中から実際に識別子として選んだものが主キー。主キーは重複と空値が許されない。データの一意性・網羅性を確かめる監査手続の出発点になるため、設計の妥当性が問われる。
情報処理安全確保支援士試験の過去問では4回出題されています(2019年度〜2025年度)。
しゅきー・こうほきー
主キー・候補キーの意味
行を一意に識別できる列の組が候補キーで、その中から実際に識別子として選んだものが主キー。主キーは重複と空値が許されない。データの一意性・網羅性を確かめる監査手続の出発点になるため、設計の妥当性が問われる。
主キー・候補キーの具体例
社員表で社員番号とメールアドレスの双方が一意なら候補キーは二つあり、業務で不変な社員番号を主キーに選ぶ。監査人は主キー列に対して重複件数を数える問合せを実行し、0件であることをもって一意性統制が機能している証拠とする。
主キー・候補キーは試験でどう引っ掛けられる?
「業務上一意だから主キー制約は不要」という説明を鵜呑みにしない。制約が定義されていなければ、不具合や直接更新で重複が入り得る。また複数列を組み合わせた主キーも正当であり、必ず1列でなければならないというわけではない。
主キー・候補キーと関連する用語
主キー・候補キーが出た過去問
次の表において,“在庫”表の製品番号に参照制約が定義されているとき,その参照制約によって拒否される可能性がある操作はどれか。ここで,実線の下線は主キーを,破線の…
正解:“在庫”表への行追加
要点:参照制約は外部キー側への行追加を拒否しうる
参照制約は、外部キーの値が参照先の主キーに存在することを求める。在庫表の製品番号は製品表を参照する外部キーなので、製品表に存在しない製品番号を持つ行を在庫表へ追加しようとすると拒否される。参照する側への追加・更新と、参照される側の削除・更新が制約の対象になる。
出典:令和1年度 春期 情報処理安全確保支援士試験 am2 問21(IPA)次の表において、“在庫”表の製品番号に参照制約が定義されているとき、その参照制約によって拒否される可能性がある操作はどれか。ここで、実線の下線は主キーを、破線の…
正解:“在庫”表への行追加
要点:参照制約は参照する側への行追加を拒否し得る
参照制約は、外部キーの値が参照先の主キーに存在することを保証する。したがって在庫表へ行を追加する際、参照先の製品表に存在しない製品番号を指定すると、制約違反として拒否される可能性がある。逆に、参照する側の行を削除する操作や、参照される側へ行を追加する操作は、制約を破ることにならない。
出典:令和3年度 秋期 情報処理安全確保支援士試験 am2 問21(IPA)関係モデルにおける外部キーに関する記述のうち,適切なものはどれか。
正解:一つの関係に外部キーが複数存在してもよい。
要点:外部キーは一つの関係に複数あってよい
外部キーは、他の関係(または自分自身)の候補キーを参照する属性の組である。参照する候補キーが複数あれば、一つの関係が外部キーを複数持つことに何の制約もない。たとえば受注明細が、商品と受注のそれぞれを参照する外部キーを同時に持つ形は一般的である。
出典:令和6年度 秋期 情報処理安全確保支援士試験 am2 問21(IPA)“従業員”表に対して、SQL文を実行して得られる結果はどれか。ここで、実線の下線は主キーを表し、表中のNULLは値が存在しないことを表す。 〔SQL文〕 SEL…
正解:S002, S004, S007
要点:NOT EXISTSの相関副問合せは部下を持たない行を抽出する
このSQLは、相関副問合せで「自分の従業員コードを上司として持つ行が存在しない」従業員、すなわち部下を一人も持たない従業員を抽出します。表では上司欄にS001・S003・S005・S006が現れるので、これらは部下を持つ従業員です。残るS002・S004・S007が誰の上司にもなっていないため、これらが結果として得られます。
出典:令和7年度 春期 情報処理安全確保支援士試験 am2 問21(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。