トランザクションの管理と並行制御
トランザクション管理とは、複数の処理をまとまった単位として扱い、障害からの回復と同時実行時の整合性を保つ仕組みである。トランザクションの性質はACID特性で表され、同時実行の制御にはロックを用いる方式が基本になる。試験では、ACID特性の意味、障害時のロールフォワードとロールバックの判断、ロックの競合と待ちの関係が頻出するため、それぞれの判断基準を一つずつ押さえることが要点になる。
ACID特性と整合性の保証
ACID特性は、原子性、一貫性、独立性、耐久性の四つの性質を指す。原子性は、トランザクション内の処理がすべて実行されるか、失敗した場合には全体が取り消されるかのどちらかになる性質である。一貫性は、整合性の取れたデータベースに対してトランザクションを実行した後も、整合性が保たれる性質を指す。独立性は、同時に実行されるトランザクションが互いの中間状態に影響されないように処理される性質を表し、耐久性は、コミット済みの変更が障害後にも保持される性質を表す。実際の問題でも、ACID特性の四つは原子性、一貫性、独立性、耐久性であり、可用性はこれに含まれないと示されていた。
障害回復の判断基準
障害からの回復では、チェックポイントの時点と、そのあとにコミットされたトランザクションの扱いが判断の基準になる。チェックポイントより前にコミット済みの更新は、データベースに既に反映されているため、再適用の対象にはならない。チェックポイント以後にコミットされたトランザクションは、障害時に更新が失われている可能性があるため、ロールフォワードによって更新内容を再適用する。一方、障害時にまだコミットされていないトランザクションは、途中まで行った更新を取り消すロールバックの対象となる。更新を伴わないトランザクションは、取り消すべき内容も再適用すべき内容もないため、どちらの対象にもならない。実際の問題でも、読取りだけのトランザクションはロールバックの対象ではないと整理されていた。
この節の続き
- 同時実行制御とロックの競合
- デッドロックの成立条件
- 実際の場面
- 試験で問われやすい区別
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む