データベーススペシャリスト試験 2016年 午後102


データベースの運用設計に関する次の記述を読んで、設問1〜3に答えよ。

 A社は,仕入れた商品を中小企業向けに小口販売している卸売業者である。 A社では、受注,出荷,発注、在庫管理及び販売分析の業務を支援する受発注在庫管理システムを運用している。  
〔プログラムとテーブルの関係〕 受発注在庫管理システムの主要なプログラムとテーブルの参照・更新の関係は,表1に示すとおりである。
データベーススペシャリスト試験(平成28年 午後I 問2 表1)
(1) “商品”テーブル, “仕入先” テーブル及び “販売先” テーブルの追加、変更の要求は,“マスタ更新登録” テーブルに登録され, バッチプログラムで 1件ずつコミットしながら反映される。 (2) “在庫”テーブルは,在庫のうちの3割 (売れ筋商品) に相当する約 1,000 行が毎日頻繁に変更される。 (3) “出荷”テーブルには,毎日, 約 400,000 行が追加される。 (4) “日別販売実績” テーブルには,当日分の販売実績が追加される。また,“月別販売実績” テーブルには,当日分の販売実績が当月分の販売実績に反映される。これらのテーブルには, 直近3年分の販売実績が蓄積されている。 (5) “分析用データ” テーブルは, 販売分析で使用する。 当日分の販売実績が,前日に作成された“分析用データ” テーブルに反映され, 直近3年分の分析結果となるように維持されている。“分析用データ” テーブルは, バッチプログラム “分析用データ作成” を用いて,蓄積されている販売実績を基に, 再作成することも可能である。  
〔バッチプログラムの実行スケジュール〕  バッチプログラムの実行スケジュールを, 図1に示す。   データベーススペシャリスト試験(平成28年 午後I 問2 図1)  
〔データの入出力〕 (1) RDBMSがディスクとデータの入出力を行う単位を,ページという。1ページ内にはテーブルの行が複数格納される。 (2) 同じページに, 異なるテーブルの行が格納されることはない。 (3) 受発注在庫管理システムでは,ページのサイズは 4,096 バイトとしている。 また、“在庫”テーブル及び “出荷” テーブルは, 1 ページ内に 40 行格納できるものとする。  
〔RDBMSのバックアップ機能・復元機能・更新ログによる回復機能〕
1.バックアップ機能  (1) バックアップの単位には,データベース単位とテーブル単位がある。  (2) バックアップの種類には,取得するページの範囲によって, 全体バックアップ,増分バックアップ及び差分バックアップがある。   ① 全体バックアップには、全ページが含まれる。   ② 増分バックアップには、前回の全体バックアップ取得後に変更されたページが含まれる。 ただし, 前回の全体バックアップ取得以降に増分バックアップを取得していた場合は、前回の増分バックアップ取得後に変更されたページだけが含まれる。   ③ 差分バックアップには, 前回の全体バックアップ取得後に変更された全てのページが含まれる。  (3) 全体バックアップと増分バックアップの場合は, バックアップ取得ごとにバックアップファイルが作成される。 差分バックアップの場合は、2回目以降の差分バックアップ取得ごとに, 前回の差分バックアップファイルが最新の差分バックアップファイルで置き換えられる。  (4) バックアップ取得に要する時間は,バックアップを取得するページ数に比例する。
2.復元機能  (1) バックアップを用いて, バックアップ取得時点の状態に復元できる。  (2) 復元の単位は,バックアップの単位と同一である。 データベース単位のバックアップを用いて, 特定のテーブルだけを復元することはできない。
3.更新ログによる回復機能  (1) バックアップを用いて復元した後, 更新ログを用いたロールフォワード処理によって指定の時刻の状態に回復できる。  (2) 更新ログによる回復に要する時間は,更新ログの量に比例する。  
〔バックアップ及び回復の方針〕  (1) オンライン時間帯直前に, データベース単位でバックアップを取得する。  (2) オンラインプログラムで更新され得るテーブルは,オンライン時間帯直後に,テーブル単位でバックアップを取得する。  (3) それぞれのバッチプログラムを実行する直前に,更新対象のテーブルについて,テーブル単位でバックアップを取得する。 ただし, (2) バックアップを取得したテーブルは対象外とする。  (4) バックアップの種類は,全体バックアップとする。  (5) 回復は,受注、出荷, 発注、在庫管理の業務に影響するテーブルを優先する。  
〔データ異常発生時の回復運用〕  バッチプログラム“出荷計上”にプログラム不良があり, “在庫” テーブルの当日分の内容が不正になっていた。 これが原因でバッチプログラム “発注対象データ作成”が中断した。 バッチプログラムで更新された全てのテーブルを当日のオンライン時間帯直後の状態に復元し、 プログラム不良を修正後、 全てのバッチプログラムを再実行すれば回復可能であるが, 時間が掛かるので, 次の手順を立案した。  第1段階 バックアップを用いて “出荷” テーブルと “在庫” テーブルを当日のオンライン時間帯直後の状態に復元し, プログラム不良を修正したバッチプログラム “出荷計上” を再実行する。  第2段階 バックアップを用いて“(ア)”テーブルを当日のオンライン時間帯直後の状態に復元し, バッチプログラム“(イ)”を再実行する。  第3段階 バックアップを用いて“(ウ)”テーブルを当日のオンライン時間帯直後の状態に復元し, バッチプログラム“(エ)”を再実行する。  第4段階 バッチプログラム “マスタ更新反映” を実行する。

