データベースの説明で、
「トランザクションは重要」と言われることは多いものの、
何を守っているのかが曖昧なまま使われがちです。
応用情報技術者試験では、
トランザクションを
単なる仕組みではなく、
守る対象を理解しているかという視点で出題されます。
この回では、
トランザクションが何を守っているのかを、
応用情報視点で整理します。
トランザクションが守っているもの
トランザクションが守っているのは、
データの正しさそのものではありません。
正確には、
- 処理の途中で止まっても
矛盾した状態を残さないこと - 複数の処理が同時に動いても
整合性が崩れないこと
です。
応用情報では、
この「状態を守る」という考え方が重要になります。
ACID特性は暗記では足りない
ACID特性は、
応用情報ではおなじみのキーワードです。
- Atomicity
- Consistency
- Isolation
- Durability
しかし、
言葉を覚えているだけでは不十分です。
それぞれが、
どんな事故を防ぐために存在しているのか
を理解しているかが問われます。
応用情報でよく出る場面
午後問題では、
- 処理の途中で障害が発生する
- 同時更新が起きる
- 一部の更新だけが反映される
といった状況が描かれます。
ここで、
「どこまでが一つのトランザクションか」
を見抜けるかが、
正解への分かれ道になります。
トランザクションを大きくしすぎると
トランザクションは、
大きくすれば安全そうに見えますが、
問題も生まれます。
- ロック時間が長くなる
- 同時処理の性能が落ちる
- デッドロックのリスクが増える
応用情報では、
守る範囲と性能のバランス
を考えさせる問題が出題されます。
実務とのつながり
実務でも、
- どこまでを一括で処理するか
- 途中で失敗したらどう戻すか
といった判断が必要になります。
応用情報は、
その判断を感覚ではなく、
構造として考える訓練です。
まとめ
- トランザクションは状態の一貫性を守る
- ACIDは事故を防ぐための性質
- 応用情報は範囲と影響を問う試験
トランザクションを見るときは、
「何を守り、何を犠牲にしているか」
を意識することが重要です。
次回予告
次回は、
「排他制御はどこで必要になるのか」
を扱います。
同時処理の話に進みます。


コメント