ITパスポート 令和5年度 問78:databaseに関する問題
関係データベースの主キーの設定に関する記述として,適切なものだけを全て挙げたものはどれか。a 値が他のレコードと重複するものは主キーとして使用できない。b インデックスとの重複設定はできない。c 主キーの値は数値でなければならない。d 複数のフィールドを使って主キーを構成できる。
- aa, c
- ba, d正答
- cb, c
- db, d
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは b(a, d) です。
「主キー」は、データの1件1件を見分けるための“出席番号”のようなもの。だから条件は2つだけ。
- a:同じ番号は使えない(重複ダメ)→ 正しい。出席番号がかぶったら誰か分からないから。
- d:複数の項目を組み合わせて1つの主キーにできる→ 正しい。「クラス+出席番号」のように合わせ技でもOK。
👉 覚え方:「主キー=かぶらない見分け札。数字じゃなくてもいい」。
まちがい:c「数値でなければならない」は×(文字でもOK)/b「インデックスと一緒に使えない」も×。
なぜこれが正解か
正解は b(a, d)。主キーは関係データベースで各レコードを一意に識別する項目。
- a:主キーは値の重複が許されない(一意性制約)→ 正しい。
- d:複数のフィールドを組み合わせた「複合主キー」を構成できる→ 正しい。
各選択肢(記述)の解説
- b:「インデックスとの重複設定はできない」は誤り。主キーには自動的にインデックスが作られ、別途インデックスを設定することも可能。
- c:「主キーの値は数値でなければならない」は誤り。文字列など数値以外でも主キーにできる。
覚え方・ひっかけ注意
主キーの絶対条件は「一意(重複なし)+NULL不可」の2点。「数値限定」「インデックスと併用不可」はもっともらしいが誤り。aとdが正しく、選択肢bの「a, d」が答え。記述記号と選択肢キーが同じ“b”で紛らわしいので混同注意。
理論的背景
関係データベースにおける主キー(Primary Key)の理論的根拠は、関係モデル(Edgar F. Codd, 1970年)の「エンティティ整合性制約(Entity Integrity Constraint)」に由来する。関係モデルでは、各タプル(行)を一意に識別できる属性集合を「候補キー(Candidate Key)」と呼び、候補キーの中から運用上の主として選ばれたものが主キーである。主キーが満たすべき制約は2つのみ:①一意性制約(同一値の重複禁止)と②実体整合性(NULL値を許可しない)である。「数値でなければならない」という制約は関係モデルには存在せず、文字列・UUID・複合属性(複合主キー)のいずれも許容される。インデックスとの関係では、多くのRDBMS(MySQL・PostgreSQL・SQL Server等)は主キー定義時に自動的に一意インデックス(B-treeインデックス)を作成するため、主キーとインデックスは共存どころか主キーはインデックスを内包する関係にある。記述bが誤りであることはこの仕様から明確に導かれる。
実務での使われ方
実務のDB設計では「自然キー」と「代理キー(サロゲートキー)」の使い分けが重要な設計判断となる。自然キーは業務的に意味を持つ識別子(社員番号・ISBN等)で、人間にとって理解しやすい。一方、代理キーは自動採番の連番(AUTO INCREMENT)やUUID(Universally Unique Identifier)を使い、業務的意味を持たない。代理キーが好まれる理由は、自然キーの値変更(社員番号体系の変更等)による外部キー参照の連鎖更新コスト回避、複合キーのJOIN記述の簡素化、シャーディング環境での一意性保証(UUIDv4が特に有効)にある。大規模Webシステム(EC・SNS)では分散データベースでの競合を避けるためにUUID v4やTwitterが開発したSnowflake IDのような分散ID生成アルゴリズムが使われている。
試験での位置づけ
データベース分野の主キー制約はITパスポートで「適切なものを全て挙げる」形式の識別問題として頻出であり、本問のような4記述の正誤判定パターンが定型化されている。誤記述として「数値限定」「インデックスとの重複不可」という「もっともらしい誤り」が繰り返し使われるため、正確な定義(一意性+NULL禁止のみ)を記憶しておくことが必要である。基本情報技術者(FE)では主キー・外部キー・参照整合性制約・正規化(第1〜第3正規形)の関係を問う出題が多く、「外部キーは参照先主キーに存在する値のみ許容される」という参照整合性の概念が追加される。
選択肢の発展補足
外部キー(Foreign Key)は別テーブルの主キーを参照する属性であり、存在しない値を外部キー列に登録しようとすると参照整合性制約違反でエラーになる。複合主キーは受注明細テーブルにおける「受注番号+商品番号」など、単独では一意にならない属性を組み合わせて一意性を確保する手法で、記述dの正しさの根拠となる。インデックスの種類にはB-tree(範囲検索向き)・ハッシュインデックス(等値検索向き)・全文検索インデックス(FULLTEXT)があり、主キーに自動作成されるのは通常B-treeである。インデックスを追加するほど検索は高速化するが、INSERT/UPDATE/DELETE時のインデックス更新コストが増加するため、闇雲に追加するのではなく実際のクエリパターンに基づいた設計が求められる。応用情報技術者ではINDEXの選択基準・実行計画の読み方・ロック粒度とトランザクション分離レベルまで踏み込んで問われる。
出典:IPA(情報処理推進機構)公式 ITパスポート試験 令和5年度 問78/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。