設問1(1)受発注在庫管理システムのバックアップ及び回復について,(1),(2)に答えよ。

図1中の各契機でのテーブル単位のバックアップについて,次の表でバックアップを取得するものに “○” を記入せよ。  なお,バックアップを取得しないものは, 空欄のままとすること。 データベーススペシャリスト試験(平成28年 午後I 問2 設問1-1)
模範解答
データベーススペシャリスト試験(平成28年 午後I 問2 設問1-1解答)
解説

1. 模範解答に至るキーワード・論点整理

項目要点
バックアップ契機T1~T5 の 5 か所(図1の縦線)
方針(2)オンライン更新テーブルはオンライン終了直後(=T1)に必ずバックアップ
方針(3)その後は“各バッチ開始直前”に、そのバッチが 更新する テーブルだけをバックアップ(ただし同じ日に既に取得済みなら不要)
オンラインで更新される表マスタ更新登録・受注・出荷指図・出荷・在庫
各バッチで更新される表出荷計上:出荷・在庫
販売実績日次集計:日別販売実績
販売実績月次集計:需要予測・月別販売実績
需要予測:発注対象データ
発注対象データ作成:発注対象データ・分析用データ
分析用データ作成:分析用データ
マスタ更新反映:商品・仕入先・販売先
“更新”とはC(Create),U(Update),CU いずれも“更新”とみなす/R は対象外
同日複数回更新先にバックアップを取っていれば以降の契機では “○” を付けない

2. 具体的な導出手順と根拠の説明

2.1 まずオンライン終了直後(T1)

問題文「方針(2) オンラインプログラムで更新され得るテーブルは, オンライン時間帯直後に, テーブル単位でバックアップを取得する。」
オンラインで C/U が発生するのは次の 5 表。
・マスタ更新登録(取引先管理/商品情報管理が C)
・受注(受注管理が新規登録するため実質更新対象)
・出荷指図(受注管理:CU)
・出荷(出荷処理:C)
・在庫(受注管理:RU, 発注処理:CU)
ゆえに T1 行に “○” を付けるのはこの 5 つ。
T1で“○”を付ける根拠
マスタ更新登録 … 取引先管理・商品情報管理が C
受注 … 受注管理で新規受注を登録
出荷指図 … 受注管理で CU
出荷 … 出荷処理で C
在庫 … 受注管理 RU/発注処理 CU

