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

令和2年度10月 データベーススペシャリスト 午前Ⅱ 問11

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

問題

トランザクションの直列化可能性(serializability)の説明はどれか。

選択肢

  1. ア
    2相コミットが可能であり,複数のトランザクションを同時実行できる。
  2. イ
    隔離性水準が低い状態であり,トランザクション間の干渉が起こり得る。
  3. ウ
    複数のトランザクションが,一つずつ順にスケジュールされて実行される。
  4. エ
    複数のトランザクションが同時実行された結果と,逐次実行された結果とが同じになる。
解き方のヒントを見る

境界を見極める整合性の視点

トランザクションの境界と整合性を考えるときは、処理のまとまり、途中状態の扱い、複数処理の関係を切り分け、各操作がどの範囲で一貫して扱われるかを丁寧に確認します。

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

一つの処理単位として扱う範囲に注目し、開始から終了までに起こり得る状態変化と、途中で中断・失敗した場合に残る影響を整理して、整合性を検討してください。

視点

まず処理を意味のある単位に分解し、どの操作同士が同じまとまりに属するかを整理します。そのうえで、完了前の状態が外部から見える可能性や、他の処理との重なりが整合性にどう関係するかを考えます。

確認ポイント

  • 処理の開始点と終了点が、どの操作のまとまりとして定義されているか
  • 途中で失敗や中断が起きた場合に、未完了の状態が残る可能性を確認する
  • 同時に進む別の処理が、対象データや観測される状態に与える影響を整理する
正解と解説を見る

正解

エ

解説

直列化可能性とは、複数のトランザクションを同時実行した結果が、それらを一つずつ順番に実行した場合と同じになる性質です。

理由

トランザクションを同時実行すると、処理の操作が交互に行われることがある。直列化可能性が保たれていれば、その結果は何らかの順序で一つずつ実行した結果と同じになり、同時実行による不整合を防げる。

比較

2相コミットは分散トランザクションのコミットを調整する仕組みであり、隔離性水準は同時実行時の干渉の許容範囲を表します。単に順番に実行すること自体は、同時実行の結果が直列実行と等価かを評価する説明ではありません。

選択肢ア

これは不正解だよ。2相コミットは、複数の参加者に対してコミットやロールバックを調整する分散トランザクションの仕組みである。複数トランザクションを同時実行できるかどうかや、その結果が直列実行と等価になる性質を直接説明していない。

選択肢イ

これは不正解だよ。隔離性水準が低い場合は、トランザクション間の読み書きの干渉が起こりやすくなる。しかし、直列化可能性は隔離性水準が低い状態を意味するのではなく、同時実行の結果が直列実行と等価かどうかを示す性質である。

選択肢ウ

これは不正解だよ。複数のトランザクションを一つずつ順に実行する状態は、最初から直列実行であり、同時実行の結果を評価する直列化可能性の説明とは異なる。直列化可能性では、同時実行しても直列実行と同じ結果になることが重要である。

選択肢エ(正解)

これは正解だよ。直列化可能性は、複数のトランザクションを同時実行した結果が、それらを逐次的に一つずつ実行した場合の結果と同じになる性質を表す。したがって、同時実行による効率と、直列実行相当の整合性を両立できる。

学習のポイント

同時実行制御では、処理時間の短縮とデータ整合性を両立させる考え方を学ぶ。

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

関連する過去問一覧

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