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

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


 
問3 成績管理に関する次の記述を読んで,設問1,2に答えよ。
 
 T大学は,学生数約500名の大学である。これまでT大学の教務課では,学生の科目履修状況や成績を台帳で管理し,登録や問合せへの対応をすべて手作業で行っていた。近年,業務が多様化し,現在の要員では処理しきれなくなってきたので,データベースを利用した成績管理システムを構築することになった。
 
〔科目履修について〕
(1)  各科目は,各年度に1回開講される。
(2)  学生は,各年度の始めに,その年度に履修する科目を登録する。一度登録した科目の履修を取りやめる場合は,履修取消しの手続が必要である。
(3)  各科目は,教官1名が担当する。科目担当教官は,年度終了時,全履修登録者の成績を確定する。
(4)  授業が始まり,成績が確定するまでの間を履修中という。
(5)  成績はA,B,C,Dのいずれかで,A〜Cが合格,Dが不合格である。
(6)  学生は,一度合格した科目を再度履修することはできない。
 
〔成績管理システムの概要〕
(1)  図1は,このシステムで使用するデータベースの構造を示したものである。
(2)  履修表には,学生が履修中の科目に関する行と,成績確定後の履修結果に関する行とが格納されている。成績には,履修中の科目は“X”が,成績確定後の科目は“A”〜“D”のいずれかが設定されている。
(3)  学生は,自分の連絡先の更新,履修する科目の登録と取消し,履修科目の成績と担当教官氏名の参照を行うことができる。ほかの学生のデータにはアクセスできない。
(4)  教官は,自分の担当科目について,これまでにその科目を履修登録した学生に関する情報を参照することができる。担当外の科目のデータにはアクセスできない。
(5)  利用者の認証については,別に用意された認証システムで行う。
 
学生表
学生番号 学生氏名 連絡先
 
科目表
科目番号 科目名称 担当教官番号
 
教官表
教官番号 教官氏名
 
履修表
学生番号 科目番号 履修年度 成績
 
注 下線は各表の主キーを表す。
 
図1 データベースの構造
 

 
設問1 データベースへのアクセス制御に関する次の記述中の[  ]に入れる適切な字句を,解答群の中から選べ。解答は,重複して選んでもよい。
 
 データベース中のデータのうち,科目とその担当教官に関する情報は,すべての学生及び教官が共通して参照できる。参照可能な範囲は,次のSQL文で得られる結果表の範囲に相当する。
 SELECT 科目番号,科目名称,担当教官番号,教官氏名
   FROM 科目表,教官表
   WHERE 担当教官番号 = 教官番号
 
 各学生が参照できる範囲は,次のSQL文で得られる結果表の範囲に限定される。ここで,[該当する項目]には該当するすべての項目名が,[学生番号]には認証システムを通して得られた学生番号が入る。
 SELECT [該当する項目]
  FROM [ a ]
  WHERE [ b ]
 
 同様に,各教官が参照できる範囲は,次のSQL文で得られる結果表の範囲に限定される。ここで,[該当する項目]には該当するすべての項目名が,[教官番号]には認証システムを通して得られた教官番号が入る。
 SELECT [該当する項目]
  FROM [ c ]
  WHERE [ d ]
 
a,cに関する解答群
ア 学生表 イ 学生表,科目表
ウ 学生表,科目表,教官表,履修表 エ 学生表,科目表,履修表
オ 学生表,教官表,履修表 カ 科目表,教官表,履修表
キ 教官表 ク 教官表,履修表
 
bに関する解答群
 学生表.学生番号 = [学生番号]
 学生表.学生番号 = 履修表.学生番号
 AND 学生表.学生番号 = [学生番号]
 学生表.学生番号 = 履修表.学生番号
 AND 履修表.科目番号 = 科目表.科目番号
 AND 学生表.学生番号 = [学生番号]
 学生表.学生番号 = 履修表.学生番号
 AND 履修表.科目番号 = 科目表.科目番号
 AND 科目表.担当教官番号 = 教官表.教官番号
 AND 学生表.学生番号 = [学生番号]
 
dに関する解答群
 学生表.学生番号 = 履修表.学生番号
 AND 履修表.科目番号 = 科目表.科目番号
 AND 科目表.担当教官番号 = 教官表.教官番号
 AND 教官表.教官番号 = [教官番号]
 科目表.担当教官番号 = 教官表.教官番号
 AND 教官表.教官番号 = [教官番号]
 教官表.教官番号 = [教官番号]
 履修表.科目番号 = 科目表.科目番号
 AND 科目表.担当教官番号 = 教官表.教官番号
 AND 教官表.教官番号 = [教官番号]
 

設問1の正解例と解説へ
 
設問2 T大学では,科目間の履修順序を規定するために,前提科目制と呼ぶ制度の導入を検討している。この制度の導入に関する次の記述中の[  ]に入れる適切な字句を,解答群の中から選べ。
 
(前提科目制)
 各科目に,必要に応じて一つ以上の前提科目を設定することができる。前提科目が設定されている科目については,そのすべてに合格していないと,履修登録をすることができない。
 これによって科目間の履修順序に一定の制約を課すことができる。
 
(データベースの変更点)
 前提科目制導入後のデータベースの構造は,図2のとおりとなる。
 
学生表
学生番号 学生氏名 連絡先
 
科目表
科目番号 科目名称 担当教官番号
 
前提科目表
[ e ] [ f ]
 
教官表
教官番号 教官氏名
 
履修表
学生番号 科目番号 履修年度 成績
 
注 下線は各表の主キーを表す。
 
図2 前提科目制導入後のデータベースの構造
 
(処理の変更点)
 学生が履修登録を行うには,前提科目制の条件を満たしている必要がある。このことを確認する手順は次のとおりである。ここで,[学生番号]には当該学生の学生番号が,[科目番号]には履修希望科目の科目番号が入る。
 
(1)  次のSQL文で得られる結果表を,中間表1とする。
 SELECT [ g ]
   FROM 前提科目表
   WHERE [ h ] = [科目番号]
(2)  次のSQL文で得られる結果表を,中間表2とする。
 SELECT 科目番号
   FROM 履修表
   WHERE 学生番号 = [学生番号]
   AND [ i ]
   AND 成績 [ j ]
(3)  中間表1と中間表2の内容が一致していれば,条件は満たされている。
 
e,fに関する解答群
ア 科目番号 イ 科目番号
ウ 前提科目番号 エ 前提科目番号
 
g,hに関する解答群
ア 科目番号 イ 前提科目番号
 
iに関する解答群
 EXISTS (SELECT * FROM 中間表1)
 NOT EXISTS (SELECT * FROM 中間表1)
 科目番号 <> [科目番号]
 科目番号 = [科目番号]
 科目番号 IN (SELECT * FROM 中間表1)
 科目番号 NOT IN (SELECT * FROM 中間表1)
 
jに関する解答群
ア <> 'D' イ  = 'D'
ウ <> 'X' エ  = 'X'
オ IN ('A','B','C') カ NOT IN ('A','B','C')
 

設問2の正解例と解説へ
 
メニューへ戻る