2.2 「出荷計上」開始直前も T1

方針(3) により 出荷計上が更新する 出荷・在庫 をバックアップする必要があるが,
両表とも T1 で既に取得済みなので 追加無し
従って模範解答の T1 行は上記 5 個だけになる。

2.3 T2(「受注明細書送信」「販売実績日次集計」開始直前)

受注明細書送信は 更新なし
販売実績日次集計は「表1」で 日別販売実績 が C
よって T2 では 日別販売実績 だけ “○”。

2.4 「販売実績月次集計」開始直前(T3)

図1の矢線より,日次集計が終わったあとに 月次集計 が起動する。
月次集計の更新対象は 需要予測(CU),月別販売実績(U)。
両表はまだバックアップされていないので,T3 行で “○”。

2.5 「需要予測」および 「発注対象データ作成」開始直前(T4)

・需要予測バッチは 発注対象データ を CR(=更新)。
・発注対象データ作成バッチは 発注対象データ と 分析用データ を更新。
先に動く需要予測開始時点で 発注対象データ をバックアップ。
続けて発注対象データ作成開始前に 分析用データ を取得。
両バッチの開始契機が同じ T4 なので,T4 行には
発注対象データ と 分析用データ の 2 つに “○”。

2.6 T5(「分析用データ作成」「マスタ更新反映」開始直前)

分析用データは T4 で取得済みなので不要。
マスタ更新反映が CU する 商品・仕入先・販売先 の 3 表だけをバックアップ。
よって T5 行は 商品・仕入先・販売先 に “○”。

3. 受験者が迷いやすいポイント

ひっかけ箇所誤りやすい理由
受注表をT1で忘れる表1 では “R” しか付いておらず,見落としがち。実際の業務では新規受注登録=更新なので要バックアップ。
バッチが複数連続で動く場合の“直前”T2~T4 の様に同じ契機で複数バッチが起動する時,すべての更新対象表を洗い出す必要がある。
同じ日に二重バックアップ方針(3) の「既に取得済みなら不要」を忘れると ○ を二重に付けて減点。
“R” と “C/U” の取り違え“R” はバックアップ不要。Create も Update と同等に扱うことを確認。

4. 試験対策まとめ

  1. バックアップ運用の典型パターン
    • オンライン終了直後:オンライン更新テーブルを一括取得
    • 以降は バッチ開始直前 にそのバッチが更新するテーブルだけ
    • 同じ日に二度取得する必要はない
  2. “更新”判定
    • C(新規行追加)も U(既存行更新)もどちらも更新対象
    • R はバックアップ不要
  3. 表1 の読み取りコツ
    • 行=プログラム,列=テーブル
    • C/U/R を素早く拾う訓練をしておく
  4. スケジュール図の矢線
    • 縦線(T1~)が契機,右側の矩形が“その契機で起動するバッチ”
    • 矢線は 依存関係(先完了→後起動)を示す
  5. 本問以外でも出題されやすいキーワード
    • 全体/増分/差分バックアップの違い
    • ロールフォワード(更新ログ回復)とロールバック
    • ページ単位 I/O と表の行数・行サイズ計算
これらを押さえておけば,バックアップ設計・障害回復系の問題で得点源にできます。

設問1(2)受発注在庫管理システムのバックアップ及び回復について,(1),(2)に答えよ。

図1で実行中のバッチプログラムがテーブルにアクセスしたとき,ディスク障害を検知して異常終了する場合がある。 障害を検知したバッチプログラム名,ディスク障害の影響を受けたテーブル名, 及びディスク復旧後の回復手順を、次の表にまとめた。 表中の(a)〜(f)に入れる適切な文句を答えよ。(b, c, dは順不同) データベーススペシャリスト試験(平成28年 午後I 問2 設問1-2)
模範解答
a:・更新ログによる回復機能  ・更新ログを用いたロールフォワード処理 b:商品 c:仕入先 d:販売先 e:再実行 f:継続
解説

