トランザクション処理 (全26問中22問目)
No.22
2台のPCから一つのファイルを並行して更新した。ファイル中の同一のデータ(データ1)に対する処理が①~④の順で行われたとき,データ1はどの値になるか。ここで,データ1の初期値は5であった。
出典:平成22年春期 問82
- 4
- 5
- 14
- 15
分類
テクノロジ系 » データベース » トランザクション処理
正解
ア
解説
ファイル内の(データ1)の値の変化に注目しながら①~④の処理を順番に見ていきましょう。
複数のクライアントが同じデータを更新しようとするときは、排他制御によって更新の順序を制御しないと、この例のように更新処理の消失現象が起こるおそれがあります。
- ① PC-Aがデータ1を読み込み、10を足す
- PC-Aは「5+10=15」を保持する(注:データ1が更新されるわけではありません)
- ② PC-Bがデータ1を読み込み、1を引く
- PC-Bは「5-1=4」を保持する(注:データ1が更新されるわけではありません)
- ③ PC-Aが①の結果(15)を、データ1に書き込む
- データ1の値は15になる
- ④ PC-Bが②の結果(4)を、データ1に書き込む
- データ1の値は4になる
複数のクライアントが同じデータを更新しようとするときは、排他制御によって更新の順序を制御しないと、この例のように更新処理の消失現象が起こるおそれがあります。