平成29年秋期試験午後問題 問5

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】

問5 ソフトウェア設計

買上げ・入金管理システムを用いた月次集計処理に関する次の記述を読んで,設問1,2に答えよ。

 E社は,10年以上の取引実績がある得意先とは,双方が合意した上で,得意先の買上げに対する支払を,1回の入金で行うことも,複数回の入金で行うことも許容した取引を行っている。得意先は,入金を,買上げ前にも,買上げ後にも行うことができる。E社の担当者は,得意先の買上げ及び入金が発生するたびに,買上げ・入金管理システムに記録している。毎月の最終営業日の取引終了後に,買上げ・入金管理システムを用いて月次集計処理を行っている。月次集計処理の概要は次のとおりである。

〔月次集計処理の概要〕
 月次集計処理は月間買上げ額確定処理と消込み処理から成り,月間買上げ額確定処理の終了後に消込み処理を行う。
 月間買上げ額確定処理は,得意先ごとに当月1か月分の買上げ金額を合計して,当月の買上げの合計額(以下,月間買上げ額という)を確定させる処理である。
 消込み処理は,充当が完了していない月間買上げ額に対して,得意先からの入金を充当していく処理である。
 E社の得意先との取引では,過去の月間買上げ額に対する充当が完了していない場合や,逆に得意先から入金された金額が,全ては月間買上げ額に充当されずに残っている場合がある。したがって,消込み処理では,充当が完了していない月間買上げ額に対して,買上げ年月の古い順に,まだ入金額の全てを充当しきれていない入金を,入金日が古い順に充当していく。

〔買上げ・入金管理システムのデータベース〕
 買上げ・入金管理システムでは,関係データベースの表で必要なデータを管理している。関係データベースのE-R図を図1に,各表の説明を表1に,主な表の属性の説明を表2に示す。
pm05_1.gif

設問1

図1中の に入れる属性の組みとして適切な答えを,解答群の中から選べ。
a に関する解答群
  • 消込番号
    月間買上げ番号
  • 消込番号
    入金番号
  • 得意先ID
    消込番号
  • 得意先ID
    月間買上げ番号
  • 得意先ID
    入金番号
  • 入金番号
    月間買上げ番号
解答選択欄
  • a:
  • a=

解説

aについて
表1「各表の説明」では"消込"表を「ある入金額からある月間買上げに対して,充当した金額(消込充当額)の情報」と説明しています。つまり"消込"表の1つのレコードには、特定の入金および特定の月間買上げを示す情報を持たせなければなりません。

関係データベースのE-R図において、入金情報は"入金"エンティティで、月間買上げ情報は"月間買上げ"エンティティで管理されていて、"消込"エンティティは2つのエンティティとの関連を持っています。関係データベースでは共通の属性を持たせることで表同士を関連付けるので、"消込"エンティティには、"入金"エンティティの主キーである「入金番号」と、"月間買上げ"表の主キーである「月間買上げ番号」をキーとして持たせることになります。

a=カ:入金番号月間買上げ番号

設問2

図2は,消込み処理の流れ図である。次の記述及び図2中の に入れる適切な答えを,解答群の中から選べ。

 図2中のαの部分では,入金表からbの条件を満たすレコードを,得意先IDの昇順,入金日の昇順に整列して取得する。消込み①の繰返し処理では,取得したレコードを順に処理する。βの部分では,消込み①の繰返しで処理中のレコードの得意先IDと同じ得意先IDをもつ月間買上げ表のレコードのうち,cの条件を満たすレコードを,dに整列して取得する。消込み②の繰返し処理では,取得したレコードを順に処理する。
pm05_2.gif
b に関する解答群
  • 金額=充当額
  • 入金額>充当額
  • 入金額<充当額
  • 充当額=0
c に関する解答群
  • 月間買上げ額>0
  • 月間買上げ額>消込額
  • 消込額=0
  • 消込額>0
  • 消込額=月間買上げ額
  • 消込額>月間買上げ額
d に関する解答群
  • 買上げ年月の降順
  • 買上げ年月の昇順
  • 消込額の降順
  • 月間買上げ額の昇順
  • 得意先IDの昇順
e,f に関する解答群
  • [月間買上げ].月間買上げ額+[月間買上げ].消込額
  • [月間買上げ].月間買上げ額-[月間買上げ].消込額
  • [月間買上げ].消込額一[月間買上].月間買上げ額
  • [入金].入金額+[入金].充当額
  • [入金].入金額-[入金].充当額
  • [入金].充当額-[入金].入金額
解答選択欄
  • b:
  • c:
  • d:
  • e:
  • f:
  • b=
  • c=
  • d=
  • e=
  • f=

解説

bについて〕
問題文では、「消込み処理は,充当が完了していない月間買上げに対して,得意先からの入金を充当していく処理である」と説明されています。
消込み処理では、入金額の全てを充当しきれていない入金を月間買上げ額に充当していくことになるので、まず"入金"表から残額のある入金情報を抽出しなければなりません。"入金"表では、入金額のうち充当済の金額を充当額として記録しています。つまり、充当額が入金額未満であることを条件にすれば、未充当金額がある消込み処理の対象レコードを抽出できます。したがってbには「入金額>充当額」が入ります。

b=イ:入金額>充当額

cについて〕
消込み処理は、充当が完了していない月間買上げ額に対して行われます。"月間買上げ"表では、月間買上げ額のうち充当済の金額を消込額として記録してるので、消込額が月間買上げ額未満であることを条件にすれば、"月間買上げ"表から充当が完了していないレコードを抽出できます。したがってcには「月間買上げ額>消込額」が入ります。

c=イ:月間買上げ額>消込額

dについて〕
消込み処理では、買上げ年月日の古い順に、まだ入金額の全てを充当しきれていない入金を古い順に充当していくので、cの条件で抽出された充当の完了していないレコード群を買上げ年月日の古い順に整列させておく必要があります。年月日のデータでは、日付が古いほど値が小さくなるので、古い順にするには買上げ年月の昇順(値の小さい順)で整列させることになります。

d:イ:買上げ年月の昇順

efについて〕
変数1>変数2がYesの時に実行される以下の処理に着目して考えてみます。
pm05_3.gif
まず①では消込額に月間買上げ額を代入しています。消込額=月間買上げ額になるということは充当が完了したことを意味します。
③では充当額に変数2の値を加算、⑤では変数2の値を消込充当額として登録しているので、変数2は現在の処理において[月間買上げ]に充当された額であるとわかります。このとき充当される額は[月間買上げ]の月間買上げ額のうち充当が完了していない分、すなわち「月間買上げ額-消込額」に相当します。したがってfには[月間買上げ].月間買上げ額-[月間買上げ].消込額が入ります。
そして⑥では、変数1から充当額(変数2)を引く処理が行われます。この処理は充当完了の度に行われ、充当額を引いていることから、[入金]の未充当額の値を更新するための処理とわかります。つまり変数1は[入金]の未充当額を表す変数です。入金の未充当額は[入金]の入金額のうち充当しきれていない分、すなわち「入金額-充当額」に相当します。したがってeには[入金].入金額-[入金].充当額が入ります。

e=オ:[入金].入金額-[入金].充当額
 f=イ:[月間買上げ].月間買上げ額-[月間買上げ].消込額

Pagetop