dポイントプレゼントキャンペーン実施中!

コンピュータの勉強をしているのですが、ロールフォワードとロールバックの違いは何でしょうか?

A 回答 (3件)

データベースでは一つのトランザクションが複数の表(あるいは行)を更新するのが普通です。


何らかの原因でトランザクション処理が中断(中止)された場合、複数の表の間に矛盾が生じることは避けなければいけません。
方法は一つ、更新前ジャーナルを使ってトランザクション開始前に戻すことです。これがロールバックです。

次にデータベース処理の高速化のためにジャーナルやデータベース更新情報をメモリーにバッファリングした場合です。
バッファーが蒸発する危険性がありますので時々全書き込みをやってバッファーを空にします。これがチェックポイントです。

ことが起こればジャーナルで最新のチェックポイントまでロールバックし、そのあとトランザクション終了ジャーナルを見つけて
終了ジャーナルがあればそこまで更新後ジャーナルで前進(ロールフォワード)し、
終了ジャーナルが見つからない場合トランザクション開始ジャーナルまで更新前ジャーナルで後退(ロールバック)をします。

重ねて言いますがトランザクション開始ジャーナルの所まで戻すのがロールバック、
トランザクション終了ジャーナルのところまで進めるのがロールフォワードです。

これらのことは原子性という言葉で表せます。Wikipediaによると

Atomicity トランザクションに含まれるタスクが全て実行されるか、あるいは全く実行されないことを保証する性質をいう。日本語ではアトミック性または原子性とも呼ばれる。 口座Aから口座Bに対し1万円送金する場合を考えたとき、送金操作は次の2操作によって行われる。

口座Aの残高から1万円を引く
口座Bの残高に1万円を加える
Atomicityが保証されるとは、上の操作1、2が全て行われるか、あるいは全く行われないことを指す。どちらか片方だけが実行された場合、銀行全体の預金残高に矛盾が発生してしまう。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

お礼日時:2009/07/14 17:59

Google画像検索

http://images.google.com/

で,キーワード「ロールフォワード ロールバック」を検索しましょう。図解つきのページがいくつもヒットするはずです。

分かりやすそうな解説ページを探していくつか目を通してみてください。

その上で,それでも不明な点があれば「このWebページの,この文章の意味が分からないのですが」と改めて質問を投げてみればよいでしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

お礼日時:2009/07/14 17:59

ロールフォワードは、データベースの更新中に障害が発生した時に、データを障害発生直前までさかのぼり、そこから処理を再開することです。



ロールバックは、データベースのトランザクション処理に於いてデータ更新の一貫性が保てない状態となった時、トランザクション開始前のデータに戻す処理をいいます。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

お礼日時:2009/07/14 17:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す