テンポラル データ型 - Advanced SQL Engine - Teradata Database

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

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/cjo1556732840654.ditamap
dita:ditavalPath
ja-JP/cjo1556732840654.ditaval
dita:id
B035-1182
Product Category
Software
Teradata Vantage

Teradataでは、PERIODデータ型のデータ型 レベルでのテンポラル テーブル サポートを提供しています。PERIODとは固定期間のことであり、期間内で連続する時間単位を表現します。PERIODには、開始境界値(開始要素の値で定義)と、終了境界値(終了要素の値で定義)があります。開始要素と終了要素は、DATE、TIME、またはTIMESTAMPの、どのタイプにすることもできますが、両方を同じタイプにする必要があります。

PERIODで表現する期間は、開始境界値から始まり、終了境界値まで続きます。ただし、終了境界値は含みません。

要素型がDATEまたはTIMESTAMPの場合、終了境界値にはUNTIL_CHANGEDという特別な値を指定できます。この値をTeradata Databaseは、PERIODの終了境界値が永久(つまり、無期限)であると解釈します。

Policyテーブルにテンポラル テーブル サポートを追加する最初の手順として、保険会社のアプリケーションでは、各行がいつ有効かを記録するためのPERIOD(DATE)列を含むPolicyテーブルを作成します。

CREATE TABLE Policy(
   Policy_ID INTEGER,
   Customer_ID INTEGER,
   Policy_Type CHAR(2) NOT NULL,
   Policy_Details CHAR(40),
   Validity PERIOD(DATE)
   )
PRIMARY INDEX(Policy_ID);

このPolicyテーブルは非テンポラル テーブルですが、アプリケーションではVantageがPERIODタイプに提供する組込みのサポートを使用できます。このサポートには、PERIODのコンストラクタ、リテラル、演算子、関数および述部が含まれます。

たとえば、テーブルに行を追加する場合、アプリケーションではPERIODのコンストラクタを使用してValidity列の値を指定します。

INSERT INTO Policy
   (Policy_ID, Customer_ID, Policy_Type, Policy_Details, Validity)
   VALUES (541008, 246824626, 'AU', 'STD-CH-345-NXY-00',
           PERIOD(DATE '2009-10-01', UNTIL_CHANGED));

特定の日付から有効になる行をPolicyテーブルから取得する場合、アプリケーションでは次に示すようにBEGIN関数を使用します。

SELECT * FROM Policy WHERE BEGIN(Validity) = DATE '2010-01-01';