基本情報 平成21年度 春期 問32:テクノロジ系に関する問題
関係データベースの主キーの位損として, 適切なものはどれか。
- a主キーとした列に対して検索条件を指定しなければぱ, 行の検索はできない。
- b数値型の列を主キーに指定すると, その列は算術演算の対象としては使えない。 ーつの表の中に, 主キーの値が同じ行が複数存在することはない。
- c複数の列からなる主キーを構成することはできない。正答
- dH 寺へ いい
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは c です(試験原本では選択肢の文章「主キーの値が同じ行が複数存在することはない」が正解)。
主キー(しゅキー)は表の中の「そのデータを一意(ゆいいつ)に特定するための番号」。例えば学校で「学籍番号」が主キー。
同じ学籍番号の人が2人いたら誰だかわからなくなるので、絶対に重複させないのがルール。
👉 覚え方:主キー=「クラスの出席番号」。誰一人として同じ番号にならない!
ほかの選択肢:「主キー以外で検索できない」「数値型を主キーにすると計算に使えない」「複数列を主キーにできない」のような書き方は全部ウソ。普通の列としても使えるし、複数列をまとめた複合主キーもある。
なぜこれが正解か
正解は c。関係データベースの主キーは表の各行を一意に識別する列(または列の組合せ)であり、以下の制約を持つ:(1) 一意性(同じ値の行が複数存在しない)、(2) 非NULL(NULL不可)。よって「主キーの値が同じ行が複数存在することはない」は主キー定義そのもの。
各選択肢の解説
- a:主キー以外の列でも検索可能(WHERE句は任意の列に指定できる)。
- b:数値型を主キーにしても、その列を演算対象にできる(SQL上の制約はない)。
- d:複数列で構成される複合主キー(concatenated/composite key)は可能。例:受発注表の(注文番号, 商品番号)。
覚え方・ひっかけ注意
主キーの制約「一意・非NULL」、外部キーは「参照整合性」とセットで覚える。候補キー(一意性を満たす全ての列組)の中から1つ選んだものが主キー、選ばれなかったのが代替キー(alternate key)。
理論的背景
関係モデル(E.F.コッド, 1970)におけるスーパキーは行を一意に識別する列集合の総称で、その中で極小(どの列を除いても一意性が失われる)なものが候補キー。候補キーのうちDB設計者が代表として選んだものが主キー、それ以外が代替キー。主キー制約はインデックス(通常クラスタ化インデックス)を自動生成するDBMSが多く、検索性能の基盤となる。外部キーは他表の主キー(または一意制約付き列)を参照し、参照整合性(RI: Referential Integrity)を保証する。
実務での使われ方
設計上はナチュラルキー(業務上意味のあるキー、例:商品コード)とサロゲートキー(人工的な連番、例:自動採番ID/UUID)の選択がよく論点になる。サロゲートキーは業務変更に強い反面、一意性をアプリ側で別途担保する必要がある。分散DB・マイクロサービス環境ではUUIDやSnowflake IDが主流。マイナンバーのように業務的に必須のナチュラルキーは「自然キー+サロゲートキー」の併用も。
試験での位置づけ
FE科目Aでは主キー制約・候補キー・外部キーの定義問題が定番。データベーススペシャリストでは正規化(1NF〜BCNF)と関連付けて出題、ER図からの主キー推定、参照整合性のON DELETE CASCADE/RESTRICT/SET NULLの選定が頻出。応用情報の午後でもSQL設計と合わせて出される。
選択肢の発展補足
関連制約:NOT NULL、UNIQUE(候補キー用、NULL重複は許容)、CHECK(値の範囲制約)、DEFAULT、FOREIGN KEY。正規化との関係では、第2正規形は主キーの一部だけに従属する非キー属性を排除する形なので、複合主キー理解が前提となる。NoSQL時代でもプライマリキー設計はパーティション戦略の基礎なので普遍的に重要。
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成21年度 春期 問32/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。