1. 論点整理(キーワード・核心事項)

No.キーワード内容のポイント
1バックアップの種類全体バックアップ/増分バックアップ/差分バックアップの違いと取得タイミング
2復元(リストア)機能バックアップ取得時点への状態復元。単位は「データベース単位」または「テーブル単位」
3更新ログによる回復(ロールフォワード)復元後、更新ログを用いて任意の時刻の状態まで進める処理。ログ量に比例して時間がかかる
4再実行 vs 継続バッチプログラムを最初からやり直すのか(再実行)、途中から継続するのか(継続)の違い
5マスタテーブル“商品”/“仕入先”/“販売先”といった頻繁に参照・更新される基本データの集合

2. 各空欄の解答理由

(a) 更新ログによる回復機能/更新ログを用いたロールフォワード処理

  • 【問題文】
    「(2) 更新ログによる回復に要する時間は,更新ログの量に比例する。」
    「(1) バックアップを用いて復元した後, 更新ログを用いたロールフォワード処理によって指定の時刻の状態に回復できる。」
  • 論理
    “販売実績日次集計” 実行中に “出荷” テーブルへの I/O で障害が起きた場合、まずバックアップで「出荷」テーブルを当初の状態に戻し、続いて障害検知前までの更新内容を復元するために 「更新ログによる回復機能」 (別名 「更新ログを用いたロールフォワード処理」)を用います。

(b)、(c)、(d) “商品”/“仕入先”/“販売先”

  • 【問題文】
    「(1) “商品”テーブル, “仕入先” テーブル及び “販売先” テーブルの追加、変更の要求は, ‘マスタ更新登録’ テーブルに登録され, バッチプログラムで 1件ずつコミットしながら反映される。」
  • 論理
    “マスタ更新反映” プログラムがアクセスするのは、この3つのマスタテーブルです。障害発生後、これらを当日のオンライン時間帯直後の状態に戻すため、 “商品”“仕入先”“販売先” の順序は不問ですが、すべて復元対象となります。

(e) 再実行

  • 【問題文】
    障害検知後の第1段階~第4段階の手順では、
    • 「第1段階 … バッチプログラム ‘出荷計上’ を再実行」
    • 「第2段階 … バッチプログラム ‘(イ)’ を再実行」
  • 論理
    失敗したバッチを正常に完了させるには、当初の先頭からもう一度動かす 「再実行」 が必要です。“マスタ更新反映” も同様に 再実行 します。

(f) 継続

  • 【問題文】
    「第4段階 バッチプログラム ‘マスタ更新反映’ を実行する。」
    「バッチプログラム ‘分析用データ作成’ を継続する。」
  • 論理
    “分析用データ作成” はマスタ反映後に続行されるバッチです。障害前に起動していた分を途中から止めずに 「継続」 します。

3. 解答一覧

空欄解答
(a)更新ログによる回復機能/更新ログを用いたロールフォワード処理
(b)商品
(c)仕入先
(d)販売先
(e)再実行
(f)継続

4. 誤りやすいポイント

  • バックアップと復元の混同
    増分/差分バックアップと「更新ログによる回復」は別物です。バックアップは「過去のイメージ」を保持し、ロールフォワードは「ログから最新状態を再構築」します。
  • 再実行と継続の使い分け
    一度も処理されなかったバッチは「再実行」、途中で止まっていたバッチは「継続」。これを逆に使うと、二重実行や未処理状態のままになる恐れがあります。
  • マスタテーブルの範囲
    マスタ更新反映が対象とするテーブルは必ず問題文記載の3つのみ。“日別販売実績”や“在庫”などを含めない点に注意。

5. 試験対策として押さえておくべき知識

  1. バックアップ種類の特徴と取得コスト
  2. 復元単位と復元手順(データベース単位 vs テーブル単位)
  3. 更新ログ(リカバリログ)を用いたロールフォワード処理の概要
  4. バッチ障害発生時の復旧手順における「再実行」と「継続」の違い
  5. マスタデータ更新フローと、バッチ実行スケジュールの依存関係の読み取り

