令和6年度 秋期 データベーススペシャリスト試験 午前II 問15

トランザクション T1T_1 と T2T_2 の並行実行における不整合検索異状(inconsistent retrieval anomaly)の説明はどれか。

解答・解説

正解: イ. T1T_1 と T2T_2 が同時にデータ xx を読み,T1T_1 は xx を更新する。T2T_2 は更新前の xx の値に基づいてデータ yy を更新することによって,yy の値が xx の値に基づかなくなること

トランザクションの並行実行において発生する異常(アノマリー)についての問題です。

不整合検索異状(inconsistent retrieval anomaly)は、不整合分析(inconsistent analysis)とも呼ばれます。あるトランザクションが複数のデータを読み取って集計や処理を行っている最中に、別のトランザクションがそれらのデータを更新してしまうことで、データの整合性が取れなくなる(矛盾が生じる)現象を指します。

本問では、T1T_1 がデータ xx を更新している間に、T2T_2 が更新前の xx に基づいて別のデータ yy を更新してしまうことで、xx と yy の間に論理的な矛盾(不整合)が生じる状態がこれに該当します。

各選択肢の解説

  • ア: 誤りです。一方がコミットする前に他方が同じデータを更新する現象は、ダーティライト(または更新喪失の一因)と呼ばれます。
  • イ: 正解です。T2T_2 が更新前の古い xx の値を基に yy を更新することで、T1T_1 による xx の更新結果と矛盾が生じてしまうため、不整合検索異状の説明として適切です。
  • ウ: 誤りです。あるトランザクションがロールバックしたことにより、そのトランザクションが更新した未確定データを読み込んでいた他のトランザクションも連鎖的にロールバックしなければならなくなる現象は、カスケードロールバック(連鎖ロールバック)と呼ばれます。
  • エ: 誤りです。他のトランザクションが更新し、まだコミットしていない(確定していない)データを読み込んで処理してしまう現象は、ダーティリードと呼ばれます。

Spineチーム