二重テンポラル テーブルの変更 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - ANSIテンポラル テーブル サポート

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/ngt1556732962433.ditamap
dita:ditavalPath
ja-JP/ngt1556732962433.ditaval
dita:id
B035-1186
Product Category
Software
Teradata Vantage

二重テンポラル テーブルのsystem-time次元とvalid-time次元は相互に独立し、1つの重要な違いとともに、system-timeテーブルおよびvalid-timeテーブルにあるのと同様に影響を受けます。二重テンポラル テーブルでは、system-time次元でオープンの行(system-time期間終了境界にUNTIL_CLOSEDを持つもの)のみが変更に関与します。システム時間で行がクローズになると、データベースにおいてアクティブではなくなります。

system-time次元のため、二重テンポラル テーブルの行に対するすべての変更では、自動的にsystem-time次元にクローズ行が作成されます。さらに、変更を表わすための行がvalid-time次元で作成されることもあります。

例えば、二重テンポラル テーブル内の行が削除されると、system-time期間の終了境界値は、削除の時刻を反映するように自動的に変更され、それ以降は変更されないように行がクローズされます。system-time期間の変更後の終了境界値によって、行が削除されたというデータベースの実態が反映されます。

クローズ行のvalid-time期間は未変更のまま維持されます。行の削除はvalid-time期間の終了境界値に影響しないため、行の情報は削除の時点で延長されるvalid-time次元でその内容が維持されます。

二重テンポラル テーブルの行に対する更新の結果はさらに複雑ですが、独立して機能するsystem-time次元とvalid-time次元の考え方と完全に一致しています。

例えば、二重テンポラル テーブルのある行に契約条項が格納されているとします。契約が有効である期間中に条項が変更された場合は、行を更新する必要があります。このテーブルはテンポラル テーブルなので、Teradata Databaseは新しい条項を格納するための行のコピーを自動的に挿入します。新しい行のPVは、契約の変更時点から開始し、元の契約の終了期日に終了するように自動的に設定されます。新しい行のsystem-time期間の開始境界は、新しい行が作成されたときに反映され、system-time期間の終了は無期限で、UNTIL_CLOSEDに設定され、新たに追加された行が削除または変更されるまで残ります。

元の行は、古い条項が無効になったときに、PVの終了が変更の時点を反映するように自動的に変更されます。この行は、valid-time次元で履歴行になります。どちらの行もsystem-time次元ではオープン行のままになります。そのため、すべての種類のDML問合わせやDML変更で利用できる状態が保たれます。これらの変更は、単にテーブルのvalid-time次元についての結果です。

このテーブルにはsystem-time次元も含まれているため、元の有効期間を反映する元の行の別のコピーが作成されますが、これは契約条項が変更した時点でsystem-time次元においてクローズ行になります。これ以後、この行は変更できなくなります。これは、この行がシステム時間でクローズされているためです。この行は、元の行が変更前にデータベース内に存在していたときの、行の「以前の」スナップショットを永続的に提供します。

Teradata Databaseが行に対して自動的に実行するテンポラル操作には、独立したアクションが含まれることに注意する必要があります。これは、テーブルにsystem-time次元とvalid-time次元の両方が含まれるためです。

ANSI二重テンポラル テーブルの変更の詳細については、ANSI二重テンポラル テーブルの行の変更を参照してください。