設問2(1)バックアップ運用の見直しについて,(1)〜(3)に答えよ。

月初めだけ全体バックアップを取得し, 日々の運用では増分バックアップ, 差分バックアップも活用することにした。 ただし, どちらのバックアップでも同程度の容量の節約となる場合は,バックアップ取得に要する時間が短い方を選択する。この場合, “在庫” テーブル及び “出荷” テーブルについて,選択すべきバックアップの種類として “増分” 又は “差分” のいずれかを○印で囲め。 また、その選択根拠として “容量” 又は “時間” のいずれかを○印で囲み、その理由(容量が節約できる理由又は時間が短い理由)を, 30 字以内で述べよ。
模範解答
データベーススペシャリスト試験(平成28年 午後I 問2 設問2-1解答)
解説

キーワードと論点整理

  • バックアップの種類
    • 全体バックアップ:全ページを取得
    • 増分バックアップ:前回の全体/増分バックアップ以降に変更されたページを取得
    • 差分バックアップ:前回の全体バックアップ以降に変更された全てのページを取得
  • バックアップ時間は「取得するページ数に比例」
  • テーブルの変更規模(1ページあたり40行)
    • “在庫”テーブル:毎日約1,000行変更 ⇒ 約25ページ変更
    • “出荷”テーブル:毎日約400,000行追加 ⇒ 約10,000ページ追加

解答例

テーブルバックアップの種類選択根拠理由
“在庫”テーブル増分容量変更されるページが局所化しているから
“出荷”テーブル増分時間その日の追加ページだけで済むから

なぜこの解答になるか

“在庫”テーブル:増分 × 容量

  1. 問題文より
    “在庫”テーブルは「約 1,000 行が毎日頻繁に変更される」。
  2. ページ数換算
    1,000 行 ÷ 40 行/ページ = 約 25 ページ
  3. 増分 vs 差分
    • 増分バックアップ:前回のバックアップ以降に変更された約 25 ページのみ取得
    • 差分バックアップ:前回の 全体 バックアップ以降の変更ページすべて(累積)を取得 → 日を追うごとにサイズ増大
  4. 結論
    取得ページ数が少ない増分バックアップを選び、「容量」を基準とする

“出荷”テーブル:増分 × 時間

  1. 問題文より
    “出荷”テーブルには「毎日, 約 400,000 行が追加される」。
  2. ページ数換算
    400,000 行 ÷ 40 行/ページ = 10,000 ページ
  3. 増分 vs 差分
    • 増分バックアップ:当日の追加ページ 10,000 ページのみ取得
    • 差分バックアップ:全体バックアップ以降の追加 ページが累積 → 日ごとに増大
  4. 結論
    バックアップ時間 ∝ 取得ページ数 なので、増分バックアップを選び、「時間」を基準とする

受験者が誤りやすいポイント

  • 「増分」と「差分」の定義を取り違えない
    • 増分:直前のバックアップ以降の変更分
    • 差分:前回の 全体 バックアップ以降の全変更分
  • バックアップ取得時間は「ページ数」に比例することを必ず確認
  • 問われている基準(容量/時間)を正しく区別する

試験対策として覚えておくポイント

  1. 増分/差分バックアップの特徴を整理
  2. データ量を実数値でページ換算し、大きい・小さいを判断
  3. 取得時間は「バックアップページ数 × 定数」
  4. 設問の「どちらを選ぶか」「容量か時間か」を問題文の条件に即して明示的に回答する

設問2(2)バックアップ運用の見直しについて,(1)〜(3)に答えよ。

ある一つのテーブルのバックアップを月初めだけ取得し, 日々のバックアップは取得しないことにした。 回復の方針に従って,どのテーブルを対象にすべきか、テーブル名を答えよ。
模範解答
“分析用データ”テーブル
解説

