初級システムアドミニストレータ試験情報 > 初級シスアド試験の既出問題 > 平成13年度春期試験メニュー>問題と解説
初級シスアド 平成13年度春期試験 問題(午後問6)
問6 データベースの利用に関する次の記述を読んで,設問1〜4に答えよ。
L社では,社員向けに各種の講座を開講し,その修了状況を人事考課などに反映させている。その運営を担当する社内教育部門では,各社員の受講状況の正確な把握と,講座運営の効率化を図るために,講座に関する各種の情報をデータベース化することにした。
〔講座運営の概要〕
それぞれの講座は,一つ以上の単元から構成されている。複数の単元から構成される講座の場合は,あらかじめ決められた順番にそれらの単元を受講しなければならない。単元ごとに試験があり,合格しないと次の単元に進むことができない。どの単元も,試験を含めて1日で終了し,その日のうちに試験の結果が分かるようになっている。単元での試験の結果が不合格であった場合は,後日その単元を再度受講し,試験を受け直さなければならない。
各講座の最終単元での試験合格をもって講座修了となり,修了証書が発行される。
〔データベースの構造〕
ここで使用するデータベースの構造を,図1のように決定した。
講座表
講座番号 講座名称 単元数
単元表
講座番号 単元番号 単元名称
社員表
社員番号 社員氏名
講座受講表
社員番号 講座番号 開始年月日 修了年月日
単元受講表
社員番号 講座番号 単元番号 受講年月日 試験結果
“単元番号”は,単元の受講順序を表すもので,1,2,3,…の連続した整数値が入る。講座受講表の“開始年月日”は社員が講座の受講を開始した日付,“修了年月日”はその講座を修了した日付である。講座受講表への新たな行の登録は,受講開始時に行う。社員が単元を受講すると,試験結果が分かった時点で,その内容を新たな行として単元受講表に登録する。このとき,“試験結果”には,“合格”又は“不合格”が入る。
表に行を挿入する時点で値が確定し得ない項目については,確定するまで空値(ナル)にしておく。
設問1 データベース中で,値が確定するまで空値にしておく必要のある項目を,解答群の中から選べ。
解答群
ア 講座受講表の“開始年月日” イ 講座受講表の“修了年月日” ウ 講座表の“単元数” エ 単元受講表の“試験結果” オ 単元受講表の“受講年月日” カ 単元受講表の“単元番号”
設問1の正解例と解説へ
設問2 指定した社員について,講座修了状況と受講中の講座の進捗状況を一覧表示したい。そのための画面として,画面1(図2)と画面2(図3)を作成した。
それぞれの画面の一覧データ(-----で囲まれた部分)を求めるSQL文中の[ ]に入れる適切な字句を,解答群の中から選べ。ここで,実際の“(選択項目)”の部分には必要な項目を列記し,“[社員番号]”と“[講座番号]”の部分には表示対象を特定する値を入れるものとする。
(画面1のためのSQL文)
SELECT (選択項目)
FROM [ a ],[ b ]
WHERE [ a ].[ c ] = [ b ].[ c ]
AND [ b ].[ d ] = [社員番号]
ORDER BY (選択項目)
(画面2のためのSQL文)
SELECT (選択項目)
FROM [ e ],[ f ]
WHERE [ e ].[ g ] = [ f ].[ g ]
AND [ e ].[ h ] = [ f ].[ h ]
AND [ f ].[ g ] = [講座番号]
AND [ f ].[ i ] = [社員番号]
ORDER BY (選択項目)
a,bに関する解答群
ア 講座受講表 イ 講座表 ウ 社員表 エ 単元受講表 オ 単元表
c,dに関する解答群
ア 開始年月日 イ 講座番号 ウ 試験結果 エ 社員氏名 オ 社員番号 カ 修了年月日 キ 受講年月日 ク 単元数 ケ 単元番号 コ 単元名称
e,fに関する解答群
ア 講座受講表 イ 講座表 ウ 社員表 エ 単元受講表 オ 単元表
g〜iに関する解答群
ア 開始年月日 イ 講座番号 ウ 試験結果 エ 社員氏名 オ 社員番号 カ 修了年月日 キ 受講年月日 ク 単元数 ケ 単元番号 コ 単元名称
設問2の正解例と解説へ
設問3 講座修了者に関する処理について,次のようなメモを作成した。このメモ中の[ ]に入れる適切な字句を,解答群の中から選べ。
(メモ:講座修了者に関する処理について)
(1) この処理は,当日発生した新たな講座修了者を対象とする日次処理である。
(2) 処理の手順は,次のとおりである。
当日の試験結果に基づいた[ j ]が終了していることを確認する。 対象者の有無を調べる。次のSQL文を実行すると,対象者の一覧を求めることができる。ここで,実際のSQL文では,“[当日]”の部分に処理当日の日付を入れる。
(対象者の一覧を求めるSQL文)
SELECT 講座表.講座番号,単元受講表.社員番号
FROM 講座表,単元受講表
WHERE 講座表.講座番号 = 単元受講表.講座番号
AND 講座表.単元数 = 単元受講表.単元番号
AND 単元受講表.受講年月日 = [当日]
AND 単元受講表.試験結果 = '合格'
対象者がいる場合は,[ k ]を行い,修了証書を発行する。
解答群
ア 講座受講表の更新 イ 講座表の更新 ウ 社員表の更新 エ 単元受講表の更新 オ 単元表の更新
設問3の正解例と解説へ
設問4 幾つかの単元について,1回受講しただけでは試験に合格するのは困難であるという意見があがっている。そこで,単元の難易度に関する調査を行うことになった。この調査に関する留意点をまとめた次の記述中の[ ]に入れる適切な字句を,解答群の中から選べ。
(難易度調査に関する留意点)
(1) 難易度が高いと思われる単元を選び出すために,次の二つの方法で分析を行う。
分析1は[ l ]の一覧を,分析2は[ m ]の一覧をそれぞれ求めるために行うものである。それぞれの分析では,閾(しきい)値を自由に変えることができるが,ここでは“3”を使っている。
(分析1の手順)
中間結果を格納するため,図4に示す“中間集計表1”を定義する。
図4 中間集計表1の構造 講座番号 単元番号 社員番号
次のSQL文による問合せ結果を,“中間集計表1”に格納する。
SELECT 講座番号,単元番号,社員番号
FROM 単元受講表
GROUP BY 講座番号,単元番号,社員番号
HAVING COUNT(*) >= 3
次のSQL文を実行し,その結果を分析結果とする。
SELECT 講座番号,単元番号
FROM 中間集計表1
ORDER BY 講座番号,単元番号
(分析2の手順)
中間結果を格納するため,図5に示す“中間集計表2”を定義する。
図5 中間集計表2の構造 講座番号 単元番号 社員番号 集計値
次のSQL文による問合せ結果を,“中間集計表2”に格納する。
SELECT 講座番号,単元番号,社員番号,COUNT(*) AS 集計値
FROM 単元受講表
GROUP BY 講座番号,単元番号,社員番号
次のSQL文を実行し,その結果を分析結果とする。
SELECT 講座番号,単元番号
FROM 中間集計表2
GROUP BY 講座番号,単元番号
HAVING AVG(集計値) >= 3
(2) [ n ]の結果には,重複が含まれることがある。ここでの重複数は,該当する[ o ]の数を表している。 (3) 分析2の集計対象には,[ p ]。
l,mに関する解答群
ア 3回以上受講した人がいる単元
イ 受講者一人当たりの平均受講回数が3回以上の単元
ウ 複数回受講した受講者が3人以上いる単元
エ 平均受講者数が3人以上の単元
nに関する解答群
ア 分析1 イ 分析2 ウ 両方の分析
oに関する解答群
ア 講座 イ 受講者 ウ 単元
pに関する解答群
ア 単元に1回で合格した人が含まれない
イ 単元に合格した人が含まれない
ウ 単元を受講したが,まだ合格していない人が含まれる
エ 単元を受講したことのない人が含まれる
オ 当該講座を受講中の人しか含まれない
設問4の正解例と解説へ
メニューへ戻る