Transaction
Transaction
Transaction(トランザクション)とは
ひとことで
データベースに対する、ひとまとまりで行うべき一連の処理の単位。例えば振込では「Aの口座から引く」と「Bの口座に足す」を一つのトランザクションとし、すべて成功させるか、すべて取り消すかのどちらかにする。
たとえると
自動販売機で「お金を入れる」「商品が出る」は必ずセットです。お金だけ取られて商品が出なかったら、お金を返さなければいけません。途中で止まったら最初の状態に戻すのがトランザクションの考え方です。
現場ではこう使う
大学生がネットバンキングで友人にお金を振り込んだ瞬間、銀行のシステムに障害が起きました。自分の口座からお金が引かれたのに友人の口座に入っていない状態になるのではと心配しましたが、銀行のシステムは振込を一つのトランザクションとして扱っており、処理が完了しなかったため取り消され(ロールバック)、残高は元のままでした。
試験のポイント
EXAM POINT処理を確定させる「コミット」、途中で失敗したときに処理前の状態に戻す「ロールバック」、障害後にバックアップと更新記録(ログ)を使って復元する「ロールフォワード」が問われます。同時に同じデータを更新して矛盾が起きないようにする「排他制御(ロック)」と、互いにロックの解除を待って処理が止まる「デッドロック」もセットで押さえましょう。