1. 模範解答のキーワード・論点整理

  • 答え:“分析用データ”テーブル
  • 論点:
    • 再作成可能であること
    • 日々のバックアップを省略しても,必要時にバッチ処理で復元できること

2. なぜ“分析用データ”テーブルか

問題文の記述を引用しながら,論理的に説明します。
(5) “分析用データ” テーブルは, 販売分析で使用する。 当日分の販売実績が,前日に作成された“分析用データ” テーブルに反映され, 直近3年分の分析結果となるように維持されている。
“分析用データ” テーブルは, バッチプログラム “分析用データ作成” を用いて,蓄積されている販売実績を基に, 再作成することも可能である
  • 再作成可能という性質があるため,万一日々のバックアップを取得していなくても,
    バッチプログラム「分析用データ作成」を実行すれば,テーブルを最新状態に再構築できる。
  • 他のテーブル(在庫テーブルや出荷テーブル,日別/月別販売実績テーブルなど)は,
    バックアップがなければその日の更新分を取り戻せないため,日々のバックアップが必須となる。
したがって,「月初めだけバックアップを取得し,日々は取得しない」運用において,
バックアップ省略の対象にできるのは“分析用データ”テーブルだけになります。

3. 受験者が誤りやすいポイント

誤りの例理由・解説
“日別販売実績”テーブル異常発生時の復旧に,その日のバックアップがないと取り戻せない。
「集計済み」とはいえ,元データを基に再集計する仕組みは用意されていない。
“在庫”テーブル「在庫」は毎日3割(約1,000行)変更され,業務に直結するため,日次バックアップが必要。
“出荷”テーブル毎日約400,000行追加される。再作成プログラムはなく,バックアップなしでは復元不可。
  • 「再作成可能」かどうかを問題文から正確に読み取ることがポイントです。
  • 「再作成できる」と明示されているテーブルは極めて少ないため,そこに注意しましょう。

4. 試験対策:覚えておくべきポイント

  1. 再作成可能なデータは日次バックアップを省略できる
    • 問題文で「再作成することも可能である」と書かれているかを探す。
  2. バックアップの種類と単位
    • 全体/増分/差分バックアップの特徴を整理する。
  3. 復元運用の優先順位
    • 業務への影響度(受注・出荷・発注・在庫管理)を基準に優先度付け。
  4. バッチ処理の再実行可否
    • 依存関係図や説明文から,どのテーブルがバッチで再構築可能かを見抜く。
以上のポイントを押さえると,「バックアップを省略できる対象テーブル」を正しく選べるようになります。

設問2(3)バックアップ運用の見直しについて,(1)〜(3)に答えよ。

(2)のテーブルに障害が発生し,かつ, バックアップファイルが壊れていた場合,どのように回復するか, 40字以内で述べよ。
模範解答
3年分の販売実績を基に,バッチプログラム“分析用データ作成”を再実行する。
解説

キーワードと論点整理

  • 対象テーブル:問題文の(2)で指すのは「分析用データ」テーブル
  • 再作成可能性:「分析用データ」テーブルはバッチ処理で再作成可能
  • 再作成手段:バッチプログラム「分析用データ作成」を用いる
  • 基データ:直近3年分の「日別販売実績」「月別販売実績」などに蓄積された販売実績

解答の論理的根拠

問題文には次の記述があります。
“分析用データ” テーブルは, 販売分析で使用する。 当日分の販売実績が,前日に作成された“分析用データ” テーブルに反映され, 直近3年分の分析結果となるように維持されている。“分析用データ” テーブルは, バッチプログラム “分析用データ作成” を用いて,蓄積されている販売実績を基に, 再作成することも可能である。
バックアップファイルが壊れてテーブル単位の復元ができない場合でも、「分析用データ」テーブルは上記のとおりバッチプログラム“分析用データ作成”を再実行することで再作成できます。
直近3年分の販売実績は他テーブルに残っているため、この手順で復旧が完了します。

