平成25年度 春期 ITパスポート試験 公開問題 問55 解説 主キーと外部キー
関係データベースを使い“社員”表と“部署”表を作成して社員情報を管理する。 “社員”表と“部署”表に,必要に応じて設定する主キーと外部キーの適切な組合せはどれか。ここで,社員は必ず“部署”表に存在する部署に所属するものとし,社員データの追加や更新をするときには,参照制約を利用して整合性を確保するものとする。
- ア.
- イ. ✓ 正答
- ウ.
- エ.
解説
この問題の解き方は、表ごとに「レコードを一意に特定できる項目」を主キーに設定し、表同士の関連付けを行う項目を「外部キー」に指定することです。今回のケースでは、社員表の「社員コード」と部署表の「部署コード」を主キーとし、社員が所属する部署を指し示すために社員表の「部署コード」を外部キーに設定するのが正解です。
主キーと外部キーの役割
関係データベース(RDB)において、データの整合性と正確性を保つために非常に重要なのがキーの設定です。
主キー(Primary Key)は、表内の各レコードを重複なく特定するための識別子です。例えば、社員表であれば「社員コード」がこれに当たります。もし氏名のみをキーにすると、同姓同名の人がいた場合に区別がつかなくなってしまうため、重複しないユニークな値を持つ項目を主キーに設定します。
外部キー(Foreign Key)は、他の表の主キーを参照するために使用する項目です。この問題では、社員がどの部署に所属しているかを管理するために、社員表の中に「部署コード」という項目を用意しています。この部署コードが、部署表の主キーである「部署コード」を指し示す(参照する)ことで、データ同士のつながりが生まれます。
整合性を守る参照制約
「参照制約」とは、外部キーが常に「参照先の主キーの値として存在していること」を強制するルールのことです。問題文にある「社員は必ず部署表に存在する部署に所属するものとする」という条件を実現するために不可欠です。
例えば、部署表に存在しない「99番」という部署コードを社員表に入力しようとした場合、データベースシステムが「そんな部署は存在しません」とエラーを出し、不正なデータが登録されるのを防ぎます。これにより、データベース全体の情報の整合性が保たれる仕組みになっています。
なぜこの知識が重要なのか
この知識は、単なる試験対策にとどまらず、実際のシステム設計やデータ分析の現場でも必須となります。
私たちが普段利用しているWebサービスや業務システムも、背景ではこの「キー」を介して無数のデータが整然と関連付けられています。例えば、注文履歴から顧客情報を引き出したり、特定のカテゴリの商品一覧を表示したりする仕組みは、すべて主キーと外部キーによるリレーションシップ(関係性)に基づいて成り立っています。
データベース設計の初期段階でこれらを正しく設定することは、将来的にデータの二重登録を防いだり、集計ミスを減らしたりするための「土台作り」といえます。ITパスポートで学ぶこの概念を理解しておくと、システムがどのような論理構造で動いているのかを俯瞰して理解できるようになります。