16.20 - 例: 注文数増加前の割引率引き下げの発生 - Teradata Vantage NewSQL Engine

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

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1182-162K-JPN

それぞれのトランザクションには、次に示す特徴があるとします。

時間 注文数増加トランザクション 割引率引き下げトランザクション
開始時刻 2009-01-05 2009-01-02
変更時刻 2009-01-10 2009-01-03
終了時刻 2009-01-11 2009-01-04

割引率引き下げが、注文数増加の開始前に終了していることに注目してください。

これらのトランザクションが完了した後のPartsテーブルとOrdersテーブルの状態を次に示します。

割引率引き下げトランザクション後のPartsテーブル:

Part_ID Supplier_ID Price Discount Part_Validity
P1 S1 $10 10% (2008-01-01, 2009-01-02)
P1 S1 $10 5% (2009-01-02, 2011-01-01)

このテーブルの元の状態では、P1行がCURRENTトランザクションの対象となります。これは、P1行の有効時間がTEMPORAL_DATEと重なるためです。

さらに、PartsテーブルのP1行が変更されます。これは、OrdersテーブルのP1行がトランザクションのWHEREテスト(quantity < 100)を満たすためです。

PartsテーブルのP1行への変更により、変更前の行の状態を示す履歴行が残されます。最初の行の終了時刻と2番目の行の開始時刻は、どちらも変更時点でのTEMPORAL_DATEでタイムスタンプが設定されていることに注目してください。

注文数増加トランザクション後のOrdersテーブル:

Order_ID Part_ID Quantity Order_Validity
O1 P1 60 (2008-01-01, 2011-01-01)

行は変更されません。これは、注文数増加トランザクションの時点での現在の時刻が2009-01-05であるためです。この現在の時刻を使用すると、Partsテーブルの2番目の行のみがトランザクションの対象となりますが、この行はWHEREテスト(discount >= 10)を満たしません。これは、先行する割引率引き下げトランザクションで変更が実施されているためです。