主キーとは?しゅキー
主キーとは、表の行を一意に識別するために、候補キーの中から設計者が1つ選んで指定したキー。一意性に加えてNULLを許さない制約が付き、他の表から参照される先にもなる。複数の列を組み合わせて1つの主キーとすることもでき、これを複合キーという。
最終更新:2026-10-06
この語が出る過去問を解く →背景
同じ人物や同じ取引が別の行として二重に入ると、集計も更新も破綻する。「何をもって同じ行と見なすか」を設計時に1つ決め、DBMSに機械的に守らせる約束が主キーである。セキュリティの観点では、監査証跡で「どの行への操作か」を後から特定する根拠になる一方、推測しやすい連番を外部へ露出させるかどうかという設計判断にも関わる。
具体例
書籍のISBNや商品のJANコードのように、外部で一意性が保証された番号をそのまま主キーに使うことがある。受注明細のように単独の列では一意にならない場合は(受注番号, 明細番号)の複合キーにするか、業務上の意味を持たない代理キーを別に立てて、業務側の採番規則の変更に引きずられないようにする。
試験での引っ掛け
UNIQUE制約と同じものと読むのが誤り。UNIQUEはNULLを許し、実装によっては複数のNULLも認めるが、主キーはNULLを許さず表に1つしか置けない。候補キーのうち選ばれた1つが主キーで、選ばれなかったものは代替キーと呼ぶ、という関係も問われる。Webアプリで連番の主キーをURLにそのまま出すと、値を変えるだけで他人のデータへ到達できるアクセス制御の不備につながる。
関連用語
出た過去問
出典:令和3年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問21(IPA)
次の表において、“在庫”表の製品番号に参照制約が定義されているとき、その参照制約によって拒否される可能性がある操作はどれか。ここで、実線の下線は主キーを、破線の…
正解:“在庫”表への行追加
要点:参照制約は参照する側への行追加を拒否し得る
参照制約は、外部キーの値が参照先の主キーに存在することを保証する。したがって在庫表へ行を追加する際、参照先の製品表に存在しない製品番号を指定すると、制約違反として拒否される可能性がある。逆に、参照する側の行を削除する操作や、参照される側へ行を追加する操作は、制約を破ることにならない。
出典:令和7年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問21(IPA)
“従業員”表に対して、SQL文を実行して得られる結果はどれか。ここで、実線の下線は主キーを表し、表中のNULLは値が存在しないことを表す。 〔SQL文〕 SEL…
正解:S002, S004, S007
要点:NOT EXISTSの相関副問合せは部下を持たない行を抽出する
このSQLは、相関副問合せで「自分の従業員コードを上司として持つ行が存在しない」従業員、すなわち部下を一人も持たない従業員を抽出します。表では上司欄にS001・S003・S005・S006が現れるので、これらは部下を持つ従業員です。残るS002・S004・S007が誰の上司にもなっていないため、これらが結果として得られます。
出典・参考
公式シラバスの3 技術要素 > 2. データベース設計 > (2) データベースの設計に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。