問題
問91
関係データベースにおいて、一つのテーブルのレコードを一意に識別するための列または列の組み合わせを何と呼ぶか。
- 主キー
- 外部キー
- 候補キー
- スーパーキー
正解
正解は「ア」です。
解説
正解は「ア」の主キーです。主キー(Primary Key)は、リレーショナルデータベースのテーブルにおいて、多数の行(レコード)の中から特定の一行を重複なく、一意に識別するために設定される列(または列の組み合わせ)のことです。主キーに設定された列には、NULL値(空の値)を入れることができず、また同じ値を複数のレコードで持つこと(重複)も許されません。
例えば、学生名簿テーブルでは、同姓同名の学生がいる可能性があるため「氏名」は主キーに適しませんが、「学籍番号」は一人一人にユニークな番号が割り振られるため、主キーとして最適です。この主キーがあることで、データの検索や更新、他のテーブルとの関連付けを正確かつ高速に行うことができます。まさに、データの世界における「マイナンバー」や「背番号」のような、個々を識別するための最も重要な識別子です。
イ(外部キー):
他のテーブルの主キーを参照し、テーブル間の関連付けを行うためのキーです。
ウ(候補キー):
レコードを一意に識別できる能力を持ち、主キーの「候補」となるキーのことです。主キーは、この候補キーの中から一つ選ばれます。
エ(スーパーキー):
レコードを一意に識別できる列の組み合わせ全般を指します。候補キーとの違いは、一意性のために不要な列を含んでいてもよい点です。
解法のポイント
データベースのキーの種類を問う問題は基本情報技術者試験の頻出テーマです。それぞれのキーの役割と関係性を理解することが重要です。「レコードを一意に識別する」というキーワードが、主キーの最も中心的な役割を示します。
- スーパーキー ⊃ 候補キー ⊃ 主キー という包含関係
- 外部キーは他のテーブルとの関連付けを行う、という全く異なる役割
このように、キーの階層関係と、外部キーの特殊な役割を整理して覚えておくと、混同せずに解答できます。
用語補足
主キー:
テーブル内でデータを特定するための「背番号」や「マイナンバー」のような、絶対に重複しないユニークな識別子です。
レコード:
テーブルにおける「行」のことです。一件のデータを表し、例えば、会員名簿テーブルであれば、一人の会員に関する情報(会員番号、氏名、住所など)が1レコードとなります。
外部キー:
他のテーブルと繋がるための「連絡先」のようなキーです。注文履歴に「顧客ID」を記録しておけば、顧客名簿と照らし合わせて注文者の詳細が分かります。
候補キー:
主キーになることができる「候補者」のキーです。例えば社員情報では、「社員番号」も「マイナンバー」も個人を特定できるため、どちらも候補キーとなります。


