あるトランザクション処理は、①共有領域から値を読み取り、②読み取った値に数値を加算し、③結果を共有領域に書き込む手順からなっている。複数のトランザクションを並列に矛盾なく処理するためには、トランザクション処理のどの時点で共有領域をロックし、どの時点でロックを解除するのが適切か。

更新の消失を防ぐには読取り前にロックし書込み後に解除する

ITパスポート2013年度 秋期67/データベース / トランザクション処理

時間の流れに沿った処理手順図。時点(a)の後に①共有領域から値を読み取り、時点(b)の後に②読み取った値に数値を加算、時点(c)の後に③結果を共有領域に書き込む、その後時点(d)となる。
時間の流れに沿った処理手順図。時点(a)の後に①共有領域から値を読み取り、時点(b)の後に②読み取った値に数値を加算、時点(c)の後に③結果を共有領域に書き込む、その後時点(d)となる。
共有領域のロック共有領域のロック解除
時点(a)時点(c)
時点(a)時点(d)
時点(b)時点(c)
時点(b)時点(d)

選択肢

正解と解説

正解: 時点(a)にロック、時点(d)に解除

読み取ってから書き込むまでの間に他のトランザクションが同じ領域を更新すると、加算結果が失われる(更新の消失)。これを防ぐには、読取りを始める前にロックを掛け、書込みが完了した後に解除する必要がある。書込み前の時点で解除すると、その隙に他の処理が古い値を読んでしまう。

選択肢ごとの解説

出典:平成25年度 秋期 ITパスポート試験 問67(IPA)

同じ分野の他の問題

最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。