戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

ITパスポート 2010年 秋期 87


問題文

“部署”表、“都道府県”表及び“社員”表を結合して、A表を作成した。結合した“社員”表はどれか。ここで、下線は主キーを示し、破線は外部キーを示す。
ITパスポート 2010年 秋期  問87の問題画像ITパスポート 2010年 秋期  問87の選択肢の画像

選択肢

(正解)

🔒 解説は解答すると表示されます

結合した“社員”表はどれか【ITパスポート 解説】

正解の理由

理由の要点を先に示します。
  • A表には「部署名」と「都道府県名」が入っています。これらは元の「部署」表と「都道府県」表から取得された値です。
  • あるテーブルから別のテーブルの値を取り出すには、それらを結びつけるための「鍵(コード)」が社員表に必要です。つまり、社員表には「部署コード」「都道府県コード」という外部キー(外部キー:ほかの表の主キーを参照する欄)が存在するはずです。問題文で「破線は外部キーを示す」とあるので、外部キーが破線で示されている選択肢を探します。
  • エの記述は「社員番号(主キー)」「社員名」「年齢」「部署コード(破線=外部キー)」「都道府県コード(破線=外部キー)」となっており、A表を作るために必要な構造になっています。よってエが正解です。

解法ステップ

  1. A表の列を確認する:社員番号、社員名、部署名、都道府県名、年齢。
  2. A表の「部署名」「都道府県名」はそれぞれ部署表/都道府県表の情報なので、元の社員表にはそれらを参照するコード(部署コード、都道府県コード)があるはずだと考える。
    • 補足:コード(例:部署コード)は参照先テーブルの主キー(部署表の部署コードなど)を指す外部キーになります。
  3. 選択肢の中で「部署コード」「都道府県コード」両方が外部キー(破線)になっているものを選ぶ。
  4. それが選択肢エであるため、エが正解。
(SQLで表すとイメージしやすいです)
SELECT e.社員番号, e.社員名, d.部署名, p.都道府県名, e.年齢
FROM 社員 e
JOIN 部署 d ON e.部署コード = d.部署コード
JOIN 都道府県 p ON e.都道府県コード = p.都道府県コード;

選択肢別の誤答解説

  • ア:社員番号・社員名・年齢だけ。部署/都道府県を結合するためのコードがないため、部署名や都道府県名を取得できない。A表を作れない。
  • イ:社員番号・社員名・年齢・都道府県コードがある。都道府県名は結合で取得可能だが、部署名を得るための部署コードがないためA表(部署名を含む)を作れない。
  • ウ:社員番号・社員名・年齢・部署コードがある。部署名は得られるが、都道府県名を得るための都道府県コードがないためA表を完全に再現できない。
  • エ:社員番号(主キー)、部署コードと都道府県コード(ともに外部キー)を持つ。両方の参照先から名前を取得できるのでA表が作れる(正解)。

よくある誤解

  1. 「A表に部署名があるから社員表にも部署名があるはず」と考える誤り。A表の部署名は結合で持ってきた可能性が高く、正しい設計では名前は参照元のマスタ表に置くことが多いです。
  2. 下線と破線の区別を見落とすミス。下線=主キー、破線=外部キーの指定は問題文で明示されています。見落とすと選択肢の意味を取り違えます。
  3. 列の並び順に過度にこだわる誤解。並び順は重要ではなく、どの列が主キー/外部キーかが重要です。

補足コラム

  • 主キー(主キー = primary key):その表の各行を一意に識別する欄。社員番号が例です。
  • 外部キー(外部キー = foreign key):別の表の主キーを参照する欄。データの関連付けに使います。例:社員表の部署コードは部署表の部署コードを参照します。
  • なぜコードで管理するのか? 部署名や都道府県名を社員表に直接たくさん入れてしまうと、名前が変更されたときに複数箇所の修正が必要になります。コードで参照すると一箇所(マスタ表)の更新だけで済み、データの一貫性が保てます(これを正規化と呼びます)。
短い例え:社員表に部署名をベタ書きするのは、住所ごとに県名を全部書くようなものです。県コードを参照する仕組みにすると、県名が変わってもコード表を直すだけで済みます。

FAQ

Q. 社員表に「部署名」も「部署コード」も両方入っている場合はどうなる?
A. 実務では両方入れることもありますが、冗長(重複)になりミスの原因になります。通常はコードを保持し、名前は必要なときに結合して取得します。
Q. 列の順番が違っても答えは変わる?
A. 列の順序自体はSQLの結合や関係性に影響しません。重要なのは主キー/外部キーとして必要な列があることです。
Q. 外部キーがないと結合は絶対にできない?
A. 厳密には「対応する列同士の値があれば」結合できますが、設計上は参照を明示する外部キーを使うことで整合性(正しい関連)が保ちやすくなります。

関連キーワード: リレーショナルデータベース、主キー、外部キー、正規化、JOIN、SQL、テーブル設計
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

ITパスポート
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について