ITパスポート試験 ITパスポート 2017年 (平成29年 春期)69: ある会社の社員の情報処理技術者試験の受験状況の一部を次に示す。この表を関係データベースで管理するために,二つの表に分割する方法として,適切なものはどれか。ここで

ITパスポート 2017年 (平成29年 春期)
Q 6969 / 100
ある会社の社員の情報処理技術者試験の受験状況の一部を次に示す。この表を関係データベースで管理するために,二つの表に分割する方法として,適切なものはどれか。ここで,この会社には同姓同名の社員がいるものとする。
社員ID社員名生年月日試験種別試験日合否
0001佐藤 花子1985/4/29ITパスポート2013/4/21
0002鈴木 一郎1990/11/3基本情報技術者2013/4/21
0003高橋 二郎1992/2/11ITパスポート2013/4/21
0001佐藤 花子1985/4/29基本情報技術者2013/10/20
0003高橋 二郎1992/2/11ITパスポート2013/10/20
この問の正解率:61.09%(843件)
この問題の本文・選択肢・正解・解説(展開)

問題本文

ある会社の社員の情報処理技術者試験の受験状況の一部を次に示す。この表を関係データベースで管理するために,二つの表に分割する方法として,適切なものはどれか。ここで,この会社には同姓同名の社員がいるものとする。

選択肢

  • .[社員ID, 社員名, 生年月日] と [社員ID, 試験種別, 試験日, 合否]
  • .[社員ID, 社員名, 生年月日] と [社員名, 試験種別, 試験日, 合否]
  • .[社員ID, 社員名, 生年月日, 試験日] と [社員ID, 社員名, 試験種別, 合否]
  • .[社員ID, 生年月日, 試験日] と [社員ID, 社員名, 試験種別, 合否]

正解

. [社員ID, 社員名, 生年月日] と [社員ID, 試験種別, 試験日, 合否]

解説

関係データベースの正規化では、重複データをなくすためにデータを分割して管理する。社員の基本情報(社員ID・社員名・生年月日)と受験履歴(社員ID・試験種別・試験日・合否)に分割し、共通の主キー「社員ID」で結合する設計が適切。同姓同名の社員がいるため社員名では一意に識別できず、社員IDを結合キーとしなければならない。試験日を社員側に含めると社員の試験受験ごとに行が重複し非正規。

選択肢ごとの解説

  • .正しい。[社員ID・社員名・生年月日]は社員固有情報の表、[社員ID・試験種別・試験日・合否]は受験履歴の表に分割。社員IDを外部キーとして結合でき、同姓同名でも一意に識別可能。重複データのない正規化された設計。
  • .誤り。受験履歴表の結合キーに社員名を使うと、同姓同名の社員を区別できない。「佐藤花子」が複数いる場合に正しい社員の受験履歴を特定できなくなる。社員IDを使わない設計では同姓同名問題を解決できない。
  • .誤り。社員側の表に試験日を含めると、1人の社員が複数の試験を受けた場合に社員基本情報(ID・名前・生年月日)が繰り返し登録されてしまう。これは非正規化であり、データの重複と更新異常が発生する。
  • .誤り。社員名が社員情報表と受験履歴表の両方に分散されると、社員名の変更時に両表の更新が必要になり更新異常が発生する。また社員IDのない設計では一意識別ができず、同姓同名問題も解決されない。

ITパスポート 2017年 (平成29年 春期)過去問一覧へ戻る・問69