平成14年度 春期 ソフトウェア開発技術者 午後1
問1 問2 問3 問4 問5 問6 解答例(若林研二氏) 
注:等倍フォントでご覧ください。 

問 6
 履修管理システムの構築に関する次の記述を読んで,設問 1〜5 に答えよ。

 現在運用している学生の履修状況を管理するシステム(以下,履修管理システ
ムという)の機能を見直して,新システムを構築することになった。新システム
では,科目に関する情報のほかに,学生の資格取得強化ゼミの参加状況に関する
情報を管理することにした。
 新システムを設計するに当たって,旧システムの調査を実施した。履修管理シ
ステムが出力する“科目別受講状況表”のレイアウトは,図 1 のような形式であ
った。学生は,必ず一つの学部学科に所属し,複数の科目を受講する。また,一
つの科目は 1 人の教職員が担当するが, 1 人の教職員が複数の科目を担当すること
もある。
 次に,新システムで作成する資格取得強化ゼミの“強化ゼミ参加者名簿”の要
件をまとめると,表のようになった。
 なお,資格取得強化ゼミは,複数開講されている。


 
 
表 資格取得強化ゼミの“強化ゼミ参加者名簿”の出力要件など

〔強化ゼミ参加者名簿の出力要件〕
1.強化ゼミ参加者名簿に掲載する項目
 (a)強化ゼミ参加者名簿の見出し部に印刷する項目は,次のとおりである。
  ・強化ゼミコード
  ・強化ゼミ名称
  ・顧問の教職員名
  ・活動場所
  ・出力年月日
  ・ページ番号
 (b)強化ゼミ参加者名簿の明細部には,次の項目を横 1 行に印刷する。
  ・学生名
  ・学籍番号
  ・連絡先電話番号
  ・入会年月日
 (C)明細部の出力条件
  ・退会者は,印刷しない。
  ・退会者と在籍者の区別は,“退会年月日”に格納されたデータを用いて判断するこ
   とができる。退会者の“退会年月日”には,退会した年月日が入る。在籍者は,
   “退会年月日”に NULL が設定されている。
   明細部は,“入会年月日”順(昇順)で,かつ学生名の“ふりがな”の五十音順に
   掲載する。

2.強化ゼミ参加者名簿の出力単位
  強化ゼミ参加者名簿は,強化ゼミコードごとに改ページして出力する。また,明
 細部を 40 行印刷するごとに改ぺージする。

3.強化ゼミ参加者名簿の出力時期
  強化ゼミ参加者名簿の出力は,随時可能とする。

〔資格取得強化ゼミに関する前提条件〕

1.顧問
  資格取得強化ゼミの顧問は,1 人の教職員が担当する。また,1 人の教職員は,
 複数の資格取得強化ゼミの顧問を担当することができる。

2.学生
  学生は,複数の資格取得強化ゼミに参加することができる。

 

設問 1
 図 1 と表から,“学生”エンティティ,“科目”エンティティ,“強化ゼミ”エ
ンティティを抽出し,エンティティ間の関係を E-R 図で整理することにした。
凡例に従って,次の図 2 中にリレーションシップを追加し,E-R 図を完成せよ。


 

設問 2
 図 1 と表から,データ項目を抽出し,正規化された関係表を作成することに
した。

(1)図 1 のデータ項目を整理し,【  a  】【  d  】に適切な字句を入
 れ,正規化された関係表を完成させよ。また,主キーとなる項目に下線を引
 いて示せ。

科目表(科目コード【  a  】,教職員番号)
学部学科表(学部学科コード【  b  】)
受講状況表(【  c  】【  d  】,点数,出席日数)
学生表(学籍番号,学部学科コード,学生名)

(2)表のデータ項目を整理し,【  e  】【  h  】に適切な字句を入れ,
 正規化された関係表を完成させよ。また,主キーとなる項目に下線を引いて
 示せ。

学生表(学籍番号,学部学科コード,学生名,ふりがな,【  e  】)
強化ゼミ表(強化ゼミコード,強化ゼミ名称,【  f  】,活動場所)
教職員表(教職員番号【  g  】)
参加強化ゼミ表(【  h  】,強化ゼミコード,入会年月日,退会年月日)

設問 3
 設問 2 で整理した関係表から,新システムの E-R 図を作成する。図 2 の凡例
に従って,次の図 3 中にリレーションシップを迫加し,新システムの E-R 図を
完成させよ。


 

設問 4
 強化ゼミ参加者名簿を作成するためのカーソル“強化ゼミ参加者名簿”を定
義する。次の SQL 文中の【  i  】【  n  】に入れる適切な字句を答え
よ。

【    i    】
FOR SELECT 強化ゼミ表.強化ゼミコード, 強化ゼミ表.強化ゼミ名称,
      教職員表.教職員番号, 教職員表.教職員名, 強化ゼミ表.活動場所,
      学生表.学生名,学生表.学籍番号,学生表.連絡先電話番号,
      参加強化ゼミ表.入会年月日, 学生表.ふりがな
  FROM 強化ゼミ表, 参加強化ゼミ表, 学生表, 教職員表
  WHERE【      j      】
     AND【      k      】
     AND【      l      】
     AND【      m      】
  ORDER BY【    n    】

設問 5
 索引に関する次の記述中の【  o  】【  q  】に入れる適切な字句を
答えよ。

 複数の列に対してまとめて付与する索引のことを,連結索引,又は複合索引
という。連結索引は,索引付けの対象になる列の名称を列挙して定義する。
 B 木構成による連結索引では,索引を構成する各列の値を定義中で列挙した順
に連結したものに対して,索引が付与される。そして,SQL 文の【  o  】
内に索引定義中で最初に挙げた列名が記述されると,連結索引が実際に使用さ
れる。
 例えば,設問 2 の(1)の“学生表”に関して,学籍番号を指定して特定の学生
を検索する場合よりも,ある学部学科に属する学生を検索する場合の方が多い
とする。この場合に連結索引を使って検索の効率化を図るには,
   (【  p  】【  q  】)
よりも,
   (【  q  】,【  p  】)
の順で列を指定して連結索引を定義すると効果的である。
 このように,連結索引を使用する際には,アクセスパスを事前によく検討
しておく必要がある。連結索引に限らず,事前の検討がおろそかなままに索
引の定義を行ってしまうと,検索時の処理効率がかえって悪化してしまうこ
とがある。

------------------------------------------------------------------------