第6号 通勤列車で勉強する,二種午後 2000/10/09 

末広ページへ このコーナの目次

Ver 0.01


トイレに行くとき大変

すー:今日の問題は,部屋ごとにガードが入りますよ。

ジャン:これって,急いでトイレにいくとき大変ですよね。

すー:小さい子供を連れていて,ママ,おしっこっていうときに,途中で漏らしちゃいそう。

ジャン:私も昔,こういう鍵ばかりのビルに入ったことがあります。壁ばかりで,窓も少ないですよ。

すー:なんか息苦しいですね。

ジャン:たぶん,そのフロアーに軍事関係の仕事とか,新製品の開発とかしているとろがあったかも。

すー:先生は,なんでそんなところに行ったのですか?

ジャン:私は,ただ,開発の標準化の件で,ある会社の設計書の標準化の仕事をしないかと言われていきました。会議中にトイレに行きたいときも,自分で鍵のカードを持っていないので,必ず,担当の人が付いて来てくれました。なんか,恥ずかしかったですね。

すー:セキュリティが厳しいと,トイレも恥ずかしいということですね。

ジャン:女性だと,我慢して漏らしたりするかも。

すー:げー。

ジャン:じゃあ,トイレに行くのも一苦労のセキュリティばりばりの部屋の問題やりましょう。

すー:はい。


問題 第2種午後平成12年春問15

問15 内部設計に関する次の記述を読んで,設問 1 〜 4 に答えよ。

 M 社では,図 1 に示す事務所において入退管理を行うことになり,IC カードを入館証として使用する入退管理システムを構築することになった。

 現在,データ記録サブシステムと移動状況表示サブシステムの設計を行っている。


[データ記録サブシステムの説明]

 次のように来訪者の入館から退館までを関係データベースに記録する。

 図2に,このサブシステムの構成を示す。

 

(1) 受付は,来訪者に発行する IC カードを読み書き装置 00 に入れる。
(2) サブシステムは,IC カード固有の入館証番号を読み,サブシステムの時計から受付日時を得て,IC カードに書き込む。このサブシステムでは,同一の IC カードを繰返し使うので,入館証番号と受付日時によって,発生データを区別する。
(3) 受付は,来訪者から必要事項(氏名,会社名,住所,電話番号,目的,訪問先部署,訪問相手)を聞き取り,サブシステムに入力する。
(4) サブシステムは,(3)で入力された内容,入館証番号及び受付日時を,“来訪者表”,“訪問先表”及び“記録表”に書き込む。
(5) 来訪者は,発行された IC カードを携帯して,訪問先部署のある部屋へ向かう。
(6) 館内の各部屋の出入口には,読取り装置が設置してある。サブシステムは,来訪者が出入口を通過した時に IC カードに書かれた情報を読み,サブシステムの時計から日時を得て,“記録表”にデータを書き込む。
(7) 来訪者は,退館時,受付に IC カードを返却する。受付は,返却された IC カードを読み書き装置 99 に入れる。
(8) サブシステムは,IC カードとサブシステムの時計からデータを得て,“記録表”にデータを書き込む。その後,IC カードの受付日時に空白を書き込むことによって,IC カードを初期状態に戻す。このとき,IC カード固有のデータである入館証番号はそのまま残る。


[データ記録サブシステムのデータと表の説明]

 IC カードのデータ様式と各表の様式を次に示す。
IC カードのデータ様式
入館証番号 受付日時

来訪者表の様式
入館証番号 受付日時 氏名 会社名
住所
電話番号

訪問先表の様式
入館証番号 受付日時 訪問先部署 訪問相手
目的

記録表の様式
通過日時 装置番号 入館証番号 受付番号

[移動状況表示サブシステムの説明]

 次のように,来訪者の入館から退館までの館内の移動記録を作成し,表示する。

 図3に移動状況表示サブシステムの構成を示し,図4に移動状況表示画面を示す。  

(1) 端末から入力された来訪者の氏名を読み取る。
(2) SQL 記述 1 を動的に生成し,実行する。
(3) 端末に,読み取った氏名に該当する来訪者の受付記録の一覧を表示する。
(4) 一覧から選択された受付記録の入館証番号と受付日時を読み取る。
(5) SQL 記述 2 を動的に生成し,実行する。
(6) SQL 記述 3 を動的に生成し,実行する。
(7) 上の(5),(6)で得られたデータを編集して移動状況画面を表示する。

