応用情報暗記無料で始める

トランザクションとログとは?とらんざくしょんとろぐ

トランザクションはACID特性(原子性・一貫性・独立性・耐久性)を満たす処理単位で、耐久性を支えるのがログ先行書出し(WAL)である。コミットが確定するのはデータページがディスクに書かれた時点ではなく、更新後ログがログファイルへ書き終わった時点であり、この一点がロールフォワードを成立させる。障害回復ではチェックポイント以降のログを走査し、コミット済みで未反映のトランザクションを更新後ログでREDO、未コミットのものを更新前ログでUNDOする。独立性は分離レベル(READ UNCOMMITTED〜SERIALIZABLE)で段階的に緩められ、緩めるほどダーティリード・ノンリピータブルリード・ファントムリードの順に異常が現れる代わりにスループットが上がる。

最終更新:2026-10-06

試験情報

応用情報技術者試験の過去問では7回出題され、ほかに4問の解説で触れられています(2016年度〜2024年度)。

応用情報技術者試験の頻出用語/テクノロジ系

別名:ロールバック、ロールフォワード

この語が出る過去問を解く →

背景

データベース本体への更新はディスク上の飛び飛びの位置への書込みになるため遅く、コミットのたびにデータページを確実に書いていては性能が出ない。かといって書かずに済ませれば、電源断で確定済みの取引が消える。この対立を、順次追記で速く書けるログだけを確実にディスクへ落とし、本体への反映は後回しにする、という形で解いたのがログ先行書出しである。コミットの確定点がログの書出し完了である理由も、障害回復がREDOとUNDOの二段構えになる理由も、すべてここから導かれる。分離レベルが段階的に用意されているのも同じ発想で、整合性と並行実行性能のどこで折り合うかを利用側に選ばせている。

具体例

Amazon RDSは自動バックアップと取得済みのトランザクションログから、指定した時刻の状態へ復元するポイントインタイムリカバリを提供することを公表している。実務でも同じ構造で、深夜バッチ中のディスク障害なら、前夜のフルバックアップを別ディスクから復元し、更新後ログでロールフォワードして障害直前まで進め、コミット前だった振替2件は更新前ログでロールバックする。この復旧が成立する前提は、データファイルとログファイルを別の物理ディスクに置いてあることで、同居させていると片方の障害で両方失う。

試験での引っ掛け

記述式で問われる境界は3つ。第一に、コミットの確定点は「ログの書出し完了」であって「データベース本体への反映完了」ではない(WALの理由を一行で言えるようにする)。第二に、REDOの対象はコミット済み・UNDOの対象は未コミットで、更新後ログと更新前ログの使い分けが逆になった選択肢が定番。第三に、チェックポイントを短くすると回復時間は縮むが通常時の書出し負荷は増える、というトレードオフ。また、独立性を保つロック方式では2相ロックが直列化可能性を保証する一方でデッドロックが起こりうるので、待ちグラフで検出してどちらかをロールバックする、という対処までが一続きの論点になる。2相コミットは分散トランザクションの合意手順であり、2相ロックとは別物である点も混同されやすい。

関連用語

出た過去問

問題文で直接問われたものと、解説の中で触れられたものが含まれます。

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では7回出題(2016年度〜2024年度)
  • 分野:テクノロジ系
  • 記述式で問われる境界は3つ。