HOME»データベーススペシャリスト掲示板»H30 午後2問3 (2) lについて
投稿する

H30 午後2問3 (2) lについて [0366]

 Pggg5000さん(No.1) 
経理分析作成の探索対象件数について
IPAの解答例は1,432,600(1,332,400でも正解)
とありますが、よく理解できませんでした。
※また、かっこの正解でも良い理由もわかりません。

ご教授頂けるとありがたいです。
よろしくお願いします。
2022.09.11 22:55
にゃんちゃんさん(No.2) 
DB シルバーマイスター
経費分析表作成において必要なテーブルの情報は以下の通りです。
※P.18「・申請数は、各事業部、各科目、各処理年月に均一に分布するものとする。」
とあるので、全行数を月数で割れば、1ヶ月あたりの行数が分かります。

・経費予算テーブル
12000行
60ヶ月分
→1ヶ月当たり200行

・経費伝票テーブル
6600000行
60ヶ月
→1ヶ月あたり110000行

経費分析表作成では
①経費予算テーブルから、対象年月分を抽出
②経費伝票テーブルから、上記に対応する行を抽出
③GROUP BYで集約
という手順を踏んでいます。

もし索引が定義されていなければ各テーブルの全行を探索するしかなく
①で12000行+②で6600000行
合計6612000行が探索行数となります。

今回は
P.13「主キーの索引は必ず定義する」
P.18「~の各テーブルには、処理年月をキーをする索引があるものとする」
ということで年月に索引が定義されているため、年月分の行数まで探索行数を抑えられます。
仮に「当月1ヶ月分の行を対象に処理を行う」ということであれば
①で経費予算テーブル200行だけを探索
②で経費伝票テーブル110000行だけを探索
1ヶ月分だけなら合計110200行が探索行数となります。

ここからが日本語の問題で別解が生まれている部分なのですが
P.11「当月の12ヶ月前から当月までの行を対象に処理を行う」ということで
これはいったい何ヶ月分なのか?を考えます。
「12ヶ月前から今まで?つまり"12"ヶ月分よね?」
「当月の1ヶ月前から当月、だったら2ヶ月分。そうやってさかのぼっていけば"13"ヶ月分になるはず」
という2大流派が生まれました。

日本語を厳密に読み解けば後者な気もしますが
問いたい意図とは違うためなのか、どちらの考え方でも正解とされました。

ということで
110200行×12か月分=1322400
110200行×13か月分=1432600
の2つの解答が生まれています。
2022.09.12 00:30
 Pggg5000さん(No.3) 
なるほど、理解出来ました!
丁寧に説明頂きありがとうござました!
2022.09.12 09:04
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2016-2024 データベーススペシャリストドットコム All Rights Reserved.

Pagetop