応用情報技術者過去問題 平成27年秋期 午後問6

問6 データベース

人事情報のデータ構造に関する次の記述を読んで,設問1〜3に答えよ。

 R社では,人事システムの改善を検討している。現行システムでは,現時点での情報しか管理していないが,過去の履歴や将来の発令予定も管理できるようにしたいと考えている。
 現行システムでの社員と部署のE-R図を図1に示す。部署の階層は木構造になっており,再帰リレーションシップで表現している。最上位は会社で,下に向かって本部,部,課などが配置されている。上位部署IDには,上位部署の部署IDを保持し,最上位である会社の上位部署IDにはNULLを設定する。社員は必ず一つの部署だけに所属している。部署には部署長が必ず一人存在するが,一人の社員が複数の部署の部署長を兼任している場合もある。また,各社員に携帯電話機を1台ずつ配布しており,電話番号は部署にではなく,社員に割り当てられている。
pm06_1.gif/image-size:392×252
 図1のリレーションシップが,どの属性と関連しているかを表1に示す。表1の1行目は,エンティティ"社員"の属性"所属部署ID"がエンティティ"部署"の属性"部署ID"を参照する外部キーとなっていて,"社員"と"部署"の間には多対1のリレーションシップがあることを示している。多対1のリレーションシップの多側が外部キーの属性,1側が主キーの属性と対応している。
pm06_2.gif/image-size:437×99
 現行システムは,図1のE-R図のエンティティ名を表名に,属性名を列名にして,適切なデータ型で表定義した関係データベースによって,データを管理している。
 指定した部署とその配下の全ての部署の部署ID,部署名,上位部署IDを出力するSQL文を図2に示す。ここで,":部署ID"は,指定した部署の部署IDを格納する埋込み変数である。
pm06_3.gif/image-size:435×163
 図2では,SQL:1999で導入された WITHRECURSIVE 構文を用いて再帰的なクエリを実現している。まず2,3行目の SELECT で,埋込み変数":部署ID"で指定し上位部署IDから成る1行の表"関連部署"が導出される。次に5,6行目の SELECT で,"関連部署"の中にある部署IDと一致する上位部署IDをもつ部署の部署ID,部署名,上位部署IDから成る行の集まりが新たに表"関連部署"として導出される。これが,表"関連部署"の新たな行がなくなるまで繰り返される。最後に8行目の SELECT で,それまで導出された"関連部署"の全ての行について部署ID,部署名,上位部署IDが出力される。

〔新システムでの履歴管理〕
新システムでは,(1)〜(4)の要件を実現したいと考えている。
  • 指定した社員が,今までに所属していた部署の履歴が分かる。
  • 指定した日の,会社全体の部署構造が分かる。
  • 人事異動後の部署,所属の情報をあらかじめ入力しておき,異動が発生したらすぐに有効とする。
  • 所属情報以外の社員の情報は履歴管理する必要はなく,最新の情報だけを管理すればよい。
 これらの要件を実現するために,エンティティ"社員"と"部署"に,属性"適用開始年月日"と"適用終了年月日"を追加して,各タプルの有効期間を管理する方法を考えた。指定した日が適用開始年月日から適用終了年月日までの範囲内であれば,その日の時点で有効なタプルである。適用終了年月日が未定の場合は,'9999-12-31' を設定する。新しいエンティティ"社員"と"部署"を図3に示す。
pm06_4.gif/image-size:282×189
 しかし,①図3のエンティティ"社員"は十分に正規化されていないとの指摘を受け,エンティティ"所属"を新たに追加し,エンティティ"社員"を第3正規形とした。新システムでの社員と部署と所属のE-R図を図4に示す。
pm06_5.gif/image-size:326×162
 要件(2)を実現するSQL文を図5に示す。ここで,":年月日"は,指定した日の日付を格納する埋込み変数である。
pm06_6.gif/image-size:479×208
 現時点での部署テーブルの内容を表2に示す。
pm06_7.gif/image-size:511×231
 埋込み変数":年月日"にeからfまでの範囲の日付を設定して,表2の部署テーブルに対して図5のSQL文を実行すると,その結果は表3のとおりとなる。
pm06_8.gif/image-size:257×167

設問1

現行システムについて,(1),(2)に答えよ。
  • 図1及び表1中のaに入れる適切なリレーションショプを答え,E-R図を完成させよ。図1の凡例に倣って解答すること。
  • 表1中のbcに入れる適切な属性名を答えよ。

-解答入力欄-

    • a:
    • b:
    • c:

-解答例・解答の要点-

    • a:
    • b:部署ID
    • c:上位部署ID

-解説-

この設問の解説はまだありません。

設問2

新システムの要件を実現するためのエンティティについて,(1),(2)に答えよ。
  • 本文中の下線①で,エンティティ"社員"は第1正規形,第2正規形,第3正規形のうち,どこまで正規化されているか答えよ。また,その理由を30字以内で述べよ。
  • 図4中のエンティティ"所属"の属性を,本文中又は図中の字句を用いて答えよ。属性が主キーの一部となる場合は,実線の下線を付けること。(※正誤判定の都合上、主キー属性は(属性名)と入力してください)

-解答入力欄-


-解答例・解答の要点-

    • 第1正規形
    • ・主キーの一部に関数従属している属性があるから (22文字)
      ・主キーに部分従属している属性があるから (19文字)
      ・社員IDだけに従属している属性があるから (20文字)
    • 社員ID適用開始年月日,適用終了年月日,所属部署ID (41文字)

-解説-

この設問の解説はまだありません。

設問3

新システムの要件(2)について,(1),(2)に答えよ。
  • 図5中のdに入れる適切な字句又は式を答えよ。
  • 本文中のefに入れることのできる最大範囲の日付の組を答えよ。

-解答入力欄-

    • d:
    • e:
    • f:

-解答例・解答の要点-

    • d:IS NULL
    • e:2012-10-01
    • f:2014-03-31

-解説-

この設問の解説はまだありません。
問6成績
【27年秋期 午後問題】
 問1 問2 問3 問4 問5 問6 問7 問8 問9 問10 問11
© 2010-2019 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop