A主キー(Primary Key)
テーブル内の各行を一意に識別するための列または列の組合せ。値の重複もNULLも許されず、1テーブルに1つだけ設定します。複数列の組合せで主キーとする「複合主キー」も可能です。
行を一意に識別(重複・NULL不可)
1テーブルに1つだけ
複数列の組合せ(複合主キー)も可
リレーショナルデータベース(RDB)でテーブルを設計する際の基本概念。主キーは「行を一意に識別する鍵」、外部キーは「他テーブルの主キーを参照する鍵」で、両者の組み合わせでテーブル間の関連を表現します。
| 観点 | 主キー | 外部キー |
|---|---|---|
| 正式名称 | Primary Key(PK) | Foreign Key(FK) |
| 役割 | 同一テーブル内で行を一意に識別 | 他テーブルの主キーを参照しテーブル間関連を表現 |
| 一意性(重複) | 一意でなければならない | 重複可能 |
| NULL許容 | NULL不可 | NULL可(参照先なしを許容) |
| 本数 | 1テーブルに1つ(複合可) | 1テーブルに複数設定可 |
テーブル内の各行を一意に識別するための列または列の組合せ。値の重複もNULLも許されず、1テーブルに1つだけ設定します。複数列の組合せで主キーとする「複合主キー」も可能です。
行を一意に識別(重複・NULL不可)
1テーブルに1つだけ
複数列の組合せ(複合主キー)も可
他テーブル(または同一テーブル)の主キーを参照する列。値は参照先の主キーに存在しなければならず、これにより参照整合性が保たれます。重複もNULLも許容され、1テーブルに複数設定できます。
他テーブルの主キーを参照
参照整合性制約により不整合を防ぐ
重複・NULL許容、複数設定可
「主キー=一意・NULL不可」「外部キー=他テーブルの主キーを指す・重複NULL可」。両者で参照整合性を保つのがRDBの基本。
Q1. 主キーの説明として最も適切なものはどれか。
正解:2. テーブルの行を一意に識別するための列で、NULLや重複は許されない
主キーは行を一意に識別するための列で、値の重複もNULLも許されない。
Q2. 外部キーの主な役割として最も適切なものはどれか。
正解:2. テーブル間の参照整合性を保証する
外部キーは他テーブルの主キーを参照し、参照先に存在しない値を許さないことで参照整合性を保つ。
Q3. 主キーと外部キーに関する記述として最も適切なものはどれか。
正解:3. 主キーはNULL不可、外部キーはNULL許容できる
主キーはNULL不可・重複不可で1テーブルに1つ。外部キーはNULL許容・重複可で複数設定できる。