基本情報技術者 2010年 春期 午後 問05
配達サービス管理システムに関する次の記述を読んで、設問1〜3に答えよ。
家具を販売する小売業のF社では、顧客が購入した家具を、顧客が希望した日に配達するサービスを実施している。F社では、この配達サービスについて、家具の配達を受け付けてから配達が完了するまでの状況を管理する、配達サービス管理システム(以下、管理システムという)を構築することになった。
〔配達サービスの仕組み〕
(1) 配達サービスとは、F社で家具を購入した顧客に対するサービスであり、購入した家具を、指定した配達先に、希望した日に配達する。
(2) F社では家具それぞれに固有の家具番号を付与している。
(3) 配達サービスは、F社の配達窓口で受付登録をすることによって開始される。配達サービスを受けたい顧客は、F社の配達窓口担当者(以下、担当者という)に配達を依頼する。
(4) 担当者は、受付登録時に、配達先の郵便番号、住所、氏名及び家具番号を、依頼受付画面から管理システムに登録する。1回の受付登録では、配達先は1か所に限られ、家具は10個まで登録できる。受付登録後、画面には、その配達先住所に配達可能な配達業者(以下、業者という)の社名と受付登録した日(以下、受付日という)の翌々日以降で配達可能な日付(以下、配達可能日という)の組合せが表示される。
(5) 担当者は、配達可能日を顧客に伝える。顧客は、その中から配達を希望する日付(以下、配達予定日という)を指定する。
(6) 担当者は指定された配達予定日を、依頼受付画面から管理システムに登録する。登録が完了すると、依頼受付画面に予約番号が表示される。担当者は、予約番号を顧客に伝え、受付が完了する。
(7) 担当者は、配達予定日の前日に、配達先情報や配達家具の情報を記載した配達依頼リストを、管理システムから出力する。
(8) 業者は、配達予定日の前日に、配達すべき家具と配達依頼リストを担当者から受け取る。配達予定日に配達先住所に家具を届け、配達完了を担当者に連絡する。
(9) 配達完了の連絡を受けた担当者は、配達完了日を管理システムに登録する。
配達サービスにおける情報の流れを、図1に示す。
〔管理システムの概要〕
(1) 管理システムは、端末とサーバで構成される。端末には担当者が用いる画面インタフェースを構築し、サーバでは、配達に関連する情報を、受付ファイル、業者ファイル、郵便番号別業者ファイル及び予約ファイルとして保持する。
(2) 受付ファイルには、顧客から配達の依頼があったときに付与される一意の受付番号とともに、住所など配達に必要な顧客の情報を登録する。受付ファイルのレコード様式を、図2に示す。
(3) 業者ファイルには、業者コード、業者名及び業者連絡先が登録されている。業者ファイルのレコード様式を、図3に示す。

(4) 郵便番号別業者ファイルには、ある配達可能日にその郵便番号が示す地域に家具を配達可能な業者と、その業者がその日に配達可能な件数の上限値を登録する。郵便番号別業者ファイルのレコード様式を、図4に示す。ここで、一つの業者は一つの地域だけを対象とする。

(5) 予約ファイルには、配達予定日が確定したときに付与される一意の予約番号とともに、業者コード、配達予定日及び受付番号を登録する。配達完了日には、配達完了までは空白が格納されており、配達が完了するとその日付が格納される。予約ファイルのレコード様式を、図5に示す。

(6) 配達依頼リストは、業者が家具を配達する際に用いるリストであり、業者名、顧客への配達予定日、その業者の配達先件数、配達先情報、予約番号、家具の個数及び家具番号が記載されている。顧客への配達予定日の前日に、業者コード順に管理システムから出力される。配達依頼リストの例を、図6に示す。

