処理一覧に示す実行順に,トランザクション1〜4を実行する。あるトランザクションが途中で異常終了し,トランザクションを中断してロールバックした結果,データAとデータBが残った。異常終了したトランザクションはどれか。ここで,トランザクションが正常終了したときにコミットを行い,次のトランザクションがあれば,それを実行する。異常終了したときは,当該トランザクション以降のトランザクションを実行しないものとする。 〔処理一覧〕
| 実行順 | トランザクション名 | 処理 |
| 1 | トランザクション1 | データAを作成する。 |
| 2 | トランザクション2 | データBを作成し,データAを削除する。 |
| 3 | トランザクション3 | データAを作成する。 |
| 4 | トランザクション4 | データBを削除する。 |
- アトランザクション1
- イトランザクション2
- ウトランザクション3
- エトランザクション4
正解と解説を見る
正解
エ トランザクション4
正解は「トランザクション4」である。処理を順に追うと、トランザクション1でデータAが作成され、トランザクション2でデータBが作成されデータAが削除される。ここまでコミットされると、存在するのはデータBのみである。続いてトランザクション3でデータAが再度作成され、この時点でデータAとデータBが揃う。最後にトランザクション4でデータBを削除する処理が行われるが、これが途中で異常終了しロールバックされたとすると、削除前の状態であるデータAとデータBの両方が残ることになり、設問の結果と一致する。トランザクション1〜3が異常終了した場合は、それ以降の処理が実行されず異なるデータの残り方になるため、いずれも該当しない。