トランザクション時間を含むテーブルでは、変更または削除されたすべての行のスナップショット コピーが自動的にテーブル内に格納されます。このようなテーブルの特性を使用すると、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より後 |
これらの行を図で表現すると、次のようになります。