データベース
平成25年度 秋期 基本情報技術者試験 午前 問31
“商品”表に対して,更新 SQL 文を実行するトランザクションが,デッドロックの発生によって異常終了した。異常終了後の“商品”表はどれか。ここで,“商品”表に対する他のトランザクションは,参照は行うが更新はしないものとする。
商品表(更新前):
〔更新SQL文〕
DELETE FROM 商品 WHERE 商品コード = 'B020'
| 商品コード | 商品名 | 販売単価 |
|---|---|---|
| A010 | AAA | 2,500 |
| B020 | BBB | 1,000 |
| C030 | CCC | 4,500 |
- ア [表] 商品コード/商品名/販売単価:A010/AAA/2,500,B020/NULL/1,000,C030/CCC/4,500
- イ [表] 商品コード/商品名/販売単価:A010/AAA/2,500,B020/BBB/1,000,C030/CCC/4,500
- ウ [表] 商品コード/商品名/販売単価:A010/AAA/2,500,C030/CCC/4,500
- エ [表] 商品コード/商品名/販売単価:B020/BBB/1,000
出典:平成25年度 秋期 基本情報技術者試験 午前 問31
答えと解説を見る
正解:イ
覚える知識
トランザクションのACID特性
原子性は、トランザクションの処理が全て実行されるか、全く実行されなかったことになるかのどちらかであることを保証する。
この問題で必要なこと
原子性により、デッドロック等で異常終了したトランザクションはロールバックされ、更新前の状態に戻る。DELETE文も取り消される。
ひっかけ
途中までの更新(NULL化)や削除が残ると考える誤り。
この知識の出題:本試験系 7 回・免除試験 9 回(公開問題での観測値)