誤りやすいポイント

  • 他テーブルと混同:日別/月別販売実績テーブルはバックアップが壊れていたら復元・ロールフォワードが必要だが、再作成はできない。
  • バックアップ/ロールフォワード万能説:バックアップが壊れている場合、通常の差分・ログ適用では復旧できない点を見落としやすい。
  • 全テーブル再実行案:出荷/在庫など全テーブルを一律に復元・再実行すると、時間も手間もかかるうえ、販売分析業務は不要な手順となる。

試験対策メモ

  • 「再作成可能」か「バックアップ復元+ログ適用」かをテーブルごとに区別できるように、問題文の記述を丁寧にチェックする。
  • バックアップの種類(全体/増分/差分)と復元単位(データベース/テーブル)の関係を整理する。
  • ロールフォワード処理の適用可否は、バックアップの状態(正否)に依存する点を押さえておく。
  • 各バッチプログラムの役割と依存関係(図1参照)を理解し、再実行の影響範囲を把握する。

設問3(1)〔データ異常発生時の回復運用〕 について,(1),(2)に答えよ。

(ア)〜(エ) に入れる適切な字句を答えよ。
模範解答
ア:需要予測 イ:需要予測 ウ:発注対象データ エ:発注対象データ作成
解説

キーワード・論点整理

  • 「バッチプログラムの実行スケジュール」
    出荷計上(T1) → 受注明細書送信・販売実績日次集計(T2) → 需要予測(T3) → 発注対象データ作成(T4) → … → マスタ更新反映(T5)
  • 障害発生箇所
    「バッチプログラム“出荷計上”にプログラム不良があり, “在庫” テーブルの当日分の内容が不正」
    → これが原因で「バッチプログラム “発注対象データ作成” が中断した」
  • 復旧手順のポイント
    1. 出荷計上 → 在庫・出荷を正しい状態に戻して再実行
    2. 中断の原因となった後続バッチ1:依存関係をもつ「需要予測」
    3. 中断の原因となった後続バッチ2:直接中断した「発注対象データ作成」
    4. 業務に影響しないバッチは省略し、最後にマスタ更新反映

解答が導かれる論理的説明

まず、問題文から復旧手順の各段階と対応表が以下のように読み取れます。
段階内容
第1段階“出荷” テーブルと “在庫” テーブルを当日のオンライン時間帯直後の状態に復元し, プログラム不良を修正したバッチプログラム “出荷計上” を再実行
第2段階バックアップを用いて “(ア)” テーブルを当日のオンライン時間帯直後の状態に復元し, バッチプログラム “(イ)” を再実行
第3段階バックアップを用いて “(ウ)” テーブルを当日のオンライン時間帯直後の状態に復元し, バッチプログラム “(エ)” を再実行
第4段階バッチプログラム “マスタ更新反映” を実行
1. 第1段階の狙い
プログラム不良によって“不正”となったのは “在庫” テーブルです。
“プログラム不良があり, “在庫” テーブルの当日分の内容が不正になっていた。”
まずこれを正し、再度「出荷計上」を実行します。
これにより、出荷計上までの状態は正常に戻ります。
2. 第2段階:ア・イ にあてはまるのは何か
第1段階で戻したのは「出荷計上」までですが、その後のバッチ依存関係を見ると、
次に動くのは 「需要予測」(T3)です。
  • 「発注対象データ作成」より前に実行される
  • 「需要予測」プログラム実行時に参照・更新するテーブルは “需要予測” テーブル
よって、第2段階では
■“需要予測” テーブルを復元して → バッチプログラム “需要予測” を再実行
となります。
ここで対応する解答は
ア:需要予測  
イ:需要予測  
です。
3. 第3段階:ウ・エ にあてはまるのは何か
「需要予測」の再実行後に更新・参照されるテーブルは “発注対象データ” です。
続くプログラムは 「発注対象データ作成」(T4)で、このプログラムが中断した直接の当事者です。
したがって、第3段階では
■“発注対象データ” テーブルを復元して → バッチプログラム “発注対象データ作成” を再実行
となり、解答は
ウ:発注対象データ  
エ:発注対象データ作成  
となります。