来訪者の移動状況
入館証番号:PH007 氏名:山田 太郎 会社名:JITEC
住所:東京都港区虎ノ門1234 電話番号:03-8888-9999

日付 2000 04 01

時間 装置番号 設置位置
09:00 00 受付(入館)
09:05 14 部屋 H(北)
10:30 15 部屋 H(東)
10:50 17 部屋 J(南)
11:00 06 部屋 C(南)
12:00 05 部屋 C(北)
12:10 99 受付(退館)
図4 移動状況表示画面

[移動状況表示サブシステムの表の説明]

 移動状況表示サブシステムでは,図 4 の表示を行うため,データ記録サブシステムで使用する表のうちの二つと新たな一つの表を必要とする。

 移動状況表示サブシステムで新たに追加する表 Z の様式を次に示す。

表 Z の様式
【 a 】
【 b 】

注)【 a 】は主キーである
 

設問1 表 Z の様式中の【   】に入れる正しい答えを,解答群の中から選べ。

解答群
 
 ア 受付日時 イ 会社名 ウ 氏名
 エ 設置位置 オ 装置番号 カ 通過日時
 キ 入館証番号 ク 訪問相手 ケ 訪問先部署

設問2 図 3 中の表 X と表 Y の組合せとして正しい答えを,解答群の中から選べ。

解答群
 
 
表 X
表 Y
記録表
訪問先表
記録表
来訪者表
訪問先表
記録表
来訪者表
記録表

設問3 

図 3 中の SQL 記述中の,“記録表”に対する問合せの部分として正しい答えを,解答群の中から選べ。ここで,'XXX…X'は,移動状況表示サブシステムの説明の(4)で得られた入館証番号を表し,'YYY…Y'は,受付日時を表す。
解答群
 
SELECT 通過日時,装置番号,設置位置 FROM 記録表
 WHERE 記録表.入館証番号='XXX…X' AND 記録表.受付日時='YYY…Y'
 ORDER BY 通過日時 ASC
SELECT 通過日時,装置番号,入館証番号 FROM 記録表
 ORDER BY 入館証番号 ASC,受付日時 ASC 
SELECT 通過日時,装置番号 FROM 記録表
 WHERE 記録表.入館証番号='XXX…X' AND 記録表.受付日時='YYY…Y'
 ORDER BY 通過日時 ASC
SELECT 入館証番号,氏名,会社名,住所,電話番号 FROM 記録表
 WHERE 記録表.入館証番号='XXX…X' AND 記録表.受付日時='YYY…Y'

設問4 

各表と IC カードの受付日時及び通過日時の値を,それぞれの読み書き装置及び読取り装置の時計から値を得るように設計した場合,問題が発生する可能性がある。その理由として正しい記述を,解答群の中から選べ。
解答群
“記録表”の通過日時の値が,その装置番号の装置の時計から得られた値とは異なる。
移動状況の表示が,実際にその来訪者が移動した順番どおりに表示されない。
本来同一である,1 回の来訪に対する受付日時の値が,IC カード,“来訪者表”,“訪問先表”で異なる。
本来同一である,1 回の来訪に対する受付日時の値と“記録表”に書かれる受付を通過した通過日時とが異なる。

すー:先生,みんな一人一人,鍵を持たせて貰えるみたいですよ。トイレは一人で行けますね。

ジャン:廊下があるので,基本的に自由に通れるので,いいですよね。廊下にところどころ,しきりがあったりすると,トイレに行くのも大変ですけど。

すー:やはり,軍事関係でしょうか。

ジャン:セキュリティがうるさい,研究関係かな。

すー:情報処理試験センタの試験問題作成のフロアーだったりして。

ジャン:さて,どうでしょうか。問題文を読む限りでは,部屋の出入りチェックはしてますが,入室できるかどうかの権限チェックはしていませんね。

すー:試験問題用に省略しているんじゃないですか。

ジャン:そんな感じですね。問題に入りましょう。

設問1 表 Z の様式中の【   】に入れる正しい答えを,解答群の中から選べ。

解答群
 
 ア 受付日時 イ 会社名 ウ 氏名
 エ 設置位置 オ 装置番号 カ 通過日時
 キ 入館証番号 ク 訪問相手 ケ 訪問先部署

すー:表 Z を見ます。

表 Z の様式
【 a 】
【 b 】

注)【 a 】は主キーである

ジャン:新に追加ということなので,もとの表は

IC カードのデータ様式
入館証番号 受付日時

来訪者表の様式
入館証番号 受付日時 氏名 会社名
住所
電話番号

