コミット・ロールバックって何?トランザクション制御の基礎

※当サイトではアフィリエイト広告を利用し商品紹介を行っております

コミット・ロールバックって何?トランザクション制御の基礎 ITパスポートゆるっと勉強帳

銀行の振込やネット通販の注文など、システムでは「必ず正しく処理される」ことが求められます。
そこで登場するのが トランザクション処理
「途中で止まらない」「一貫性が保たれる」といった特性があり、障害が起きてもデータを守る仕組みが組み込まれています。

今回は、ITパスポート試験でも頻出の ACID特性、トランザクション制御、同時実行制御、障害回復 を整理して学びましょう。

スポンサーリンク

トランザクションとは

  • 一連の処理を「ひとまとめ」にしたもの。
    例:銀行振込 → 「残高引き落とし」+「振込先へ入金」
  • どちらか片方だけ成功するのはNG。必ずセットで処理される。

ACID特性

  • Atomicity(原子性):全部実行されるか、全く実行されないか(オールorナッシング)
  • Consistency(一貫性):処理前後でデータの整合性が保たれる
  • Isolation(独立性):同時に実行されても影響を受けない
  • Durability(耐久性):処理が完了したら障害があっても結果が残る

トランザクション制御

  • コミット:処理を確定させる
  • ロールバック:処理を取り消し、元に戻す
  • 2相コミットメント:分散処理でも矛盾が出ないようにコミットを確認

同時実行制御(排他制御)

  • アンロック:同時利用できるようにする制御
  • デッドロック:互いに資源を待ち合って処理が止まる状態

障害回復

  • チェックポイント:ある時点の状態を記録しておく
  • ロールフォワード(前進復帰):ログを使って直前の状態まで進める
  • ロールバック(後退復帰):障害前の状態に戻す

よくある質問(FAQ)

Q
コミットとロールバックの違いは?
A

コミットは確定処理、ロールバックは取り消しです。

Q
デッドロックはどう防ぐの?
A

処理の順序を工夫したり、タイムアウトを設定する方法があります。

Q
トランザクションは必ずACID特性を持つの?
A

基本的には持ちますが、最近は性能を重視してACIDを緩和したシステム(BASE理論など)もあります。

練習問題

Q1. 銀行振込で「残高引き落とし」だけ成功して「入金」が失敗した場合、どの特性に反する?
A. 原子性
B. 一貫性
C. 独立性
D. 耐久性

正解:

A
→ どちらも成功するか、どちらも失敗する必要があります。


Q2. トランザクションを確定させる処理はどれ?
A. ロールバック
B. コミット
C. チェックポイント
D. デッドロック

正解:

B
→ コミットが確定処理です。


Q3. 複数の処理が資源を待ち合って進まなくなる現象を何という?
A. ロールバック
B. アンロック
C. デッドロック
D. コミット

正解:

C
→ デッドロックは典型的な同時実行制御の問題です。

コメント

タイトルとURLをコピーしました