DBデータベーススペシャリスト試験 午前Ⅱ

平成31年度春期 データベーススペシャリスト 午前Ⅱ 問2

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

次のチェックポイントの仕様に従ってトランザクション処理を行うDBMSにおいて,チェックポイントの発生頻度は1時間当たり何回か。ここで,トランザクションは毎秒20件発生し,1トランザクションごとに消費されるデータベースバッファ領域のデータ量及びログファイルに書き出すログ長はどちらも10kバイトとする。データベースバッファ領域の容量は480Mバイトとし,一つのログファイルのサイズは240Mバイトとする。1Mバイト=10³kバイトとする。開始時点では,データベースバッファ領域,ログファイルともに初期化状態であるとする。DBMSは,ログファイルを二つもち,一方を使い切ったら他方に切り替え,使い切った一方をアーカイブして初期化する。ログファイルへの書込み処理はWALプロトコルに従う。 〔チェックポイントの仕様〕 1. チェックポイントが発生する条件 A. データベースバッファ領域に空きがなくなったとき,又は B. ログファイルが切り替わるとき 2. チェックポイント終了時のデータベースバッファの状態 データベースバッファ領域は,データベースファイルへの反映後,初期化される。

選択肢

  1. ア
    1.5
  2. イ
    2
  3. ウ
    3
  4. エ
    6
解き方のヒントを見る

境界設計から整合性を読む

トランザクションの境界に注目し、どの処理を一つの単位として扱うか、その途中で失敗や同時実行が起きた場合に整合性をどう捉えるかを整理しましょう。個々の操作だけでなく全体の状態に目を向けます。

この問題で問われていること

確認する観点を「処理のまとまりと整合性の関係」に絞り、開始から終了までに守るべき状態、途中で中断した場合の扱い、他処理との関係を順に見比べます。境界の置き方にも注意します。

視点

トランザクションは、複数の操作を一つの処理単位として捉えるための枠組みです。境界の内外を区別し、途中状態が他の処理から見える可能性や、失敗時にどの状態を残す想定かを整理すると、整合性に関する論点を比較しやすくなります。

確認ポイント

  • 一つの処理単位に含める範囲を確認する
  • 途中状態が他の処理へ影響する可能性を考える
  • 失敗や中断が起きた場合に守るべき整合性を整理する
正解と解説を見る

正解

ウ

解説

1トランザクション当たりの消費量はデータベースバッファ、ログともに10kバイトです。ログは20件/秒で240Mバイトに達するため、切替まで1200秒、すなわち20分かかる。バッファは480Mバイトに達するまで2400秒だが、その前にログ切替条件でチェックポイントが発生する。したがって、1時間当たりの発生回数は3600秒÷1200秒=3回となる。

理由

1秒当たりの消費量は、20件/秒×10kバイト=200kバイト/秒です。ログファイルの容量は240Mバイト=240000kバイトなので、切替までの時間は240000kバイト÷200kバイト/秒=1200秒です。WALによりログへの書込みが先行し、ログ切替時にチェックポイントが発生する。

比較

データベースバッファが満杯になる時間は、480Mバイト=480000kバイトとして、480000kバイト÷200kバイト/秒=2400秒です。一方、ログ切替は1200秒ごとに起きるため、バッファ満杯より先にチェックポイント条件が成立する。1時間は3600秒なので、3600秒÷1200秒=3回となる。

選択肢ア

これは不正解だよ。1.5回/時は、バッファ容量480Mバイトを消費速度200kバイト/秒で使い切る場合の2400秒、つまり40分間隔に対応する。しかし実際には、ログ容量240Mバイトが1200秒、つまり20分で満杯になり、先にログ切替条件が成立するため、この値にはならない。

選択肢イ

これは不正解だよ。2回/時ならチェックポイント間隔は3600秒÷2=1800秒、つまり30分となる。ところが、ログは240000kバイト÷200kバイト/秒=1200秒で使い切るため、ログ切替による条件成立は30分より短い間隔で起こる。したがって公式条件と一致しない。

選択肢ウ(正解)

これは正解だよ。消費速度は20件/秒×10kバイト=200kバイト/秒で、ログ1本の容量240Mバイトは240000kバイトである。切替時間は240000÷200=1200秒となる。1時間3600秒に1200秒の区間は三つあるため、発生頻度は3回/時である。

選択肢エ

これは不正解だよ。6回/時ならチェックポイント間隔は3600秒÷6=600秒、つまり10分である。しかしログ1本を使い切るには240000kバイト÷200kバイト/秒=1200秒、20分かかる。問題文に示されたログ容量と消費速度からは、10分間隔は導けない。

学習のポイント

複数の発生条件がある場合は、それぞれの成立時間を比較する。

出典:独立行政法人 情報処理推進機構(IPA)平成31年度春期 データベーススペシャリスト試験 午前Ⅱ 問2(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針