ITパスポート試験 / 平成27年度 春期 ITパスポート試験 公開問題 / 問86
certification-simodake-work

平成27年度 春期 ITパスポート試験 公開問題 問86 解説 主キーの定義

設問図

入退室許可表のレコードを一意に決めるための主キーとして、適切なものはどれか。ここで、下線は主キーを表す。

選択肢図
  1. ア.
  2. イ. ✓ 正答
  3. ウ.
  4. ニ.

解説

主キー(Primary Key)を選ぶ際は、データが重複せず、その1行を特定できる組み合わせを探すことがポイントです。この問題では、誰が、どの場所に、どのような許可権限を持っているかという関係性を記述するため、これら3つの要素すべてを組み合わせなければ、レコードを特定できません。したがって、社員番号、区画番号、許可区分のすべてに下線が引かれているものが正解となります。

主キーとは何か

データベースにおいて、表の中のレコード(データ1件分)を識別するための識別子のことを主キーと呼びます。主キーには以下の2つの重要なルールがあります。

  1. 一意性(ユニーク性): 表の中に同じ値を持つデータが重複して存在してはいけない。
  2. 非空制約(NOT NULL): 未入力(空欄)であってはいけない。

もし、社員番号だけを主キーにしてしまうと、その社員が複数の区画への入室権限を持っている場合にデータが衝突してしまいます。そこで、複数の項目を組み合わせてひとつの主キーとして機能させる「複合主キー」という考え方が必要になります。

なぜ複合主キーが必要なのか

今回の入退室許可表は、単なる名簿とは異なり、多対多の関係性を管理しています。 例えば、社員Aさんが「執務室」と「サーバ室」の両方に入る権限がある場合、以下のようになります。

・社員番号A、区画B、許可権限○ ・社員番号A、区画C、許可権限○

このように、個別の項目だけでは重複が発生してしまうケースでも、社員番号・区画番号・許可区分の3つをセットにすることで、初めて一意のデータとして識別できるようになります。

実務におけるデータベース設計の考え方

ITパスポートの試験範囲であるデータベース設計の基礎は、実際の業務システム開発でも非常に重要です。

現実のシステムでは、データの不整合を防ぐことが最優先されます。例えば、誰がどの部屋に入れるかを管理するテーブルで主キーの設定が甘いと、二重登録が発生したり、間違った権限が適用されたりする事故につながります。実務ではこのような設計ミスを防ぐために、あらかじめ業務上のルールを定義し、それをモデル図(ER図など)に落とし込んでいく作業を行います。今回の問題のように、どの項目を組み合わせればデータが一意になるかを論理的に考える力は、プログラミングやデータ分析を行う際の基礎体力といえます。

参考リンク

学習の記録にははてなブックマーク!

気づいたこと・覚えたことをコメントにメモしよう