主キーとは?データを一意に識別する仕組みと外部キーとの違い

主キーでデータベースの行を一意に識別する仕組みを示す図解

主キーは、表にある各行を他の行と重複なく識別するための列、または列の組合せです。ITパスポートでは「一意に決まる」「重複しない」「空欄にしない」という説明から主キーを見分けます。

目次

定義と役割

データベースの表では、一人の顧客、一件の注文、一冊の商品などを行として管理します。主キーはその行を特定する住所のような役割です。顧客名は同姓同名になり得ますが、顧客番号なら一人に一つずつ割り当てられます。主キーには同じ値を二つ入れず、原則として値を欠けさせないことが求められます。

仕組みと比較

用語 役割 例
主キー その表の行を一意に識別する 顧客表の顧客番号
外部キー 別表の主キーを参照して関係を作る 注文表の顧客番号
候補キー 主キーになれる一意の識別子 重複しない会員番号

顧客表の顧客番号を主キーにし、注文表に同じ番号を記録すると、誰の注文かを対応付けられます。注文表の顧客番号は繰り返され得るため、通常は主キーではなく外部キーです。

顧客番号のような識別子も、計算に使うのか先頭のゼロを保持するのかで適した型が変わります。データ型とは?ITパスポートで出る整数型・実数型・論理型・文字型の基本で、主キーと各項目のデータ型を混同しないための基本を確認できます。

仕事での具体例

営業部が顧客管理と受注管理を別表で扱う場合、顧客番号を主キーとして登録し、受注表にはその番号を記録します。問い合わせを受けたとき、氏名だけでなく顧客番号で検索すれば、同名の別顧客と取り違えず契約内容や注文履歴を確認できます。

日常生活での具体例

図書館の利用者カード番号を考えると、同じ名前の利用者がいても番号で貸出履歴を区別できます。予約記録にカード番号を保存すれば、氏名を書き直さなくても利用者と予約を対応付けられます。番号を他人と共有しないことも正しい管理の条件です。

試験での見分け方と確認問題

「表の各行を一意に決める」なら主キー、「別表の主キーを参照する」なら外部キーです。値が重複できるか、どの表の行を識別しているかを確認してください。

  1. 最も直接関係する用語を選ぶときは、対象・目的・結果のどれを見ればよいか。
    • 用語の名前ではなく、問題文が示す対象と目的を確認します。
  2. 似た用語との違いを説明する際に最初に比較する点は何か。
    • 誰が何を対象に、どの状態を実現するかです。
  3. 仕事や日常生活の例から判断するときの注意点は何か。
    • 具体的な行動と、守りたい状態・得たい結果を対応付けます。

学習の要点

このテーマは、短い定義を暗記するだけでは選択肢の言い換えに対応しにくくなります。まず、どの対象を扱い、どんな状態を守る・実現するための考え方かを自分の言葉で説明します。次に、似た用語と比べて、対象の範囲、判断する人、結果として変わるものを整理します。具体例では、担当者がどの情報を確認し、何を選ぶのかまで追うと、試験問題でも生活の場面でも使える理解になります。

関連する用語をつないで学ぶ

構造化データで表の項目に意味を持たせる考え方を確認できます。SQLは主キーと外部キーで関連付けた表を操作する学習につながります。ビッグデータでは規模が大きくても識別と整理が必要な理由を学べます。

目次