アプリ版:「スタンプのみでお礼する」機能のリリースについて

データベースを扱う時に、データを上書きや更新したいときに、
「万一、その作業に失敗したときに、直前の状態に戻せるように、現状のデータを保全しておく」
ことを何と言いますか?

まあ、こういうと
「そんなのカンタンだよ、バックアップだよ。そんなことも知らんの? これだからとーしろーはまったく・・・」

というようなお答えが返ってきそうですね。
ええ、まあ、バックアップなのでしょうけど、バックアップ、というとすべてのデータを丸ごとコピーをとって
「●月●日終業時点のバックアップ」
みたいな、「全部丸ごと」のイメージがありますよね。

そうではなくて、データベースの、その中の1レコードの、その中のこれまた1アイテムだけを
変更、編集、更新したいときに
「データを消しました。
 新しいデータで上書きします。
 あ! 新しいデータがデータ破損してしまっています
 このデータでは書き込みができません!
 じゃあ、仕方ないから元のデータを復旧させて、エラーログを吐き出して終わりましょう。
 あ! 元のデータはさっき、消してしまいました!
 データを書き込む事も、元に戻すこともできません。
 データが空っぽになっちゃいましたね、
 ははは、テヘ、ペロ」

テヘペロじゃねえよ! データを更新する前に現状データを取り出して万一に備えとけよ!
そんな基本的なこともわかんねえのかよ!

というような、
「データ更新したい部分だけを、更新作業正常終了するまでの間、保全しておく作業」
の事を、(広義ではバックアップでしょうけど)ピンポイントでは何と言いますか?

コンピュータの一般用語でお願いします。
(特定のシステム、特定のメーカーだけで通用する用語の場合はそれを付記してください)

データベースに詳しい方、お願いします。

A 回答 (3件)

一般に、DBMSでレコードに更新を行う際には、DBMS内部で以下のように動きます。

排他制御は今回のストーリーに直接関係ないので省略します。

1.更新前の行イメージをログ(ジャーナルともいう)に書く
2.更新後の行イメージをログに書く
3.データ領域の該当部分を更新する
4.同期点(トランザクションの最後)で同期点ログを書く

1と2を合わせて「ロギング」か「ジャーナリング」ですね。
1は「更新前ログ」か「更新前ジャーナル」。
用語がログかジャーナルかはベンダーや製品次第ですが、最近は「ジャーナル」がメジャーな気がします。
4の前にロールバックが発生したら1を読み出してデータ領域を更新前に戻します。
製品によっては、「x月x日のx時事点の内容に戻す」事もログが残っていれば可能です。

上記は論理的な手順ですが、実際にはメモリ上でロギングして、ストレージには同期点まで全く何も書かないような実装もあります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2024/05/07 10:50

ジャーナル(ジャーナリング)ですかね?

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ジャーナル、ですね。

お礼日時:2024/05/03 13:55

それはトランザクションではないですか。

    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
トランザクション、ですか。
わかりました。

お礼日時:2024/05/03 10:18

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

このQ&Aを見た人はこんなQ&Aも見ています

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


このQ&Aを見た人がよく見るQ&A