戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

ITパスポート 2019年 秋期 66


問題文

関係データベースにおいて、主キーを設定する理由はどれか。

選択肢

算術演算の対象とならないことが明確になる。
主キーを設定した列が検索できるようになる。
他の表からの参照を防止できるようになる。
表中のレコードを一意に識別できるようになる。(正解)

🔒 解説は解答すると表示されます

主キーを設定する理由【ITパスポート 解説】

正解の理由

関係データベース(関係データベース:表でデータを管理する仕組み)で主キー(主キー:表の各行を一意に識別するための列。英語では primary key)を設定する最大の目的は、表中のレコード(行)を一意に識別することです。選択肢の中では、選択肢がこの目的を正しく表しています。
「一意に識別する」とは、ある列(または複数列の組み合わせ)の値を見れば、その値がどのレコード(誰のデータか、どの注文か)を指すかが必ず1つに定まる、ということです。これにより、データの重複やあいまいさを防ぎ、更新・削除・参照を安全に行えます。

解法ステップ

  1. 問題文を読み、「主キーを設定する理由」を問われている点を確認する。
  2. 「主キー」の定義を思い出す。主キー = レコードを一意に識別するためのもの(英語:primary key)。
  3. 各選択肢を定義と照らし合わせて検討する:
    • 「一意に識別できる」は主キーの定義そのものなので正しい。
    • その他は主キーの副次的効果や誤解に該当するか確認する。
  4. 最も直接的で正確な説明である選択肢を選ぶ。

選択肢別の誤答解説

  • ア: 算術演算の対象とならないことが明確になる。
    → 主キーの役割は「演算可能かどうか」を示すことではありません。数値でも文字列でも主キーにできます。主キー設定は演算の可否とは無関係です。
  • イ: 主キーを設定した列が検索できるようになる。
    → 主キーは一意性を保証しますが、検索できるようにすること自体が主キーの本質ではありません。実務では主キーに自動的にインデックス(インデックス:検索を高速化する仕組み)が作られることが多く、これにより検索が速くなる副次効果はあります。しかし「検索できるようになる」=主キーの目的、とは言えません。
  • ウ: 他の表からの参照を防止できるようになる。
    → むしろ逆です。主キーは他の表から参照されるための基準になります。他の表の外部キー(外部キー:別の表の主キーを参照する列。英語では foreign key)から参照されて関係を作ることができます。参照を防ぐ機能は主キーにありません。
  • エ: 表中のレコードを一意に識別できるようになる。
    → これが主キーの定義そのものです。よって正解です。

よくある誤解

  1. 「主キー = 検索用の仕組み」と誤解する
    → 主キーは一意性のための定義です。多くのDBでは主キーにインデックスが付くため検索が速くなりますが、これは副次効果です。本質を取り違えないようにしましょう。
  2. 「主キーは必ず数値で、自動採番でなければならない」と思う
    → 主キーは数値でも文字列でも構いません。自動採番(IDを自動で増やす設定)は便利ですが、必須ではありません。重要なのは「値が重複せず、NULL(未設定)にならないこと」です。
  3. 「主キーがあると他テーブルから参照できなくなる」との誤解
    → これは逆です。主キーは他表から参照(外部キー)されることを想定したものです。

補足コラム

  • 主キーと候補キー・代替キー
    → ある表において「一意に識別できる列」が複数ある場合、主キーに選ばれなかった方を候補キー(候補キー:一意性を満たすが主キーに選ばれていないキー)や代替キーと呼びます。たとえば社員表で「社員番号」と「メールアドレス」がどちらも一意なら、どちらかを主キーに選びます。
  • 複合主キーと代理キー
    → 複数列の組合せで一意性を保つ場合は複合主キー(複数列を主キーにする)。運用上わかりやすい単一カラムの「代理キー(サロゲートキー、英語:surrogate key)」を別に設けることも多いです(例:自動採番のID)。
  • SQLでの主キー設定例(SQL:データベース操作言語、Structured Query Language)
CREATE TABLE社員(
  社員ID INT PRIMARY KEY,     -- 社員IDを主キーにする(自動採番にすることが多い)
  氏名 VARCHAR(100),
  メール VARCHAR(200) UNIQUE  -- 一意制約(メールアドレスは重複不可)
);

FAQ

Q1: 主キーは必ず必要ですか?
A1: 実務ではほとんどのテーブルに主キーを設けます。データの一意性と更新時の安全性を確保するためです。ただし、ログなど一意性が不要なケースでは不要な場合もあります。
Q2: 主キーにNULLは入れられますか?
A2: いいえ。主キーはNULL(未設定)を許容しません。NULLがあると「一意に識別できる」条件を満たさなくなるためです。
Q3: 主キーとユニーク制約(unique)の違いは何ですか?
A3: 両方とも「値の重複を防ぐ」点は同じです。主キーはさらに「テーブルの代表的な識別子」として扱われ、通常はNULL不可であり、外部キーの参照先になります。ユニーク制約は補助的に使われます。

関連キーワード: 主キー、関係データベース、一意性、外部キー、インデックス、複合主キー、サロゲートキー、SQL、正規化
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

ITパスポート
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について