訪問先表の様式
入館証番号 受付日時 訪問先部署 訪問相手
目的

記録表の様式
通過日時 装置番号 入館証番号 受付番号

すー:これだけでは,解けませんね。問題を読む必要があります。

ジャン:この表を作成するときに表 Z がいるのですね。

来訪者の移動状況
入館証番号:PH007 氏名:山田 太郎 会社名:JITEC
住所:東京都港区虎ノ門1234 電話番号:03-8888-9999

日付 2000 04 01
時間 装置番号 設置位置
09:00 00 受付(入館)
09:05 14 部屋 H(北)
10:30 15 部屋 H(東)
10:50 17 部屋 J(南)
11:00 06 部屋 C(南)
12:00 05 部屋 C(北)
12:10 99 受付(退館)

図4 移動状況表示画面

すー:足らない項目を見ると,設置位置がないです。よって,a:オ;装置番号,b:エ;設置位置ですね。

ジャン:設問2に入りましょう

設問2 図 3 中の表 X と表 Y の組合せとして正しい答えを,解答群の中から選べ。

解答群
 
 
表 X
表 Y
記録表
訪問先表
記録表
来訪者表
訪問先表
記録表
来訪者表
記録表

すー:これは,図3をみる必要がありますね。

ジャン:表のXとYは,記録表,訪問先表,来訪者表のどれか,そして,設問1のZ表が利用されています。

来訪者表の様式
入館証番号 受付日時 氏名 会社名
住所
電話番号

訪問先表の様式
入館証番号 受付日時 訪問先部署 訪問相手
目的

記録表の様式
通過日時 装置番号 入館証番号 受付番号

すー:先生,移動状況表示画面を見ると,訪問先表は,必要ないようです。

ジャン:ということは,表のXとYは,

来訪者表の様式
入館証番号 受付日時 氏名 会社名
住所
電話番号

記録表の様式
通過日時 装置番号 入館証番号 受付番号

すー:では,いよいよ本文で考えますね。

[移動状況表示サブシステムの説明]

 次のように,来訪者の入館から退館までの館内の移動記録を作成し,表示する。

 図3に移動状況表示サブシステムの構成を示し,図4に移動状況表示画面を示す。  

(1) 端末から入力された来訪者の氏名を読み取る
(2) SQL 記述 1 を動的に生成し,実行する。
(3) 端末に,読み取った氏名に該当する来訪者の受付記録の一覧を表示する。
(4) 一覧から選択された受付記録の入館証番号と受付日時を読み取る。
(5) SQL 記述 2 を動的に生成し,実行する。
(6) SQL 記述 3 を動的に生成し,実行する。
(7) 上の(5),(6)で得られたデータを編集して移動状況画面を表示する。

ジャン:(1)に「端末から入力」とあります。この端末は,ICカードを入れる各部屋の装置ですか?

すー:先生,ICカードを読み取る装置は,本文では,「読み取り装置」といいます。

ジャン:では,このシステムは,大型機ですね。「斎藤」を端末に入れて,その名前の人の「受付記録の一覧表を表示します」。複数の斎藤さんがいるかも。そこで,(4)で,入館証番号が分かります。

すー:ということは,SQL1では,名前で検索をかけているということですね。表Xは,来訪者表ということが分かりました。答えは,エでした。

ジャン:では,次に行きましょう。

設問3 
図 3 中の SQL 記述中の,“記録表”に対する問合せの部分として正しい答えを,解答群の中から選べ。ここで,'XXX…X'は,移動状況表示サブシステムの説明の(4)で得られた入館証番号を表し,'YYY…Y'は,受付日時を表す。
解答群
 
SELECT 通過日時,装置番号,設置位置 FROM 記録表
 WHERE 記録表.入館証番号='XXX…X' AND 記録表.受付日時='YYY…Y'
 ORDER BY 通過日時 ASC
SELECT 通過日時,装置番号,入館証番号 FROM 記録表
 ORDER BY 入館証番号 ASC,受付日時 ASC 
SELECT 通過日時,装置番号 FROM 記録表
 WHERE 記録表.入館証番号='XXX…X' AND 記録表.受付日時='YYY…Y'
 ORDER BY 通過日時 ASC
SELECT 入館証番号,氏名,会社名,住所,電話番号 FROM 記録表
 WHERE 記録表.入館証番号='XXX…X' AND 記録表.受付日時='YYY…Y'

すー:いよいよ SQL ですね。

