ITパスポート 2010年 春期 問83
問題文
関係データベースにおいて主キーを指定する目的はどれか。
選択肢
ア:主キーに指定した属性(列)で、複数のレコード(行)を同時に特定できるようにする。
イ:主キーに指定した属性(列)で、レコード(行)を一意に識別できるようにする。(正解)
ウ:主キーに指定した属性(列)に対し、検索条件を指定できるようにする。
エ:主キーに指定した属性(列)を算術演算の対象として扱えるようにする。
🔒 解説は解答すると表示されます
関係データベースにおいて主キーを指定する目的はどれか。【ITパスポート 解説】
正解の理由
関係データベースとは、表(テーブル)でデータを管理する仕組みです。
主キーとは「その表の各行(レコード)を他と区別するための列(または列の組み合わせ)」です。つまり、主キーは「各レコードを一意(ただ一つ)に識別できるようにする」ために指定します。したがって、選択肢の中では イ が正しいです。
主キーとは「その表の各行(レコード)を他と区別するための列(または列の組み合わせ)」です。つまり、主キーは「各レコードを一意(ただ一つ)に識別できるようにする」ために指定します。したがって、選択肢の中では イ が正しいです。
具体例:社員テーブルで「社員ID」を主キーにすると、どの行がどの社員かを必ず一つに特定できます。重複や空(NULL)が許されない点が主キーの重要な特徴です。
解法ステップ
- 問題文で問われているキーワードを確認します:「主キー」「目的」。
- 主キーの定義を思い出します:主キーは「レコードを一意に識別するためのもの」。
- 選択肢と主キーの定義を照らし合わせます。
- 「一意に識別できる」と合致するものを選びます。
- 他の選択肢が主キーの目的と合わない理由を簡単に確認して除外します。
以上より、イ が正しいと判断できます。
選択肢別の誤答解説
-
ア: 「複数のレコードを同時に特定できるようにする」
→ 主キーの役割は「一つのレコードを特定する」ことです。同時に複数を特定するのは主キーの目的ではありません。誤りです。 -
イ: 「レコードを一意に識別できるようにする」
→ 正しい。主キーは各行を唯一に識別するための属性(列)で、NULL不可・重複不可が基本です。 -
ウ: 「検索条件を指定できるようにする」
→ どの列でも検索条件にできます(例: WHERE句)。主キーは検索の助けにはなりますが、主目的は「識別」であって「検索可能にすること」自体ではありません。誤りです。 -
エ: 「算術演算の対象として扱えるようにする」
→ 列が数値なら算術演算は可能ですが、それは主キーの目的ではありません。誤りです。
よくある誤解
-
「主キーは検索を速くするためのもの」
- 実際には主目的は識別です。多くのDBでは主キーに自動的にインデックスが作られ、検索が速くなることはありますが、それは副次的な効果です。
-
「主キーは複数設定できる」
- テーブルに設定できる主キーは原則一つです(ただし主キーは複数列の組み合わせ=複合主キーにすることは可能)。複数の別個の主キーを同一テーブルに持つことはできません。
-
「主キーは意味のある値(自然キー)でなければならない」
- 設計の選択で、意味のある値(例:社員番号)を使う場合と、意味のない連番(ID)を使う場合(サロゲートキー)があります。どちらが良いかは用途次第です。
補足コラム
-
主キーの主な性質:
- 一意性(Unique):同じ値が複数行に存在しない。
- 非NULL(Not NULL):空の値を許さない。
- 最小性(Minimal):不要な列を含めない(複合主キーの場合、必要最小限の列で構成)。
-
SQLの例(テーブル作成と主キー指定):
CREATE TABLE Employees (
employee_id INT PRIMARY KEY, -- 主キー(社員ID)
name VARCHAR(100),
email VARCHAR(100) UNIQUE
);
上の例では
employee_id が主キーです。多くのDBは主キーに索引(インデックス)を張るため、JOINや検索が速くなる利点もあります。- 「候補キー(candidate key)」は主キーになり得る列の集合で、その中から選ばれたものが主キーです。
FAQ
Q: 主キーにNULLは入りますか?
A: いいえ。主キーの列はNULLを許可しません。NULLは「値がない」ことを意味し、識別に使えないためです。
A: いいえ。主キーの列はNULLを許可しません。NULLは「値がない」ことを意味し、識別に使えないためです。
Q: テーブルに複数の主キーを設定できますか?
A: いいえ。テーブルに設定できる主キーは一つだけです。ただし、複数の列を組み合わせた「複合主キー」は可能です。
A: いいえ。テーブルに設定できる主キーは一つだけです。ただし、複数の列を組み合わせた「複合主キー」は可能です。
Q: 主キーとUNIQUE制約は同じですか?
A: 似ていますが違います。どちらも重複を許さない点は同じですが、主キーはさらに「NULL不可」であり、テーブルにつき一つだけ定義できます。UNIQUEはNULLを許すDBもあり、複数設定できます。
A: 似ていますが違います。どちらも重複を許さない点は同じですが、主キーはさらに「NULL不可」であり、テーブルにつき一つだけ定義できます。UNIQUEはNULLを許すDBもあり、複数設定できます。
Q: 自然キー(意味のある値)とサロゲートキー(連番)はどちらが良いですか?
A: 用途により使い分けます。自然キーは人が見て分かりやすい利点、サロゲートキーは安定性や運用上の扱いやすさ(値の変更が影響を少なくする)という利点があります。
A: 用途により使い分けます。自然キーは人が見て分かりやすい利点、サロゲートキーは安定性や運用上の扱いやすさ(値の変更が影響を少なくする)という利点があります。
関連キーワード: 主キー, 一意性, 主キー制約, 複合主キー, サロゲートキー, SQL PRIMARY KEY, インデックス, 外部キー, 正規化

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

