マナビングITパスポート

関係データベースの主キーは何のために設定する?

ITパスポート試験 令和元年度秋期 問66 / データベース › データベース設計

過去問にチャレンジ

令和元年度秋期 問66

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

  1. ア

    算術演算の対象とならないことが明確になる。

  2. イ

    主キーを設定した列が検索できるようになる。

  3. ウ

    他の表からの参照を防止できるようになる。

  4. エ

    表中のレコードを一意に識別できるようになる。

会話形式の解説

講師講師
この問題では、主キーを設定する目的に注目します。表のレコードをどう扱えるようになるか、という点から考えましょう。
受験者受験者
主キーを設定すると、その列を検索できるようになるのでしょうか。
講師講師
主キー以外の列も検索に使えます。検索を可能にすることは、主キーを設定する目的ではありません。
受験者受験者
では、主キーでレコードを区別できることが大切なのですね。
講師講師
そのとおりです。主キーの値は重複せず、NULLにもならないので、表の各レコードを一意に識別できます。これが正解の理由です。
受験者受験者
算術演算の対象にならない、という説明もありました。主キーにすると列の扱いが変わるのでしょうか。
講師講師
主キーの指定は、列に対して算術演算ができるかどうかを決めません。その説明は誤りです。
受験者受験者
他の表からの参照を防ぐ、という説明はどうですか。
講師講師
それも誤りです。主キーは、他の表の外部キーから参照できます。主キーを設定しても参照は防止されません。
受験者受験者
検索や参照の可否ではなく、表の各レコードを重複なく識別するために設定するのですね。
講師講師
はい。主キーは複数の列を組み合わせて設定することもできます。どの場合も、レコードを一意に識別するという目的は同じです。

まとめ

主キーは、関係データベースの表にある各レコードを一意に識別するために設定します。主キーの値は重複せず、NULLにもなりません。主キー以外の列も検索でき、主キーは他の表の外部キーから参照できます。

解答・解説

正解はエです

この問題のテーマ

関係データベースで主キーを設定する目的を問う問題です。

解き方の考え方

主キーの役割は、表の各レコードを一意に識別することです。検索や算術演算ができるか、他の表から参照できるかとは分けて考えます。この役割に当てはまる選択肢を選びます。

選択肢ごとの解説

  1. ×ア  算術演算の対象とならないことが明確になる。
    アの算術演算に関する説明は誤りです。主キーの指定はレコードを識別するためのもので、列に対して算術演算ができるかどうかを決めません。
  2. ×イ  主キーを設定した列が検索できるようになる。
    イの検索に関する説明は誤りです。主キー以外の列も検索に使えるため、検索を可能にすることは主キーを設定する理由ではありません。
  3. ×ウ  他の表からの参照を防止できるようになる。
    ウの他の表からの参照に関する説明は誤りです。主キーは他の表の外部キーから参照でき、主キーを設定しても参照は防止されません。
  4. ○エ  表中のレコードを一意に識別できるようになる。
    エのレコードを一意に識別できるという説明が正しいです。主キーの値は重複せず、NULLにもならないため、その値によって表の各レコードを区別できます。

補足

「主キーにすると検索できる」という選択肢は、検索できることと主キーの目的を取り違えています。他の表から主キーを参照する場合は、参照する側の表で外部キーを使います。

POINT

  • 主キーは表のレコードを一意に識別するために設定します。
  • 主キーの値は重複せず、NULLにもなりません。
  • 主キーは複数の列を組み合わせて設定することもできます。
  • 主キー以外の列も検索に使えます。

※出典:令和元年度秋期 ITパスポート試験 問66