本文へスキップ

平成22年度 秋期 ITパスポート試験 問87

この問題の解説と、これまでの解答の記録です。

問87
頻出度★★☆

“部署”表,“都道府県”表及び“社員”表を結合して,A 表を作成した。結合した“社員”表はどれか。ここで,下線は主キーを示し,破線は外部キーを示す。 部署

部署コード部署名

都道府県

都道府県コード都道府県名

A

社員番号社員名部署名都道府県名年齢

(下線のうち実線は主キー,破線は外部キーを表す。部署表:部署コードが実線下線。都道府県表:都道府県コードが実線下線。A 表:社員番号が実線下線。選択肢は 4 肢とも 社員番号 が実線下線で,部署コード・都道府県コードは破線下線。)

  • 社員番号社員名年齢
  • 社員番号社員名年齢都道府県コード
  • 社員番号社員名年齢部署コード
  • 社員番号社員名年齢部署コード都道府県コード
出典 平成22年度 秋期 ITパスポート試験 問87
解説

問 87

  • 不正解ア

    社員番号・社員名・年齢 だけで外部キーを一つももたない。「部署」表とも「都道府県」表とも突き合わせる列がないため結合できず、A 表の 部署名・都道府県名 を得られない。

  • 不正解イ

    外部キーが 都道府県コード だけなので「都道府県」表とは結合でき 都道府県名 は得られるが、「部署」表と結びつく 部署コード がなく、A 表の 部署名 を得られない。

  • 不正解ウ

    外部キーが 部署コード だけなので「部署」表とは結合でき 部署名 は得られるが、「都道府県」表と結びつく 都道府県コード がなく、A 表の 都道府県名 を得られない。

  • エ

    正解 A 表は 社員番号・社員名・部署名・都道府県名・年齢 の 5 項目からなる。このうち 部署名 は「部署」表、都道府県名 は「都道府県」表にしか存在しない項目で、結合によって取り込まれたものである。関係データベースで 2 つの表を結合するには、参照する側の表が相手表の主キーと同じ値をもつ列(外部キー)をもっていなければならない。したがって元の「社員」表には、A 表にそのまま現れる 社員番号(主キー)・社員名・年齢 に加えて、「部署」表の主キー 部署コード と「都道府県」表の主キー 都道府県コード という 2 つの外部キーが必要になる。この 5 列をすべて備えるのは エ だけであり、図でも エ の 部署コード・都道府県コード が破線下線(外部キー)で示されていて、2 表との結合関係と一致する。

ここがポイント
  • 結合(join)は、一方の表の外部キーの値を他方の表の主キーの値と突き合わせて 1 つの表にまとめる操作。結合したい相手表の数だけ、その主キーに対応する外部キーが必要になる。
  • 結合後の表から元の表を逆算する考え方:名称項目(部署名・都道府県名)はコード項目(部署コード・都道府県コード)を介して他表から取り込まれるので、元表にはその外部キー列が残っていなければならない。
用語

解答の記録