初級システムアドミニストレータ試験情報初級シスアド試験の既出問題平成16年度春期試験メニュー>問題と解説

初級シスアド 平成16年度春期試験 問題(午後問1)


 
問1 社内試験と社外資格の取得の履歴管理に関する次の記述を読んで,設問1〜3に答えよ。
 
 A社では,社内試験の合格か,社外資格の取得(以下,資格取得という)が,昇格の前提条件である。社内試験と資格取得の履歴情報は,社員ごとに台帳で管理されている。このたび,人事部のBさんは,社内試験と資格取得の履歴管理(以下,履歴管理という)を効率化するために,情報システム部に履歴管理データベースの構築を依頼した。
 A社の人事制度では,職位は1等級から7等級まであり,職位が上がると,等級の数が増えていく。資格と職位の関係は,次のとおりである。
 
〔資格と職位の関係〕
(1)  職位ごとに,昇格の前提条件となる資格が複数定められている。
(2)  上記(1)で定められた資格のうち,昇格に必要な資格の数は,職位ごとに定められている。
(3)  複数の職位で,同じ資格が前提条件となることがある。例えば,2等級への昇格に必要な資格と3等級への昇格に必要な資格が同じであった場合には,2等級への昇格時に取得していれば,3等級への昇格時にも有効となる。
 
 図1に,情報システム部が設計した履歴管理データベースの構造を示す。
 
社員表
社員番号 部番号 社員名 職位番号
 
部名表
部番号 部名
 
職位表
職位番号 職位名 取得資格数
 
社内試験表
試験番号 試験名 職位番号
 
社内試験履歴表
社員番号 試験番号 受験日 合否区分
 
資格表
資格番号 資格名
 
資格取得履歴表
社員番号 資格番号 取得日
 
前提資格表
職位番号 資格番号
 
図1 履歴管理データベースの構造
 
〔履歴管理データベースの概要〕
 履歴管理データベースの概要は,次のとおりである。
(1)  社員表,部名表については,別途稼働している人事システムの最新データを利用する。
(2)  職位表の職位番号と職位名の対応は,表の職位一覧のとおりである。
 
表 職位一覧
職位名 職位番号
7等級 07
6等級 06
1等級 01
 
(3)  社内試験表の試験番号は,その職位から昇格するために必要な社内試験の試験番号である。
(4)  前提資格表の資格番号は,その職位から昇格するために必要な取得資格の資格番号である。
(5)  職位表の取得資格数は,その職位から昇格するために必要な取得資格の数である。
(6)  社内試験を受けた社員については,社内試験履歴表に社員番号,試験番号及び受験日を登録する。さらに,合否区分として,合格の場合には“1”,不合格の場合には“0”を登録する。
(7)  資格を取得した社員については,資格取得履歴表に社員番号,資格番号及び取得日を登録する。
 

 
設問1 図1の履歴管理データベースを基に作成したE-R図を,図2に示す。図2中の[  ]に入れる適切な字句を,解答群の中から選べ。
 
午後問2問題 図2
 
解答群
ア 資格 イ 資格取得履歴 ウ 社内試験
エ 社内試験履歴 オ 前提資格  
 

設問1の正解へ
 
設問2 Bさんは,人事部長から,社内試験を受けて3等級への昇格の前提条件を満たした社員の部名,社員番号及び社員名の一覧の作成を依頼され,次のようなSQL文を作成したが,満足な結果が得られなかった。このSQL文の実行に関する記述として適切なものを,解答群の中から選べ。
 
SELECT 部名表.部名,社内試験履歴表.社員番号,社員表.社員名
 FROM 社内試験履歴表,社内試験表,部名表,社員表
 WHERE 社内試験履歴表.試験番号=社内試験表.試験番号
 AND 社内試験履歴表.合否区分='1'
 AND 社内試験表.職位番号='02'
 AND 社内試験履歴表.社員番号=社員表.社員番号
 AND 社員表.部番号=部名表.部番号
 ORDER BY 部名表.部番号,社内試験履歴表.社員番号
 
解答群
 異動した社員は,現在所属している部のほかに異動前の部も重複して出力される。
 現在1等級で,2等級への昇格の前提条件を満たした社員が出力される。
 社内試験を受けて既に昇格している社員まで出力される。
 社内試験を受けなかった社員も出力される。
 

設問2の正解へ
 
設問3 Bさんは,資格取得に基づいた3等級への昇格の前提条件を満たした社員の社員番号を抽出するために,次のSQL文を作成したところ,正しい結果が得られた。このSQL文中の[  ]に入れる適切な字句を,解答群の中から選べ。
 
SELECT 資格取得履歴表.社員番号,COUNT(*)
FROM 資格取得履歴表,[ f ]
WHERE 資格取得履歴表.資格番号 IN(SELECT [ g ]
                  FROM [ h ]
                  WHERE [ i ]='02')
 AND [ j ]=[ k ]
 AND [ l ]='02'
 GROUP BY 資格取得履歴表.社員番号
 HAVING COUNT(*)>=(SELECT 職位表.取得資格数
            FROM 職位表
            WHERE 職位表.職位番号='02')
 
f,hに関する解答群
ア 資格取得履歴表 イ 資格表 ウ 社員表
エ 職位表 オ 前提資格表  
 
g,i〜lに関する解答群
ア 資格取得履歴表.資格番号 イ 資格取得履歴表.社員番号
ウ 社員表.社員番号 エ 社員表.職位番号
オ 前提資格表.資格番号 カ 前提資格表.職位番号
 

設問3の正解へ
 
メニューへ戻る