テンポラル表 とは、システム時間 (またはトランザクションが記録される場合にはトランザクション時間)、ビジネス時間 (またはデータが実世界についての情報に関して有効な場合には有効時間)、あるいはその両方に関して行が有効な期間を記録する表です。
期間 とは、テンポラル表の 2 つの日付列または時刻列によって定義される期間です。期間には、開始列 と終了列 が含まれます。 開始列は期間の開始を示し、終了列は期間の終了を示します。 期間の開始値はその値を含みますが、期間の終了値は含みません。 例えば、開始列の値が 01/01/1995 の場合、この日付は行に含まれます。一方、終了列の値が 03/21/1995 の場合、この日付は行の期間に含まれません。
システム期間は、トランザクション発生時の期間を示す、システム保持の値が入った 2 つの列のペアで構成されます。 開始列の内容は、挿入操作または既存の行の更新操作による行作成時の日付またはタイム・スタンプの値です。 終了列には、行が有効でなくなった時点のタイム・スタンプ値が入ります。この値は、行が更新または削除された時点で入ります。
システム期間は、システム期間のデータのバージョン管理の点から重要です。システム期間のデータのバージョン管理とは、更新された行または削除された行が別の表にアーカイブされるように指定するものです。 表の現行のアクティブ行が含まれる表は、システム期間テンポラル表と呼ばれます。アーカイブされた行が含まれる表は、履歴表と呼ばれます。適切な権限を持っている場合には、行が不要になった際にそれらの行を履歴表から削除できます。
システム期間データ・バージョン管理を使用するよう基本表を定義する場合、 または既存の表に対してシステム期間データ・バージョン管理を定義する場合は、履歴表を作成し、履歴表の名前を指定した後で、その表を保持するための表スペースを作成する必要があります。
アプリケーション期間とは、実世界に関する情報に関連して行が有効な期間を示す、アプリケーション保持の値が入った 2 列のペアで構成されるものです。 開始列には、実世界のイベントまたは状態が始まるときに関する日付またはタイム・スタンプ値が入ります。 終了列には、行の有効期間の終了時点を示す値が入ります。 アプリケーション期間のみが設定されている表は、アプリケーション期間テンポラル表と呼ばれます。アプリケーション期間を使用する場合は、DB2 によって時間上の固有性を適用する必要があるかどうかを判別してください。主キーを作成し、そのキーの値が特定の期間において固有でなければならないということを指定できます。