受験者が誤りやすいポイント

  1. 依存順序を取り違える
    「発注対象データ作成」→「需要予測」の順序と誤解すると、ア・イ を逆に考えがちです。必ず実際のスケジュール(T1→T2→T3→T4…)を正確に押さえましょう。
  2. 参照/更新テーブルの混同
    どのプログラムがどのテーブルを「読み込み(R)」/「作成・更新(CU)」するかを正しく把握できていないと、どのテーブルを復元すべきか迷います。問題文の「プログラムとテーブルの関係」は必ずチェックしましょう。
  3. 不要なバッチまで再実行してしまう
    「中断した以降のすべてを再実行」と考えると時間がかかる想定が合いません。回復運用では「影響範囲だけ」を絞り込むことがポイントです。

試験対策ポイントまとめ

  • バッチの依存関係を図から正確に読み取る
    実行順序を把握し、どの段階でどのテーブルが使われているかを整理する訓練をする。
  • R/C/U の意味を必ず確認
    テーブルアクセスの種類(Read/Create/Update)は、復元すべきテーブルの特定に直結します。
  • 回復運用では「最小限の再実行」にとどめる
    障害の影響範囲を限定し、該当テーブルと該当プログラムのみを復元・再実行する考え方を身につける。
  • 問題文中の用語は必ず原文で覚える
    「需要予測」「発注対象データ作成」など,固有名詞は正確に把握することが肝要です。

設問3(2)〔データ異常発生時の回復運用〕 について,(1),(2)に答えよ。

バッチプログラム “出荷計上”, “(イ)”, “(エ)” の再実行, 及び “マスタ更新反映” の実行を除いて, その他のバッチプログラムの再実行は不要である。その理由を 40字以内で述べよ。
模範解答
・“在庫”テーブルと,そのデータを反映したテーブルを参照しないから ・“在庫”テーブルの不正な内容の影響を受けるテーブルを参照しないから ・“在庫”,“需要予測”,“発注対象データ”の各テーブルを参照しないから
解説

キーワード・論点整理

  • 対象となる不正データは,「在庫」テーブルの日次分
  • 不正データを参照・反映するバッチのみ再実行が必要
  • 他のバッチは「在庫」「需要予測」「発注対象データ」を参照しない

なぜ再実行不要か(論理的説明)

  1. 問題文より
    「プログラム不良により“在庫”テーブルの当日分の内容が不正になっていた。
    これが原因でバッチプログラム “発注対象データ作成” が中断した。」
    とあるように,不正となったのは「在庫」テーブルの当日分だけ。
  2. 再実行が必要なプログラム
    • “出荷計上” … 不正な在庫データを更新したため
    • (イ)=“発注対象データ作成” … 不正な在庫を参照して中断
    • (エ)…(イ)の生成物を参照
    • “マスタ更新反映” … システム整合性確保のため
  3. 表1(プログラムとテーブルの関係)から,その他のバッチプログラムは
    • 「在庫」テーブルを参照せず
    • 中断の原因となった「需要予測」「発注対象データ」テーブルも参照しない
      ため,影響を受けず再実行は不要
バッチプログラム在庫参照需要予測参照発注対象データ参照
受注明細書送信
販売実績日次集計
販売実績月次集計
分析用データ作成

受験者の誤りやすいポイント

  • 「C(Create)は参照に含まれない」ことを見落とし,参照関係と混同しがち
  • プログラム-テーブル関係表を横断的にチェックせず,名前だけで判断する

試験対策としてのまとめ

  • プログラムとテーブルの参照・更新関係を表1で正確に把握する
  • 不正データの「発生源」と「参照先」を切り分け,影響範囲を特定する
  • バッチの依存順序(図1)の理解と,ロールフォワード運用の流れをおさえること
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