SMITサービスマネージャ試験 午前Ⅱ

令和元年度秋期 ITサービスマネージャ 午前Ⅱ 問21

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

問題

トランザクション T₁、 T₂ の同時実行制御が適切に行われない場合に起こり得る,レコード X、 Y の変更消失問題 (lost update anomaly) に該当する処理はどれか。

選択肢

  1. ア
    T₁ が X と Y を参照しながら値の集計を行っている最中に,T₂ が X を更新した。
  2. イ
    T₁ が X を更新した後,コミットする前に,T₂ が X を参照したが,T₁ がロールバックした。
  3. ウ
    T₁ が X を追加した後,コミットする前に,T₂ が X を参照し,その値を使って Y を更新した。
  4. エ
    T₁ と T₂ が X をほぼ同時に参照し,その値に基づいて X を T₁、 T₂ の順番に更新した。
解き方のヒントを見る

更新順序から異常を見分ける視点

同時実行制御の問題では、複数の処理がどの順番でデータを読み書きし、途中の状態や確定後の値をどう扱っているかに注目して、処理間の関係を時系列で整理します。

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

確認する観点を、処理同士の読み取りと書き込みの時系列に絞ります。各処理がどの値を参照し、別の処理の結果によって最終状態がどう変わり得るかを順に追ってください。

視点

個々の処理の目的や値の大小だけで判断せず、読み取り・計算・書き込み・確定という流れを処理間で並べ、同じデータへの関与がどの時点で重なっているかを整理します。

確認ポイント

  • 各処理が対象データを読む時点と、書き戻す時点を時系列で並べる。
  • 参照した値が別の処理によって変更される前後関係を確認する。
  • 最終的に確定した状態が、どの処理の結果を反映しているかを追跡する。
正解と解説を見る

正解

エ

解説

変更消失問題は、複数のトランザクションが同じレコードを参照した後、それぞれの参照値に基づいて更新し、後の更新によって先の更新結果が失われる現象です。

理由

T₁とT₂が同じレコードXをほぼ同時に参照すると、両者が同じ元の値を基準に処理する可能性がある。その後、T₁の更新に続いてT₂が更新すると、T₁の変更がT₂の更新結果で上書きされ、T₁の変更が失われる。これが変更消失問題です。

比較

アは集計中に別トランザクションが更新するため、集計対象の値が処理中に変化する問題です。イはコミット前の変更を参照してからロールバックするため、未コミットデータの読み取りに当たる。ウも未コミットの追加結果を参照して別データを更新する処理であり、変更消失とは異なる。

選択肢ア

これは不正解だよ。T₁はXとYを参照して集計しているだけで、Xを更新していない。その途中でT₂がXを更新しても、T₁の更新結果がT₂によって上書きされる関係にはならないため、変更消失問題には該当しない。

選択肢イ

これは不正解だよ。T₁のコミット前にT₂がXを参照し、その後T₁がロールバックしている。T₂が未コミットの変更を読み取る処理であり、ロールバック後に無効となる値を参照する未コミットデータの読み取りに該当する。

選択肢ウ

これは不正解だよ。T₁が追加したXをT₂がコミット前に参照し、その値でYを更新している。未コミットのデータを別の更新処理に利用するため、後続処理への影響が問題となるが、同じXへの更新が上書きされる変更消失ではない。

選択肢エ(正解)

これは正解だよ。T₁とT₂がXをほぼ同時に参照すると、両者が同じ参照値に基づいて更新する可能性がある。その後、T₁の更新結果をT₂の更新が上書きすると、T₁による変更が失われるため、変更消失問題に該当する。

学習のポイント

同時実行制御では、参照値の古さと更新結果の上書きに注目する。

出典:独立行政法人 情報処理推進機構(IPA)令和元年度秋期 ITサービスマネージャ試験 午前Ⅱ 問21(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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