従来のデータベース システムでは、テーブル内に格納されたデータは、現時点において有効であるとみなされます。従来のテーブルは現在の状態のスナップショットに限定されるため、これらのテーブルでは過去に存在していたデータは保持されず、また未来に有効になるデータも保持されません。テンポラル データベースを使用すれば、テンポラル データ型を提供して、過去、現在、または未来に関する情報を格納することによって、特定の時点に関連付けられたデータを格納することができます。 例えば、テンポラル データベース システム内にあるテーブルには、一年の各月の終わりの在庫レベルに関するデータを格納することができます。 データの時間の次元をテーブル内に格納することによって、履歴および将来の傾向についてのクエリーを直接実行することができます。
日時 | 説明 |
---|---|
ValidTime |
ある一定の期間を使用して現実の世界に基づいてモデル化されたデータ。この期間の間、ある1つの事実(行)は現実の世界において真(有効)です。テーブル内のDATEまたはTIMESTAMPの列の値では、ある事実が有効であることがわかっている時間を定義します。 |
TransactionTime |
ある一定の期間を使用したデータ。この期間は、ある1つの事実(行)がデータベース内に記録(コミット)された時点から始まり、この事実が更新、ロールバック、または削除によって置き換えられた時点で終わります。テーブル内のTIMESTAMP列の値では、この事実のトランザクション時間を定義します。 |
<table selection = "included"> <name>Employee_BT_1</name> <target_database> <name>MyDatabase</name> </target_database> </table>
force_utilityが指定されていない場合、Data Moverはテンポラル テーブルのコピー時にTeradata DSAを自動的に選択します。DSAが使用不能な場合は、Teradata PT updateオペレータが選択されます。Teradata PTの使用を強制すると、Teradata PT updateオペレータがコピー方法として選択されます。DSAを使用してデータベース全体をコピーすると、ソースのすべてのテンポラル テーブルがターゲットにコピーされます。テンポラル テーブルをコピーする場合、ターゲット システムのテンポラル テーブルの名前変更または再配置、あるいはテンポラル テーブルの部分コピーを行なうこともできます。
<NONSEQUENCED VALIDTIME> <AND> <NONSEQUENCED TRANSACTIONTIME> SELECT * FROM Source_Table;non-sequencedクエリーでは、テンポラル列に対して特別な意味は適用されません。テンポラル列は他の通常の列として処理されます。したがって、開いているか閉じているかにかかわらず、現在、過去、および将来の行がすべてターゲットにコピーされます。
テンポラル テーブルのプライマリ キー制約は、システム定義の結合インデックスによって維持されます。このシステム定義の結合インデックスは、テーブルの作成時にTeradata Databaseによって自動的に生成されます。テンポラル テーブルをコピーする場合、システム定義の結合インデックスを個別にコピーする必要はありません。DSAは、システム定義の結合インデックス設定をコピーします。他のコピー方法では、テーブルがすでに存在する場合、システム定義の結合インデックスがターゲットにすでに存在します。テーブルがジョブの一部として作成される場合は、自動的に生成されます。
- allowTPtLoadForMultiset属性がtrueに設定されていない場合のTPT API LOADオペレータを使用したコピー。
- テンポラル テーブルとそのシステム定義の結合インデックスを別の項目としてコピー(テンポラル テーブルのみのコピーではない)。