みならいノート

IT パスポート 2027年度版

トランザクション処理

みならいノートで覚える(無料)

このノートの問いがそのまま復習カードになり、忘れかけたころに出題されます。

シラバス案 Ver.0.1 の小分類 4-17-4「トランザクション処理」(大分類 4:デジタル技術/中分類 17:データベース)。
2026-09-26 にシラバス本文と突合済み。

0. 何を押さえるか

「途中で終わってはいけない処理」と「同時に行われる処理」を、どう矛盾なくさばくかという話です。

口座 A から B へ振り込むとき、「A から引く」と「B に足す」の片方だけが成立してはいけません。
この 2 つをまとめて 1 つの単位にしたものがトランザクションです。

トランザクションの終わり方は 2 通りしかありません。

いつ 結果
コミット 全部の処理が成功した 更新を確定する
ロールバック 途中で失敗した・取り消した 更新をなかったことにして開始前に戻す

同時実行の側では、排他制御(ロック)と、その副作用のデッドロックが対になっています。

何か
排他制御 使っている間、他の処理に触らせないことで矛盾を防ぐ
デッドロック 互いに相手のロックの解除を待ち合って、どちらも進めなくなる

1. トランザクションとは

根拠: シラバス 4-17-4

トランザクションとは?

分けられない 1 つのまとまりとして扱う、一連の処理

振込なら「A から引く」と「B に足す」で 1 トランザクション。

すべて成功するか、すべてなかったことにするかのどちらかでなければならない
(中途半端な状態を残さない)。

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

いつ行うか 何が起きるか
コミット トランザクションの処理がすべて成功したとき 更新を確定し、他の処理からも見えるようにする
ロールバック 途中でエラーが起きた/利用者が取り消したとき 更新をすべて取り消し、開始前の状態に戻す

振込で「A から引いた」後に「B に足す」が失敗したら、ロールバックで A の残高も元に戻す。
確定するか、なかったことにするか。

ACID 特性の 4 つとは?

意味
原子性(Atomicity) 全部実行されるか、全部取り消されるか
一貫性(Consistency) 処理の前後でデータの整合性が保たれる
独立性(Isolation) 同時に実行しても、互いの途中の状態に影響されない
耐久性(Durability) コミットした結果は障害が起きても失われない

原子性を実現するのがコミットとロールバック、
独立性を実現するのが同時実行制御(排他制御)。

2. 同時実行制御

根拠: シラバス 4-17-4

同時実行制御(排他制御)をしないと何が起きるか?

同じデータを 2 つの処理が同時に更新すると、片方の更新が消える。

在庫 10 個を、A と B が同時に読む。
A は 3 個出庫して 7 と書き、B は 2 個出庫して 8 と書く。
→ 正しくは 5 個なのに、後から書いた 8 が残る(A の更新が失われる)。

これを防ぐため、A が使っている間は B を待たせるのが排他制御。

共有ロックと専有ロックの違いは?

何のためにかけるか 他の処理は
共有ロック 読むため 読むことはできる/更新は待たされる
専有ロック(排他ロック) 更新するため 読むことも更新することも待たされる

読むだけの処理どうしは同時に進めてよいので、ロックを 2 種類に分けて
待ち時間を必要な分だけに抑える。

デッドロックとは? どう起きるか?

複数の処理が互いの資源の解放を待ち合い、どちらも進めなくなる状態

  • 処理 A が表 1 をロックし、表 2 を待つ
  • 処理 B が表 2 をロックし、表 1 を待つ

どちらも相手が離すのを待つので、永久に進まない。
排他制御をするからこそ起きる、副作用のような現象。

デッドロックの防ぎ方と、起きてしまったときの対処は?

方法
防ぐ どの処理も同じ順序で資源をロックする(表 1 → 表 2 の順に統一)
起きたとき 待ち合っている処理の片方をロールバックして資源を手放させ、やり直させる

順序が同じなら、「互いに相手の持ち物を待つ」輪ができない。

3. 障害からの回復

根拠: シラバス 4-17-4

バックワードリカバリとフォワードリカバリの違いは?

いつ使うか どうするか
バックワードリカバリ(ロールバック) トランザクションが途中で失敗した 更新前の記録を使って開始前に戻す
フォワードリカバリ(ロールフォワード) 記憶装置が壊れた バックアップに、更新後の記録を反映して障害直前まで進める

どちらもログ(更新の記録)を使う。
戻すにはログの更新前の値、進めるには更新後の値が要る。

チェックポイントとは? 何のためにあるか?

その時点までの更新内容を、記憶装置に確実に書き出す区切り

障害から回復するとき、チェックポイント以降のログだけを見ればよいので、
最初からすべてをやり直さずに済む。

回復にかかる時間を短くするための仕組み。

このノートの 9 問を、暗記カードで復習できます

みならいノートで覚える(無料)

答えを隠して出題し、忘れそうなころにもう一度出します。

前 データ操作
機械学習 次

このノートは無償で公開しています。当方は内容の正確性・完全性・最新性を保証しません。学習にあたっては、法令の原文・公式の出題範囲その他の一次資料を必ずご確認ください。試験への合格その他の効果を保証するものでもありません。

本文の転載・再配布はお断りしています(利用規約)。手元に置いて使いたい方は、ストアから Markdown ファイルとして入手できます。