DBデータベーススペシャリスト試験 午後Ⅰ
平成28年度春期 データベーススペシャリスト 午後Ⅰ 問2
事例を読んで設問の答えを考えてから、解説のポイントとIPA公式の解答例・採点講評で確認しましょう。
問題




解き方のヒントを見る
運用方針の条件を先に整理しよう
この種の問題では、個々の用語を思い出す前に、問題で示された運用上の条件や優先事項を書き出すことが出発点になります。何を重視し何を制約とするかを整理してから、各検討対象がその条件にどう対応するかを確かめましょう。
この問題で問われていること
問われているのは用語そのものの暗記よりも、運用方針に書かれた条件と、選ぶべき手段や手順との対応関係です。方針の中でどの観点が優先され、どれが制約として課されているかを読み取ることが判断の軸になります。
視点
一般にデータ保護の仕組みは、平常時にかける手間と、障害時に元の状態へ戻すための手間の配分を考えて選ぶものです。どの方式にも向き不向きがあるため、単独で優劣を決めるのではなく、方針が求める条件に照らして評価する姿勢が大切です。回復の流れを考える際も、どの時点の状態を何から組み立てるのかを、自分で順を追って確かめると整理しやすくなります。
確認ポイント
- 運用方針から、優先されている条件と制約になっている条件を分けて書き出したか
- 各検討対象が方針のどの条件に対応しているかを、自分の言葉で説明できるか
- 回復の流れを考える際、どの時点の状態を目標にしているかを方針と照らし合わせたか
正解と解説を見る
解説
本問は、オンライン時間帯とバッチ時間帯を繰り返す受発注在庫管理システムのバックアップと回復を扱います。表1のC・U、図1の実行順、〔バックアップ及び回復の方針〕を組み合わせると、取得契機、ディスク障害時の回復手順、増分と差分の選び方、再作成できるテーブルの扱い、プログラム不良の影響範囲を判断できます。
問題の全体像
A社の受発注在庫管理システムでは、オンライン時間帯の後に図1のバッチが順に実行されます。バックアップの方針は次のとおりです。(2)オンラインで更新され得るテーブルは、オンライン時間帯直後に退避します。(3)各バッチの更新対象テーブルは、そのバッチの実行直前に退避します。(5)回復では、受注・出荷・発注・在庫管理の業務に影響するテーブルを優先します。出題趣旨では、対象を見極め、業務への影響を整理し、バックアップ・回復計画に反映する能力を評価するとしています。採点講評では、設問2(1)は一般論だけの解答が多く、(2)(3)と設問3は正答率が低かったと指摘しています。どの設問も、表1・図1・状況記述から具体的に読み取ることが求められます。
設問1(1)
表1のオンライン行でCかUが付いているテーブルは、“マスタ更新登録”(取引先管理・商品情報管理がC)、“受注”(CU)、“出荷指図”(C)、“在庫”(RU・CU)です。方針(2)により、これらはオンライン直後のT1で退避します。T1の直後には“出荷計上”が始まり、“出荷”を追加します(C)。そのため方針(3)により、“出荷”もT1で退避します(“在庫”は(2)で退避済みなので対象外です)。以降は各バッチの開始直前の契機で、そのバッチの更新対象を退避します。T2は“販売実績日次集計”が追加する“日別販売実績”です。T3は“需要予測”が追加する“需要予測”と、“販売実績月次集計”が追加・変更する“月別販売実績”です。T4は“発注対象データ作成”が追加する“発注対象データ”と、“分析用データ作成”が追加・変更する“分析用データ”です。T5は“マスタ更新反映”が追加・変更する“商品”“仕入先”“販売先”です。公式解答例もこのとおりです。参照(R)だけのテーブルや“受注明細書送信”は、退避の対象になりません。
設問1(2)(a)
“出荷”テーブルのバックアップはT1、つまり“出荷計上”の実行前の状態です。求められているのは、“出荷計上”が終わった時点まで戻すことです。ただし“出荷計上”を再実行すると“在庫”も再び変更されてしまいます。そこで、〔更新ログによる回復機能〕を使います。バックアップから復元した後、更新ログでロールフォワードすれば、指定した時刻まで回復できます。公式解答例では、aは「更新ログによる回復機能」又は「更新ログを用いたロールフォワード処理」です。
設問1(2)(b)
表1によると、“マスタ更新反映”は“商品”“仕入先”“販売先”の3テーブルを追加・変更します(CU)。また状況記述(1)により、1件ずつコミットしながら反映されます。そのため、異常終了した時点では、障害を受けた“商品”以外のテーブルにも途中までの更新が確定しています。再実行の前に、3テーブルともT5のバックアップ(実行直前の状態)に戻す必要があります。公式解答例では、bは“商品”です(b~dは順不同)。
設問1(2)(c)
bと同じ理由です。“マスタ更新反映”の更新対象で、1件ずつのコミットによって途中まで反映されている可能性があるため、復元が必要です。公式解答例では、cは“仕入先”です(b~dは順不同)。
設問1(2)(d)
bと同じ理由です。“販売先”も“マスタ更新反映”の更新対象(CU)なので、T5のバックアップから復元します。公式解答例では、dは“販売先”です(b~dは順不同)。
設問1(2)(e)
3テーブルを“マスタ更新反映”の実行直前の状態に戻したので、同じプログラムを最初から実行し直せば、正しい状態になります。公式解答例では、eは“再実行”です。
設問1(2)(f)
図1で、“分析用データ作成”はT4の後からT5をまたいで実行されており、“マスタ更新反映”と並行して動いています。表1によると、“分析用データ作成”が参照・更新するのは“日別販売実績”“月別販売実績”“分析用データ”だけです。障害を受けた“商品”や、復元する3テーブルとは関係がありません。したがって止めたりやり直したりする必要はありません。公式解答例では、fは“継続”です。
設問2(1)
まず“在庫”テーブルです。売れ筋の約1、000行(1ページ40行)が毎日変更されるので、変更されるページは毎日ほぼ同じ範囲に集中しています。増分バックアップは、前回の増分以降に変わったページを毎日別ファイルとして作ります。そのため、同じ範囲のページが日数分のファイルに繰り返し含まれ、容量が積み上がります。差分バックアップにも、全体バックアップ以降に変わった同じページが毎回含まれます。しかし、2回目以降は前回の差分ファイルが最新のもので置き換えられます(機能説明1(3))。ページの範囲が局所化されているので、1ファイルの大きさもほぼ一定です。このため、差分の方が容量を節約できます。公式解答例では「差分」「容量」で、理由は「変更されるページが特定範囲に局所化されているから」又は「増分バックアップでは特定範囲のページが繰り返し含まれるから」です。次に“出荷”テーブルです。毎日約400、000行が追加され、新しいページが毎日増えます。増分ファイルの合計も、置換される差分ファイルも、保持するページ数は月初めからの追加分で同程度です。そこで、問題文の条件に従い時間で比べます。取得時間はページ数に比例します(1(4))。増分はその日の追加ページだけで済みますが、差分は取得するページ数が日ごとに増えます。公式解答例では「増分」「時間」で、理由は「その日の追加ページ分だけのバックアップで済むから」又は「差分バックアップでは毎日ページ数が増加していくから」です。採点講評では、一般論だけの理由は誤りとされています。表1や状況記述から読み取ったテーブルの更新特性を、30字以内に入れてください。
設問2(2)
方針(5)では、受注・出荷・発注・在庫管理の業務に影響するテーブルの回復を優先します。表1によると、“分析用データ”を参照するのはオンラインの“販売分析”だけで、これらの業務には影響しません。さらに状況記述(5)には、“分析用データ”は“分析用データ作成”を使えば、蓄積されている販売実績から再作成できると書かれています。“日別販売実績”も同じく販売実績のテーブルですが、“需要予測”と“発注対象データ作成”が参照しており、発注業務に影響します。公式解答例では、対象は“分析用データ”テーブルです。
設問2(3)
バックアップファイルが壊れていると、復元とロールフォワードは使えません。状況記述(4)(5)によると、“日別販売実績”と“月別販売実績”には直近3年分の販売実績が蓄積されています。“分析用データ”は“分析用データ作成”で、これらから再作成できます。公式解答例では「3年分の販売実績を基に,バッチプログラム“分析用データ作成”を再実行する」です。答案には、再作成の基となるデータ(3年分の販売実績)と、使うプログラム(分析用データ作成)の2点を、40字以内で入れます。
設問3(1)(ア)
不正になったのは、“出荷計上”が更新した“在庫”です。表1で“在庫”を参照するバッチは、“需要予測”と“発注対象データ作成”です。図1で“出荷計上”の後、先に完了しているのは“需要予測”です。“需要予測”は不正な“在庫”を基に“需要予測”テーブルを追加しています(CR)。そのため“需要予測”テーブルも不正です。公式解答例では、アは“需要予測”です。
設問3(1)(イ)
“需要予測”テーブルを復元したら、第1段階で正しくなった“在庫”を基に、“需要予測”テーブルを作り直します。公式解答例では、イは“需要予測”(バッチプログラム名)です。
設問3(1)(ウ)
“発注対象データ作成”は、不正な“在庫”が原因で中断しました。“発注対象データ”テーブル(C)は途中まで作られている可能性があります。また、このプログラムは“在庫”と“需要予測”も参照しています。そのため、“発注対象データ”も復元が必要です。公式解答例では、ウは“発注対象データ”です。
設問3(1)(エ)
“発注対象データ”テーブルを復元した後、正しい“在庫”と“需要予測”を基に、中断した“発注対象データ作成”を実行し直します。図1で“マスタ更新反映”は“発注対象データ作成”の完了を待ってから始まるため、第4段階で実行する流れになります。公式解答例では、エは“発注対象データ作成”です。
設問3(2)
再実行しない残りのバッチは、“受注明細書送信”“販売実績日次集計”“販売実績月次集計”“分析用データ作成”です。表1で参照するテーブルを確認すると、どれも“在庫”、“需要予測”、“発注対象データ”のいずれも参照していません。つまり、不正な内容の影響を受けていません。公式解答例では「“在庫”テーブルと,そのデータを反映したテーブルを参照しないから」などです。採点講評では、表1とスケジュールから影響範囲を見極めるよう指摘しています。答案には、不正の起点(在庫)と、そこから波及したテーブルを参照していないことを、40字以内で入れます。
学習のポイント
表1のC・Uと図1の実行順から、影響するテーブルとプログラムを特定する練習をしてください。増分と差分の選択では、ページの範囲とファイルの作られ方(毎回作成か置換か)をテーブルの更新特性と照らし合わせることが重点です。
出典:独立行政法人 情報処理推進機構(IPA)平成28年度春期 データベーススペシャリスト試験 午後Ⅰ 問2(公式資料:問題冊子(PDF) / 解答例 / 採点講評)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針