設問1:
問題文を見る 次の記述中のに入れる正しい答えを、解答群の中から選べ。
依頼を受けた配達先住所に対して、その配達先住所へ配達可能な業者と配達可能日の組合せを表示する機能を考える。
まず、郵便番号別業者ファイルから、受付時に入力した配達先郵便番号と一致し、かつ、配達可能日がaレコードを取り出す。
次に、郵便番号別業者ファイルから取り出したレコード1件ごとに予約ファイルを検索する。検索の条件は、業者コードが等しく、かつ、予約ファイルの配達予定日がbことである。この検索によって、その業者で、配達予定日が確定している配達先の件数が判明する。この確定している配達先の件数が、配達先件数の上限値に達していなければ、その業者とその日付は配達可能と判定でき、表示の対象とする。
解答群
ア:受付日の翌々日以降となる
イ:受付日以降となる
ウ:受付日と同じ
エ:受付日以前となる
オ:配達可能日以降となる
カ:配達可能日と同じ
キ:配達可能日と同じでない
ク:配達可能日以前となる
ケ:配達予定日と同じ
コ:配達予定日と同じでない
模範解答
a:ア、b:カ
解説
解答の導き方
この設問では、受付時に表示する「配達可能な業者と配達可能日」の組合せを、どの条件で選ぶかを考えます。
まず、郵便番号別業者ファイルには、郵便番号ごとに「配達可能日」「業者コード」「配達先件数の上限値」が登録されています。レコード(ファイルに保存されている1件分の情報)を取り出すときは、受付時に入力された郵便番号に加えて、日付の条件も確認します。
本文には、表示する配達可能日は「受付日の翌々日以降」とあります。したがって、郵便番号が一致するレコードのうち、配達可能日が受付日の翌々日以降のものを取り出します。よって、aには「受付日の翌々日以降となる」が入ります。
次に、取り出したレコードごとに、その業者がその日に何件の配達をすでに受け付けているかを調べます。本文では、予約ファイルを「業者コードが等しく」なる条件で検索するとしています。さらに、調べたいのは、候補となる配達可能日にその業者が何件の予約を受けているかです。そのため、予約ファイルの配達予定日は、郵便番号別業者ファイルの配達可能日と同じでなければなりません。
日付が異なる予約まで数えると、別の日の予約が混ざり、その日の配達件数を正しく判断できません。したがって、bには「配達可能日と同じ」が入ります。
この条件で見つかった予約の件数を、郵便番号別業者ファイルに登録された配達先件数の上限値と比べます。予約件数が上限値に達していなければ、まだ受付できる余地があるため、その業者と日付を表示の対象にします。
誤りやすいポイント
- aで「受付日以降」を選ぶと、受付日の翌日も含まれる可能性があります。本文の条件は「受付日の翌々日以降」です。
- bでは、業者コードだけでなく日付も合わせて検索します。日付が異なる予約を数えても、候補日の配達件数は分かりません。
- 配達先件数が上限値と同じ場合は、すでに上限に達しています。「上限値に達していなければ」とは、予約件数が上限値より少ない場合です。
FAQ
Q: 「翌々日以降」には、受付日の翌々日も含まれますか。
A: はい、含まれます。「以降」は、その日付と、それより後の日付を指します。
A: はい、含まれます。「以降」は、その日付と、それより後の日付を指します。
Q: なぜ予約ファイルの配達予定日を、配達可能日と照合するのですか。
A: 配達可能かどうかを判断したいのは、その候補日にその業者が受けられる件数です。同じ日付の予約だけを数える必要があります。
A: 配達可能かどうかを判断したいのは、その候補日にその業者が受けられる件数です。同じ日付の予約だけを数える必要があります。
Q: 上限値と同じ件数の予約がある場合、表示対象になりますか。
A: なりません。その場合は配達先件数の上限値に達しているため、追加で受け付ける余地がありません。
A: なりません。その場合は配達先件数の上限値に達しているため、追加で受け付ける余地がありません。
関連キーワード: レコード、条件検索、複合条件、件数上限、予約管理
設問2:
問題文を見る 図7は、配達依頼リストを作成する処理の流れである。図7の処理Fで作成する集計結果ファイルのレコード様式を、図8に示す。次の記述中のに入れる正しい答えを、解答群の中から選べ。


