ITパスポート試験 ITパスポート 2013年 (平成25年 春期)55: 関係データベースを使い"社員"表と"部署"表を作成して社員情報を管理する。"社員"表と"部署"表に,必要に応じて設定する主キーと外部キーの適切な組合せはどれか。

ITパスポート 2013年 (平成25年 春期)
Q 5555 / 100
関係データベースを使い"社員"表と"部署"表を作成して社員情報を管理する。"社員"表と"部署"表に,必要に応じて設定する主キーとの適切な組合せはどれか。ここで,社員は必ず"部署"表に存在する部署に所属するものとし,社員データの追加や更新をするときには,参照制約を利用して整合性を確保するものとする。 社員 | 社員コード | 社員名 | 入社年 | 生年月日 | 部署コード | 部署 | 部署コード | 部署名 |
主キー外部キー
"社員"表の社員コード,"部署"表の部署コードなし
"社員"表の社員コード,"部署"表の部署コード"社員"表の部署コード
"部署"表の部署コード"社員"表の社員コード,"社員"表の部署コード
"社員"表の部署コード"社員"表の社員コード,"部署"表の部署コード
この問の正解率:55.36%(1,250件)
この問題の本文・選択肢・正解・解説(展開)

問題本文

関係データベースを使い"社員"表と"部署"表を作成して社員情報を管理する。"社員"表と"部署"表に,必要に応じて設定する主キーと外部キーの適切な組合せはどれか。ここで,社員は必ず"部署"表に存在する部署に所属するものとし,社員データの追加や更新をするときには,参照制約を利用して整合性を確保するものとする。 社員 部署

選択肢

  • ."社員"表の社員コード,"部署"表の部署コード / なし
  • ."社員"表の社員コード,"部署"表の部署コード / "社員"表の部署コード
  • ."部署"表の部署コード / "社員"表の社員コード,"社員"表の部署コード
  • ."社員"表の部署コード / "社員"表の社員コード,"部署"表の部署コード

正解

. "社員"表の社員コード,"部署"表の部署コード / "社員"表の部署コード

解説

関係データベースの設計では,各表に行を一意識別する主キーを設定し,表間の参照関係には外部キー(参照先表の主キーを参照する列)を設定する.設問では,社員表の社員コードと部署表の部署コードがそれぞれ各表の主キー.社員は必ず部署表に存在する部署に所属するという制約があるため,社員表の部署コードを部署表の部署コードを参照する外部キーに設定することで参照制約による整合性が保たれる.主キー=社員表の社員コード+部署表の部署コード,外部キー=社員表の部署コードという組合せのイが正解.アは外部キーがない,ウとエは主キーの設定が逆転しており不適切である.

選択肢ごとの解説

  • .主キーを社員表の社員コードと部署表の部署コードに設定する点は正しいが,外部キーを「なし」とするのは誤り.参照制約による整合性確保のためには社員表の部署コードを部署表の部署コードを参照する外部キーに設定する必要があり,外部キーなしでは存在しない部署を社員に紐付けてしまう不整合を防げない.
  • .正解.主キーは社員表の社員コードと部署表の部署コード(各表で行を一意識別),外部キーは社員表の部署コード(部署表の部署コードを参照)とする組合せ.社員が必ず実在する部署に所属するという参照制約を保証でき,データ整合性が確保される標準的なリレーション設計である.
  • .主キーを部署表の部署コードだけ,外部キーを社員表の社員コードと社員表の部署コードとするが,社員表の主キー(社員コード)を主キーとして設定していない点が誤り.各表に主キーを設定するのが基本で,社員表の社員コードは行一意識別の主キーとして欠かせない.外部キーの組合せも不適切.
  • .主キーを社員表の部署コードのみとするが,社員表では社員コードこそが行を一意識別する主キー.部署コードは外部キーとして部署表を参照する列であり主キーではない.主キーと外部キーの役割が逆転しており,基本的なRDB設計と矛盾するため不適切で誤り.

ITパスポート 2013年 (平成25年 春期)過去問一覧へ戻る・問55