平成15年度 春期
             ソフトウェア開発技術者
               午後2 問題

問1
 会議室予約システムの設計に関する次の記述を読んで,設問1〜6に答えよ。

 K君は,情報サービス会社に勤務するソフトウェア開発技術者で,市民会館の会議
室予約システム(以下,本システムという)の開発を担当した。
 本システムが稼働する前には,市の受付係が図1〜3に示すような,会議室予約台
帳,予約簿,会議室料金表を用いて,次の手順で会議室予約及び関連する業務を行っ
ていた。

〔市民会館の会議室予約受付業務の概要〕

(1)会議室の使用を希望する人(申込者)は,市の予約受付窓口に電話をするか,又
 は出向いて,予約の申込みをする。
(2)受付係は,申込者から使用予定日,使用時間帯(午前(9時〜12時),午後(13
 時〜17時),夜間(18時〜22時)の3種類),会議室のタイプ(4種類)を聞き,
 会議室予約台帳を参照して空きの有無を確認する。受付係は,申込者の希望にそう
 会議室に空きがあれば使用料金を申込者に伝え,予約するかどうかを確認する。
(3)申込者が予約を承諾した場合,受付係は予約番号(予約ごとに一意),氏名,住所,
 電話番号,会議室番号,使用予定日,使用時間帯を予約簿に記入するとともに,会議
 室予約台帳へ予約番号を記入し予約登録を行う。
  なお,1件の予約は,1日限り,1室限りとする。使用時間帯については,複数指
 定できる。
(4)受付係のそのほかの業務として,申込者からの予約確認への対応,予約取消への
 対応がある。予約取消を受け付けた場合,会議室予約台帳を更新して会議室を空き
 状態にするとともに,その予約に関する情報を予約簿から削除する。予約の変更は,
 予約取消後,新たに予約登録を行うことで対応する。
 
 

会議室番号: R201 会議室タイプ: B
  \ 使用時間帯
月日 \
午前
午後
夜間
4/9(水)
 
 
1234567
4/10(木)
 
1234551
 
4/11(金)
 
 
1234533
4/12(土)
1234501
1234511
1234501
4/13(日)
 
 
1234535
4/14(月)
1234561
1234561
1234561
4/15(火)
 
1234570
1234570
図1 会議室予約台帳の例

 
予約番号
氏名
住所
電話番号
会議室番号
使用予定日
使用時間帯
1234567
情報花子
 
 
R201
4/9
夜間
1234568
試験宣太
 
 
R123
4/3
午前午後,夜間
1234569
五月晴代
 
 
R221
4/1
夜間
1234570
北風寒太
 
 
R201
4/15
午後,夜間
図2 予約簿の例

                       単位 円
      \ 使用時間帯
会議室タイプ \
午前
午後
夜間
5,000
7,500
10,000
2,000
3,000
4,000
1,000
1,500
2,000
300
450
600
図3 会議室料金表の例

 K君は,データベース設計及び画面設計に当たって,システム稼働後も予約受付業
務の手順をできる限り変更しないように配慮した。
 設計上の工夫として時間帯テーブルを設け,使用時間帯区分コードが“1”のときは
使用時間帯が“午前”を,同様に“2”のときは“午後”を,“3”のときは“夜間”を
意味するようにした。図4にデータベースのテーブル構成,図5に画面遷移図,図6
〜10に予約受付及び予約確認に関する画面を示す。また,本システムでは,図10の
会議室予約状況表示画面を出力するために,ビュー表を定義し使用することにした。
 K君は,会議室予約受付業務における各機能を構造的に表現するために図11に示す
機能構造図を作成した。
 
 
会議室(会議室番号,会議室タイプ)
予約簿(予約番号,使用時間帯区分コード,氏名,住所,電話番号,会議室番号,使用予定日)
会議室料金表(会議室タイプ,使用時間帯区分コード,料金)
時間帯(使用時間帯区分コード,使用時間帯)
図4 データベースのテーブル構成

設問1
 図4のデータベースのテーブル構成を基に,表1のデータベースの設定表を作
成した。ここで,表1中のYは,その項目が主キー,外部キー,一意キー,
NULL 許可のそれぞれに該当する場合,Nは該当しない場合である。表1中の
【    】〜【    】に入れるYとNの適切な組合せを答えよ。
 なお,表1の作成においては,次の条件も取り入れて設定することとする。

(条件)
・新設の会議室で会議室タイプが決まっていない場合,そのような会議室もデー
 タベースに格納する。ただし,予約の対象とはしない。
・料金が決まっていない会議室タイプもデータベースに格納する。ただし,予約
 の対象とはしない。
・電話番号が分からない申込者も予約可能とする。


 

設問2
 図10の会議室予約状況表示画面を出力するための,使用予定日,会議室番号,
使用時間帯,予約番号,氏名,住所,電話番号からなるビュー表“会議室予約状
況”を定義する SQL 文を記述せよ。

設問3
 システムの稼働後に,次のような変更要求が発生した。
 
 すべての予約者について,初回の予約登録時に利用者番号を与え,次回の
予約からは利用者番号を入力すれば,予約者の氏名,住所,電話番号は入力
しなくても済むようにしてほしい。
 氏名,住所,電話番号の変更があった場合は,予約登録時に変更できるよ
うにしてほしい。

 この変更に対応するため,利用者台帳テーブルを新設し,予約登録画面に入力
項目として利用者番号を追加することにした。
 変更後のデータベースのすべてのテーブル構成を図4にならって示せ。
 なお,主キーには下線を付けて示せ。

設問4
 設問3の変更後のシステムにおいて,それぞれのテーブルがどの機能によっ
てどのようにアクセスされるかを明らかにするため,表2のテーブル対機能の
関連マトリックスを作成した。表2中の【    】〜【    】に入れる適
切な字句を答えよ。
 アクセスの種類と表記は,次のとおりである。解答欄にはアクセスの種類
(C,R,U,D,−)又はテーブル名を記入せよ。

・C (生成:Create)
・R (参照:Retrieve)
・U (更新:Update)
・D (削除:De1ete)
・− (アクセスしない)

アクセスの種類が複数ある場合は,“C,R,U”のように記入する。


設問5
 設問3の変更に対応するため,K君は,本システムのデータベースに対して利
用者台帳テーブルを追加した。利用者台帳テーブルの追加が正しく行われたこと
を確認するため,画面から SQL コマンドを投入してテストを行うことにした。
 (1)〜(3)のそれぞれの操作を行う SQL 文を記述せよ。(1)の操作を行う SQL 文
は,利用者台帳テーブルの列名指定を省略しないで記述せよ。

(1) 利用者台帳テーブルに,'B 市 D 町 1-2-3'に住む,'凸山凹男'さんを新規登録
  する。電話番号は'049-912-9646',利用者番号は 98765 とする。
(2) 利用者番号が 98765 の'凸山凹男'さんの住所を,'B 市 E 町 4-5-6 'に変更す
  る。
(3) 利用者番号が 98765 の'凸山凹男'さんの情報を,利用者台帳テーブルから削
  除する。

設問6
 K君は,利用者台帳テーブルの追加が正しく行われたことを確認した後,予約
登録画面に利用者番号欄を追加し関連するプログラムの修正を行った。利用者台
帳テーブルの追加による修正が,会議室予約状況表示画面やそれに関連するプロ
グラムに波及しなかった理由を40字以内で述べよ。

-----------------------------------------------------------------------
解答例(若林研二氏)