処理B:ファイルAから、配達予定日が翌日のデータを取り出す。
処理C:処理Bの処理結果を、dで並べ替える。
処理D:処理Cの処理結果とcの内容を、dをキーとして突き合わせる。一致したcのレコード内容と合わせて出力する。
処理E:処理Dの処理結果を、業者コードで並べ替え、中間ファイルを作成する。
処理F:処理Eの処理結果である中間ファイルの、業者コードごとのeを数え、その値を配達先件数に入れ、集計結果ファイルを作成する。
処理G:中間ファイル、集計結果ファイル及び業者ファイルから、配達依頼リストを作成する。
cに関する解答群
ア:受付ファイル
イ:郵便番号別業者ファイル
ウ:予約ファイル
dに関する解答群
ア:受付番号
イ:受付日
ウ:配達可能日
エ:配達予定日
オ:郵便番号
カ:予約番号
eに関する解答群
ア:家具の個数
イ:配達先件数の上限値
ウ:レコード件数
模範解答
c:ア、d:ア、e:ウ
解説
解答の導き方
この設問では、図7の処理の流れをたどり、処理に使うファイルや項目を判断します。レコードとは、ファイルに記録された1件分のデータです。
-
ファイルAに当てはまるファイルを考えます。
処理Bでは「配達予定日が翌日のデータ」を取り出します。図5の予約ファイルには配達予定日があるため、処理Bで対象になるのは予約ファイルのデータです。 -
処理Dで、どのファイルを突き合わせるか考えます。
配達依頼リストには、配達先の住所や氏名、家具番号が必要です。一方、予約ファイルには、業者コードや配達予定日はありますが、配達先や家具の情報はありません。
図2の受付ファイルには、配達先の住所や氏名、家具の個数や家具番号が登録されています。そのため、処理Dで予約ファイルのデータと合わせるファイルは受付ファイルです。したがって、cには受付ファイルが入ります。 -
2つのファイルを何の項目で対応させるか考えます。
予約ファイルには受付番号があり、受付ファイルにも同じく受付番号があります。受付番号を照合の基準となる項目(キー)にすれば、予約の情報と受付の情報を対応させられます。
したがって、処理Cで並べ替える項目も、処理Dで突き合わせる項目も受付番号です。dには受付番号が入ります。 -
処理Fで何を数えるか考えます。
処理Eでは、業者コードごとにまとまるように中間ファイルを並べ替えます。処理Fは、その中間ファイルにある業者ごとのデータを数え、図8の「配達先件数」に入れます。
受付登録は1回につき配達先が1か所なので、配達先の数は、その業者に対応するレコードの件数で分かります。家具の個数を数えると、1か所に複数の家具を届ける場合に配達先件数と一致しません。また、配達先件数の上限値は、配達できる件数の上限であり、実際の配達先数ではありません。
したがって、eにはレコード件数が入ります。
誤りやすいポイント
-
予約番号と受付番号を混同する
予約番号は予約ファイルにある番号です。受付ファイルと予約ファイルを対応させるために使うのは、両方に記録されている受付番号です。 -
配達先件数を家具の個数と取り違える
1つの配達先に複数の家具を届けることがあります。配達先の数を求めるときは、家具の個数ではなく、業者ごとのレコード件数を数えます。 -
上限値を実際の件数と取り違える
配達先件数の上限値は、業者がその日に配達できる件数の上限です。処理Fで求めるのは、実際に予定されている配達先の件数です。
FAQ
Q: 受付番号ではなく、郵便番号で受付ファイルと予約ファイルを対応させられませんか?
A: 郵便番号は受付ファイルにはありますが、予約ファイルにはありません。2つのファイルを突き合わせるには、両方に記録されている受付番号を使います。
A: 郵便番号は受付ファイルにはありますが、予約ファイルにはありません。2つのファイルを突き合わせるには、両方に記録されている受付番号を使います。
Q: 1つの受付登録で家具を複数個登録できるのに、なぜレコード件数が配達先件数になるのですか?
A: 家具の個数と配達先の数は別です。1回の受付登録で配達先は1か所に限られるため、対象となる受付のレコードを1件として数えれば、配達先の数になります。
A: 家具の個数と配達先の数は別です。1回の受付登録で配達先は1か所に限られるため、対象となる受付のレコードを1件として数えれば、配達先の数になります。
Q: 処理Eで業者コード順に並べ替えるのはなぜですか?
A: 同じ業者のデータを連続して並べるためです。そうすると、処理Fで業者ごとのレコード件数を数えやすくなります。
A: 同じ業者のデータを連続して並べるためです。そうすると、処理Fで業者ごとのレコード件数を数えやすくなります。
関連キーワード: レコード、照合キー、ソート、ファイル結合、集計
設問3:
問題文を見る 担当者は、業者から配達完了の連絡を受けて配達完了日を登録する。配達完了の登録に必要な“配達完了日”以外の項目として正しい答えを、解答群の中から選べ。
解答群
ア:受付日、郵便番号
イ:業者コード、郵便番号
ウ:業者コード、郵便番号、配達可能日
エ:配達予定日
オ:予約番号
模範解答
オ
解説
解答の導き方
配達完了日を登録するときは、まず、どの配達予約の記録を更新するのかを特定する必要があります。配達完了日は記録に書き込む項目であり、それとは別に、更新対象を探すための項目が必要です。
本文には、予約ファイルには、配達予定日が確定したときに「一意の予約番号」が付与されるとあります。予約番号は、予約ファイルの中から該当する配達予約のレコード(ファイルに保存されるひとまとまりのデータ)を特定するために使えます。
また、配達依頼リストにも予約番号が記載されています。担当者はこの番号を手掛かりに、配達完了の連絡があった予約を予約ファイルから探し、そのレコードの配達完了日に日付を登録できます。
配達予定日だけでは、同じ日に複数の配達予約がある場合に、どの予約の記録を更新するのか特定できません。郵便番号なども、予約ファイルのレコードを一意に特定する番号ではありません。したがって、配達完了日以外に必要な項目は、予約を一意に特定できる予約番号です。
誤りやすいポイント
- 配達予定日を、予約を特定する番号と考えてしまうことがあります。同じ配達予定日の予約が複数ある可能性があるため、日付だけでは特定できません。
- 郵便番号や受付日など、受付時に使う情報と、予約ファイルのレコードを特定する情報を混同しないようにしましょう。
- 配達完了日と予約番号の役割は異なります。配達完了日は更新する値、予約番号は更新対象を探すための値です。
FAQ
Q: 受付番号ではなく、予約番号を使うのはなぜですか?
A: 受付番号は配達の依頼を受け付けたときに付与され、予約番号は配達予定日が確定したときに付与されます。この設問では、確定した配達予約の記録を予約ファイルから特定するため、予約番号が適切です。
A: 受付番号は配達の依頼を受け付けたときに付与され、予約番号は配達予定日が確定したときに付与されます。この設問では、確定した配達予約の記録を予約ファイルから特定するため、予約番号が適切です。
Q: 配達予定日を使って予約ファイルを探すことはできませんか?
A: 配達予定日を条件の一つにすることはできますが、同じ日に複数の予約があれば、対象を一つに決められません。予約番号なら、その予約を一意に特定できます。
A: 配達予定日を条件の一つにすることはできますが、同じ日に複数の予約があれば、対象を一つに決められません。予約番号なら、その予約を一意に特定できます。
Q: 配達完了日を登録するとき、予約番号は何の役割をしますか?
A: 予約ファイルの中から対象のレコードを探す役割をします。レコードを見つけた後、その配達完了日の欄に日付を登録します。
A: 予約ファイルの中から対象のレコードを探す役割をします。レコードを見つけた後、その配達完了日の欄に日付を登録します。
関連キーワード: 一意識別子、レコード、ファイル、データ更新



