トランザクション時間を含むテーブルでは、変更または削除されたすべての行のスナップショット コピーが自動的にテーブル内に格納されます。このようなテーブルの特性を使用すると、SQLだけでテーブルの以前の状態を復元できます。これを利用することで、テーブルやテーブルのセットがユーザーの過ちで破損されたときに、一貫性のある状態に復元しなければならない場合などの、局所的な問題から素早く回復できるようになります。
トランザクション時間を含むテーブルを、現在の時刻よりも以前の時点(time X)の状態に復元する必要があるとします。テーブル内の行は、その行の状態(オープンまたはクローズ)と、transaction-time列の期間とtime Xとの関係に基づいて分類されます。
行 | 行の状態 | BEGIN(TT) トランザクション時間の開始 |
END(TT) トランザクション時間の終了 |
---|---|---|---|
1 | Open(開く) | time Xより前 | UNTIL_CLOSED |
2 | Open(開く) | time Xと等しい | UNTIL_CLOSED |
3 | Open(開く) | time Xより後 | UNTIL_CLOSED |
4 | クローズ | time Xより前 | time Xより前 |
5 | クローズ | time Xより前 | time Xと等しい |
6 | クローズ | time Xより前 | time Xより後 |
7 | クローズ | time Xと等しい | time Xより後 |
8 | クローズ | time Xより後 | time Xより後 |
これらの行を図で表現すると、次のようになります。