ジャン:問い合わせる対象は,記録表で,取り出したものは,移動状況表示画面に出します。

記録表の様式
通過日時 装置番号 入館証番号 受付番号

 

来訪者の移動状況
入館証番号:PH007 氏名:山田 太郎 会社名:JITEC
住所:東京都港区虎ノ門1234 電話番号:03-8888-9999

日付 2000 04 01

時間 装置番号 設置位置
09:00 00 受付(入館)
09:05 14 部屋 H(北)
10:30 15 部屋 H(東)
10:50 17 部屋 J(南)
11:00 06 部屋 C(南)
12:00 05 部屋 C(北)
12:10 99 受付(退館)

すー:エは,記録表から,氏名,会社名とか取り出そうとしてますので,だめですね。

ジャン:ASCって,あるでしょう。すーちゃん,これは?

すー:ascend(アセンド)で,昇順でしょう。

ジャン:ですね。入館証番号で,選択するので,WHERE 記録表.入館証番号='XXX…X'は,必須です。

すー:じゃ,ア,ウですね。アの装置位置は,記録表にはないので,答えはウですね。

ジャン:よく出来ました。

すー:先生,「ORDER BY 通過日時 ASC」と書くと,昇順に並べてくるのですね。ASC を省略するとどうなんでしょうか。

ジャン:どうでしょうか。たぶん,「ORDER BY 通過日時」だけでも同じですよ。

すー:先生の本で調べますね。ASCの場合は,省略可能と書いてありました。DESC の場合は必須ですね。

ジャン:じゃ,ついでに「ORDER BY 通過日時」自体を取ったら?

すー:表に記録してある順に出るのでは。時間に関してはばらばら。

ジャン:表に時間順に記録してあるかも。

すー:ひよっとしたら,うまくでるかも知れませんね。まあ,確実にするために「ORDER BY 通過日時」ですね。

ジャン:開発の標準化で,こういうときは,必ず,ASCもしくは,DESC を付けようというところかもしれませんね。

すー:では,次に行きますね。

設問4 
各表と IC カードの受付日時及び通過日時の値を,それぞれの読み書き装置及び読取り装置の時計から値を得るように設計した場合,問題が発生する可能性がある。その理由として正しい記述を,解答群の中から選べ。
解答群
“記録表”の通過日時の値が,その装置番号の装置の時計から得られた値とは異なる。
移動状況の表示が,実際にその来訪者が移動した順番どおりに表示されない。
本来同一である,1 回の来訪に対する受付日時の値が,IC カード,“来訪者表”,“訪問先表”で異なる。
本来同一である,1 回の来訪に対する受付日時の値と“記録表”に書かれる受付を通過した通過日時とが異なる。

ジャン:ホストの時間を使用せずに,ICカード読み取り装置の時間を使用したらどうなるかという設問ですね。

すー:それは,ICカード読み取り装置の時間がばらばらだったらどうするのっていうことでしょう。

ジャン:イとなりますね。

すー:設問4は,いきなり簡単でしたね。

ジャン:設問1が,頭が一番混乱した感じですね。では,宿題は,

  二種午後平成12年度春問16

です。急がしい人は,線だけでも引いて待っていて下さい。

すー:私のやり方が,ばれてしまったようですね。(^^);


その他

すー:先生,こんなコメントが届いています。

>今回の課題の「二種午後平成12年春問15」は設問4がわかりにくかったです。
>設問4は復習していて回答を覚えてしまったのですが、試験会場で考えると
>どれが解答なのかわかりづらいです。

ジャン:これって,すーちゃんがさきほど,「いきなり簡単ですね」の一言で片づけた問題でしたね。

すー:ごめなさい。

ジャン:自分がこのシステムを開発するとなると,読み取り装置の時間を使用するなら,読み取り装置の時間を合わせるのが大変だなと思いますよね。そういう感覚があると,簡単だったかも。

すー:他の解答群を読むと理解をするのに時間がかかりますよ。

ジャン:そうですね。

すー:この関係ない解答群,なかなか苦労して作ってますね。あて馬の解答群を楽しむのもおもしろそう。


(c)斎藤末広, 2000
この資料は2000年10月15日まで,許可した方のみ閲覧可能です。もし,なんらかの手段でこの資料を読まれて,有効であると判断された場合は,ご入金をお願いします。許可無く再利用,公開を禁止します。なお,情報処理技術者試験問題,サンプルプログラムはその限りではありません。

spage@yscon.co.jp
末広ページへ このコーナの目次