• 検索結果がありません。

ANSIテンポラル表サポート

N/A
N/A
Protected

Academic year: 2021

シェア "ANSIテンポラル表サポート"

Copied!
112
0
0

読み込み中.... (全文を見る)

全文

(1)

Teradata Database

ANSI テ ンポ ラル表サポー ト

Release リ リ ース 15.0 B035-1186-015K-JPN 2014 年 4 月

(2)

Teradata、 Active Data Warehousing、 Active Enterprise Intelligence、 Applications-Within、 Aprimo Marketing Studio、 Aster、 BYNET、 Claraview、 DecisionCast、 Gridscale、 MyCommerce、 SQL-MapReduce、 Teradata Decision Experts、 Teradata Labs ロ ゴ、 Teradata Raising Intelligence ロ ゴ、 Teradata ServiceConnect、 Teradata Source Experts、 WebAnalyst、 および Xkoto は、 Teradata Corporation ま たはその関 連会社の米国お よ びその他の国におけ る 商標ま たは登録商標です。

Adaptec および SCSISelect は、 Adaptec, Inc. の商標ま たは登録商標です。 AMD Opteron およ び Opteron は、 Advanced Micro Devices, Inc. の商標です。

Apache、 Apache Hadoop、 Hadoop、 および黄色い象の ロ ゴは、 Apache Software Foundation の米国およ びその他の国におけ る登録商 標ま たは商標です。

Apple、 Mac、 およ び OS X すべては、 Apple Inc. の登録商標です。

Axeda は、 Axeda Corporation の登録商標です。 Axeda Agents、 Axeda Applications、 Axeda Policy Manager、 Axeda Enterprise、 Axeda Access、 Axeda Software Management、 Axeda Service、 Axeda ServiceLink、 および Firewall-Friendly は、 Axeda Corporation の商標であ

り 、 Maximum Results および Maximum Support は、 Axeda Corporation の役務商標です。

Data Domain、 EMC、 PowerPath、 SRDF、 およ び Symmetrix は、 EMC Corporation の登録商標です。 GoldenGate は、 Oracle の商標です。

Hewlett-Packard および HP は、 Hewlett-Packard Company の登録商標です。

Hortonworks、 Hortonworks ロ ゴおよびその他の Hortonworks 商標は、 Hortonworks Inc. の米国およびその他の国におけ る商標です。 Intel、 Pentium、 およ び XEON は、 Intel Corporation の登録商標です。

IBM、 CICS、 RACF、 Tivoli、 および z/OS は、 International Business Machines Corporation の登録商標です。 Linux は、 Linus Torvalds の登録商標です。

LSI は、 LSI Corporation の登録商標です。

Microsoft、 Active Directory、 Windows、 Windows NT、 および Windows Server は、 Microsoft Corporation の米国およびその他の国にお け る 登録商標です。

NetVault は、 Dell, Inc. の米国ま たはその他の国におけ る商標ま たは登録商標です。 Novell およ び SUSE は、 Novell, Inc. の米国およびその他の国におけ る登録商標です。 Oracle、 Java、 およ び Solaris は、 Oracle ま たはその関連会社の登録商標です。 QLogic および SANbox は、 QLogic Corporation の商標ま たは登録商標です。

Quantum およ び Quantum ロ ゴは、 Quantum Corporation の商標であ り 、 米国およびその他の国で登録 さ れています。

Red Hat は、 Red Hat, Inc. の商標であ り 、 米国およびその他の国で登録 さ れています。 ラ イ セン ス に基づいて使用 さ れます。 SAS および SAS/C は、 SAS Institute Inc. の商標ま たは登録商標です。

SPARC は、 SPARC International, Inc. の登録商標です。

Symantec、 NetBackup、 およ び VERITAS は、 Symantec Corporation ま たはその関連会社の米国およ びその他の国におけ る商標ま た は登録商標です。

Unicode は、 Unicode, Inc. の米国およびその他の国におけ る登録商標です。 UNIX は、 The Open Group の米国およ びその他の国におけ る登録商標です。 その他記載 さ れてい る 製品名お よ び企業名は、 各社の商標です。 本書に記載 さ れてい る 情報は、 「現状の ま ま」 提供 さ れ、 商用お よ び特定の用途での使用に対す る 適合性、 ま た は権利侵害がない こ と に関す る 暗黙的な保証を含め、 明示的ま たは暗黙的なすべての保証は一切あ り ません。 部の法域では暗黙的保証の除外を許可 し ないため、 上記制限が適用 さ れない こ と があ り ます。 いかな る 場合 も TERADATA CORPORATIONは、 逸失利益ま たは逸失財産を含む、 あ ら ゆ る 間接的、 直接的、 特殊、 付随的、 ま たは 必然的な損害に対 し 、 た と えその よ う な損害の可能性を明示的に通知 さ れていた と し て も 、 責任を負 う こ と はあ り ません。 本書に記載 さ れてい る 情報は、 日本では発表 さ れていないか も し く は利用で き ない機能、 製品やサービ ス を参照ま たは相互参照 し てい る 場合があ り ます。 こ れ ら の参照は、 必ず し も Teradata Corporation が日本で こ れ ら の機能、 製品やサービ ス を発表する意図 があ る こ と を意味す る も のではあ り ません。 日本で利用可能な機能、 製品やサービ ス については、 日本テ ラ デー タ 株式会社の担 当者に確認 く だ さ い。 本書に記載 さ れてい る 情報には、 技術的に不正確な記述ま たは誤植が含まれてい る 可能性があ り ます。 本書の情報は、 予告な し に変更ま たは更新 さ れ る 場合があ り ます。 ま た、Teradata Corporation は、 本書に記載 さ れてい る製品やサービ ス を随時予告な し に 改良ま たは変更す る こ と がで き ます。 製品お よ びサービ ス の品質を維持す る ため、 本書の正確性、 明瞭性、 構成、 有用性について コ メ ン ト を頂け る と 幸いです。 次の ア ド レ ス に E メ ールで連絡 く だ さ い。teradata-books@lists.teradata.com。

Teradata Corporation に送 ら れた コ メ ン ト や資料 ( 「フ ィ ー ド バ ッ ク 」 と 総称する ) は、 機密情報 と は見な さ れません。 Teradata Corporation は、 フ ィ ー ド バ ッ ク に関し ていかな る種類の義務 も 負わず、 フ ィ ー ド バ ッ ク と その派生物を無償で制限な し に使用、 複製、 開示、 公開、 表示、 変換、 派生物の作成、 お よ び配布で き る も の と し ます。 さ ら に、Teradata Corporation は、 その よ う な フ ィ ー ド バ ッ ク に含まれ る 、 あ ら ゆ る 考え、 概念、 ノ ウ ハ ウ や技術を、 フ ィ ー ド バ ッ ク を組み込んだ製品やサービ ス の開発、 製 造、 ま たは販売を含め、 ど の よ う な目的にで も 自由に使用で き る も の と し ます。

(3)

ま えがき

目的

ANSIテ ン ポ ラ ル表のサポー トでは、 ANSI テ ンポ ラ ル ( 時間を認識する ) 表 と デー タ のTeradata Database に よ る サポー ト の理解に必要な基本的な概念を説明 し ます。 こ のマニ ュ アルでは、 SQL 言語の参照資料、 ANSI 準拠のテ ンポ ラ ル表を実際に作 成 し て操作す る 例を紹介 し ます。 ANSI 準拠のテンポ ラル表 と は異な る機能を持つ、 Teradata 独自のテンポ ラル表の詳 細については、< テンポラル表サポー ト > を参照して く ださい。 2 つのテンポラル ・ パラ ダ イ ムの相違については、「ANSI テ ンポ ラ ル と Teradata テ ンポ ラ ル」 (24 ページ )を 参照 し て く だ さ い。 Teradata 独自のテ ンポ ラ ル表で使用する ほ と んどのテ ンポ ラ ル修飾子 と 問合わせ構 文は、 ANSI テ ンポ ラ ル表で も 使用で き ます。

対象読者

タ ス ク ベースお よ び参照ベース の資料は、 主に、 時間ベース の操作が可能なデー タ ベース の設計お よ び保守を行な う 技術担当者を対象 と し てい ます。 概念ベース の資 料は、 タ ス ク ベースお よ び参照ベース の資料をサポー ト す る だけでな く 、 Teradata Database 環境におけ る テ ンポ ラ ル表サポー ト の意味を よ り 深 く 理解する こ と に興味 のあ る ユーザーに も 役立ち ます。

サポー ト さ れる ソ フ ト ウ ェ ア ・ リ リ ース と オペ レ ー テ ィ ン

グ ・ シ ス テム

こ のマニ ュ アルは、 Teradata® Database 15.0 用です。 Teradata Database 15.0 は、 以下のオペレーテ ィ ン グ ・ シ ス テ ムでサポー ト さ れてい ます。

• SUSE Linux Enterprise Server 10 SP3 • SUSE Linux Enterprise Server 11 SP1

Teradata Database ク ラ イ ア ン ト ・ アプ リ ケーシ ョ ンは他のオペレーテ ィ ン グ ・ シ ス テ ムに対応 し てい ます。

(4)

前提条件

前提条件

基本的な リ レーシ ョ ナル ・ デー タ ベース の技術、 Teradata Database の概念、 およ び SQL について精通 し てい る必要があ り ます。

こ のマ ニ ュ アルの改訂内容

追加情報

リ リ ース 説明 Teradata Database 15.0 2014 年 4 月 初期 リ リ ース URL 説明

www.info.teradata.com/ 「Teradata Information Products Publishing Library」 サ イ ト で は、 英語版について以下が可能です。

• マニ ュ アルを表示ま たはダ ウ ン ロー ド し ます。

1 [Downloadable Publications] で [General Search] を 選択 し ます。

2 検索基準を入力 し て[Search] を ク リ ッ ク し ます。 • マニ ュ アル CD-ROM を ダ ウ ン ロ ー ド し ます。

1 [Downloadable Publications] で [General Search] を 選択 し ます。

2 [Title or Keyword] フ ィ ール ド で CD-ROM と 入力し、 [Search] を ク リ ッ ク し ます。

www.teradata.com Teradata ホームページには、 Teradata に関する情報を得る ための リ ン ク が多数用意 さ れてい ます。 次の リ ン ク があ り ます。 • エグゼ ク テ ィ ブ ・ レ ポー ト 、 ホ ワ イ ト ・ ペーパー、 Teradata 導入企業の事例研究、 およ び ソ ー ト ・ リ ー ダーシ ッ プ • 技術情報、 ソ リ ューシ ョ ン、 お よび専門的ア ド バ イ ス • プ レ ス ・ リ リ ース、 関連記事、 およ び メ デ ィ ア ・ リ ソ ース

(5)

製品の安全に関す る 情報 製品お よ びサービ ス の品質を維持す る ため、 本書の正確性、 明瞭性、 構成、 有用性 について コ メ ン ト を頂け る と 幸いです。 次のア ド レ ス に E メ ールで連絡 く だ さ い。 teradata-books@lists.teradata.com

製品の安全に関す る 情報

こ のマニ ュ アルには、 デー タ ま たは器物破損に関す る 、 製品の安全対策に関す る 情 報が 「注記」 と し て記載 さ れてい る こ と があ り ます。 「注記」 は、 対策を講 じ ない 場合、 装置やデー タ な ど 器物への破損が生 じ かねな い状況 を 示 し ま す。 た だ し 、 人身傷害を引 き 起 こ す こ と はあ り ません。 例: 注記 : Reconfiguration ユーテ ィ リ テ ィ を不適切に使用する と 、 データ が失われるおそれが あ り ます。

Teradata Database のオ プ シ ョ ン機能

こ のマニ ュ アルには、 Teradata Database の以下のオプシ ョ ン機能 と 製品に関する説 明が含まれてい る 場合があ り ます。 • Teradata Columnar

• Teradata QueryGrid: Teradata Database-to-Hadoop

• Teradata QueryGrid: Teradata Database-to-Oracle Database • Teradata 行レベル ・ セキ ュ リ テ ィ

• Teradata Temporal

• Teradata Virtual Storage (VS)

www.teradata.com/t/TEN/ Teradata Customer Education では、 ユーザーに よ る Teradata への投資を最大限ま で活かす こ と がで き る よ う にす る ため、 ユーザーの技術 と 能力を確立す る ための ト レーニ ン グ を行な っ てい ます。

tays.teradata.com/ Teradata @ Your Service を利用すれば、 オ レ ン ジ ・ ブ ッ ク 、 テ ク ニ カル ・ ア ラ ー ト 、 ナ レ ッ ジ ・ リ ポジ ト リ の参 照、 フ ォ ー ラ ムの閲覧 と 参加、 ソ フ ト ウ ェ ア ・ パ ッ チの ダ ウ ン ロ ー ド を行な う こ と がで き ます。

developer.teradata.com/ Teradata Developer Exchange では、 Teradata 製品の使い方、 技術検討フ ォー ラ ム、 コ ー ド のダ ウ ン ロ ー ド な ど の コ ー ナーを提供 し てい ます。

(6)

Teradata Database のオプシ ョ ン機能 こ れ ら の機能は適切な ラ イ セ ン ス がない と 使用で き ません。 こ れ ら の機能が製品 メ デ ィ アに含まれていた り 、 ダ ウ ン ロ ー ド で き た り し て も 、 ま たは入手 し た資料で説 明 さ れていた と し て も 、 適切な ラ イ セン ス な し ではそれ ら の機能を使用で き ません。 オプシ ョ ン機能の購入お よ び有効化については、 Teradata 営業担当者ま でご連絡 く だ さ い。

(7)

目次

ま えがき

. . . .3 目的 . . . 3 対象読者 . . . 3 サポー ト さ れ る ソ フ ト ウ ェ ア ・ リ リ ース と オペレーテ ィ ン グ ・ シ ス テ ム . . . 3 前提条件 . . . 4 こ のマニ ュ アルの改訂内容 . . . 4 追加情報 . . . 4 製品の安全に関す る 情報 . . . 5 Teradata Database のオプシ ョ ン機能 . . . 5

1 章 : ANSI テ ンポ ラル表サポー ト の概要

. . . 11 テ ン ポ ラ ル ・ デー タ ベース . . . 11 時間表現の必要性 . . . 11 テ ン ポ ラ ル列 . . . 12 テ ン ポ ラ ル問合わせ と 変更 . . . 13

2 章 : ANSI テ ンポ ラルの基本概念

. . . 15 派生 PERIOD 列 . . . 15 シ ス テ ム時間 と 有効時間 . . . 15 UNTIL_CLOSED および UNTIL_CHANGED . . . 18 テ ン ポ ラ ル行の タ イ プ . . . 19 テ ン ポ ラ ル表への行の挿入 . . . 20 テ ン ポ ラ ル表への問合わせ . . . 20 テ ン ポ ラ ル表の変更 . . . 21 タ イ ム ス タ ンプ . . . 24 ANSI テ ンポ ラ ル と Teradata テ ンポ ラ ル . . . 24 ANSI 規格の例外 . . . 25

(8)

3 章 : ANSI System-Time 表を利用する

. . . .27

ANSI シ ス テ ム時間表の作成 . . . 28

CREATE TABLE (ANSI System-Time 表フ ォーム ) . . . 28

ALTER TABLE (ANSI System-Time 表フ ォーム ) . . . 31

INSERT (ANSI シ ス テ ム時間表フ ォーム ) . . . 35 テ ン ポ ラ ル表へのデー タ のバル ク ロ ー ド. . . 35 ANSI System-Time 表への問合わせ . . . 37 FROM 句 (ANSI シ ス テ ム時間表フ ォーム ) . . . 37 ANSI シ ス テ ム時間表の行の変更. . . 42 DELETE (ANSI シ ス テ ム時間フ ォーム ) . . . 42 UPDATE (ANSI シ ス テ ム時間フ ォーム ) . . . 45 System-Time 表への ト リ ガーの定義 . . . 47 HELP および SHOW 文. . . 48 カー ソ ルお よ び ANSI System-Time 表への問合わせ . . . 48

4 章 : ANSI Valid-Time 表を利用する

. . . .51 ANSI Valid-Time 表の作成 . . . 52

CREATE TABLE (ANSI Valid-Time 表フ ォーム ) . . . 52

ANSI Valid-Time 表の基本キー と 固有性制約 . . . 55

ANSI Valid-Time 表のテ ンポ ラ ル参照制約 . . . 56

テ ン ポ ラ ル関係制約. . . 57

CREATE TABLE ... AS (ANSI Valid-Time 表フ ォーム ) . . . 59

ALTER TABLE (ANSI Valid-Time 表フ ォーム ) . . . 60

INSERT (ANSI Valid-Time 表フ ォーム ) . . . 63

テ ン ポ ラ ル表へのデー タ のバル ク ロ ー ド. . . 63

ANSI Valid-Time 表への問合わせ . . . 64

FROM 句 (ANSI Valid-Time 表フ ォーム ) . . . 64

ANSI Valid-Time 表の行の変更 . . . 68

DELETE (ANSI Valid-Time 表フ ォーム ) . . . 68

UPDATE (ANSI Valid-Time 表フ ォーム ) . . . 71

Valid-Time 表への ト リ ガーの定義 . . . 73

HELP および SHOW 文. . . 74

(9)

5 章 : ANSI 二重テ ンポ ラル表を利用する

. . . 77

ANSI 二重テ ンポ ラ ル表の作成 . . . 78

CREATE TABLE (ANSI 二重テ ンポ ラ ル表形式 ) . . . 78

ANSI 二重テ ンポ ラ ル表の基本キーおよ び固有性制約 . . . 80

ANSI 二重テ ンポ ラ ル表のテ ンポ ラ ル参照制約 . . . 81

ALTER TABLE (ANSI 二重テ ンポ ラ ル表形式 ) . . . 83

INSERT (ANSI 二重テ ンポ ラ ル表形式 ) . . . 87 テ ン ポ ラ ル表へのデー タ のバル ク ロ ー ド . . . 87 ANSI 二重テ ンポ ラ ル表への問合わせ . . . 88 FROM 句 (ANSI 二重テ ンポ ラ ル表形式 ) . . . 88 ANSI 二重テ ンポ ラ ル表の行の変更 . . . 90 DELETE (ANSI 二重テ ンポ ラ ル表形式 ) . . . 91 UPDATE (ANSI 二重テ ンポ ラ ル表形式 ) . . . 94

6 章 : 管理

. . . 97 シ ス テ ム ・ ク ロ ッ ク . . . 97 テ ン ポ ラ ル表の容量に関す る 計画 . . . 97 テ ン ポ ラ ル表のアーカ イ ブ . . . 99

付録

A: 構文図の読み方

. . . 101 構文図のルール . . . 101

付録

B: transaction-time 表の ANSI system-time 表への変換

. . . 107

Teradata テ ンポ ラ ル表 . . . 107

方法1: 既存の transaction-time 表を変更する . . . 108

方法2: transaction-time 列が派生 PERIOD の場合、 新 し い表に INSERT ... SELECT する . . . 109

方法3: transaction-time 列が Period データ 型の場合、 新 し い表に INSERT ... SELECT する . . . 110

(10)
(11)

1 章 :

ANSI テ ンポ ラル表サポー ト の概要

こ の章では、 Teradata Database での ANSI テ ンポ ラ ル表サポー ト の概要について説 明 し ます。

テ ン ポ ラ ル ・ デー タ ベース

テ ン ポ ラ ル ・ デー タ ベース は、 期間や時間に関係す る デー タ を格納 し ます。 こ の デー タ ベース はテ ン ポ ラ ル ・ デー タ ・ タ イ プ を提供 し 、 過去、 現在お よ び将来に関 連す る 情報を格納 し ます。 た と えば、 株価の推移や、 組織内の従業員の異動につい ての情報な ど を格納 し ます。 テ ン ポ ラ ル ・ デー タ ベース は時間に関連す る デー タ を 保守 し て、 時間をベース に し た判断を実行で き る 点で従来型デー タ ベース と は異な り ます。 従来型デー タ ベース は、 現時点での事実の ス ナ ッ プシ ョ ッ ト のみを捕捉 し ます。 た と えば、 従来型デー タ ベース では、 過去の ス テー タ ス に関す る 履歴の問合わせを 直接サポー ト る こ と はで き ません。 ま た、 本質的に過去に遡っ た変更や、 将来の変 更を表現す る こ と はで き ません。 DBMS に組込まれたテ ンポ ラ ル表サポー ト がない と 、 多 く の場合は手動に よ る 複雑な手法を使用 し て、 アプ リ ケーシ ョ ン側でテ ン ポ ラ ル情報の管理 と 保守を実行 し なければな ら な く な り ます。

時間表現の必要性

アプ リ ケーシ ョ ンに よ っ ては、 時間経過に伴っ て情報が変化す る デー タ ベース の設 計や構築が必要にな る 場合があ り ます。 こ れはテ ン ポ ラ ル表サポー ト な し で も 可能 ですが、 複雑な も のにな り ます。 次に示す よ う に定義 さ れた Policy 表 ( こ こ では保険契約の Policy 表 ) を使用する、 保険会社のアプ リ ケーシ ョ ンについて考え てみます。

CREATE TABLE Policy( Policy_ID INTEGER, Customer_ID INTEGER, Policy_Type CHAR(2), Policy_Details CHAR(40) )

UNIQUE PRIMARY INDEX(Policy_ID);

こ の ア プ リ ケーシ ョ ン では、 Policy 表の行で表わ さ れ る ポ リ シーが有効にな る 時 期を記録す る 必要があ る と し ます。 方法の1 つに、 DATE 型列を Start_Date と い う Policy 表に追加する方法があ り ます。 アプ リ ケーシ ョ ンで、 ポ リ シーの期限が切れ た こ と も 知 る 必要があ る 場合は、 対応す る End_Date 列を追加で き ます。

(12)

テ ン ポ ラ ル列

こ の表の新 し い定義は、 次の よ う にな り ます。

CREATE TABLE Policy( Policy_ID INTEGER, Customer_ID INTEGER, Policy_Type CHAR(2), Policy_Details CHAR(40) Start_Date DATE, End_Date DATE )

UNIQUE PRIMARY INDEX(Policy_ID);

ただ し 、 何点かの複雑 さ が伴い ます。 例えば、 あ る 顧客が保険契約の有効期間中に その保険契約を変更す る と 、 新 し い保険契約の条件を格納す る 新 し い行の作成が必 要にな り ます。 その保険契約の条件は、 保険契約が変更 さ れた時点か ら 保険契約が 終了す る ま で有効にな り ます。 ただ し 、 変更前の保険契約の条件 も 、 履歴を残すた めに重要にな り ます。 元の行は保険契約の開始時点で有効だ っ た条件を表わ し ま す が、 保険契約がいつ無効に な っ た かではな く 、 保険契約の条件がいつ変更 さ れた か を反映 さ せ る ために、 元の行の End_Date を更新する必要があ り ます。 さ ら に、 こ の種の変更に よ っ て複数の行が同 じ Policy_ID の値を保持する こ と にな り 、 こ の表の基本索引に変更が必要にな り ます。 こ の表に ど の よ う な変更を加え る に し て も 、 Start_Date 列 と End_Date 列の明示的な変更について考慮 し なければな ら な く な り ます。 問合わせは さ ら に複雑化 し ます。 表内に DateTime 型列が 1 つ以上あ る だけでは、 表はテ ンポ ラ ル表にな ら ず、 デー タ ベース はテ ン ポ ラ ル ・ デー タ ベース にな り ません。 テ ン ポ ラ ル ・ デー タ ベース で は、 企業が管理す る 情報の時間依存性を記録す る 必要があ り ます。

Teradata Database は、 ANSI 準拠のテ ンポ ラ ル表に対し て組み込みのサポー ト を提供 し ます。 標準 SQL 構文に基づいたテ ンポ ラ ル変形版に よ り 、 時間の経過 と 共に変 化す る デー タ の作成、 改造、 問合わせ及び変更を行な う こ と がで き ます。 問合わせ と 変更には、 時間次元を参照す る テ ン ポ ラ ル修飾子を含め る こ と がで き ます。 テ ン ポ ラ ル修飾子は、 デー タ に対す る 基準ま たはセ レ ク タ と し て機能 し ます。 こ の問合 わせや変更は、 時間の基準を満たすデー タ にのみ作用 し ます。 テ ン ポ ラ ル列 と テ ン ポ ラ ル文は、 次第に変化す る 情報を表わす こ と がで き る アプ リ ケーシ ョ ンの作成を促進 し ます。

テ ン ポ ラ ル列

Teradata は、 派生PERIOD列を使用 し て、 列レベルでテ ン ポ ラ ル表をサポー ト し ま す。 PERIOD と は固定期間の こ と であ り 、 期間内で連続す る 時間単位を表現 し ま す。 表の2 つの DateTime 型列で定義 さ れ る開始および終了境界値があ り ます。 テ ン ポ ラ ル表では、 開始お よ び終了境界値の列の値は3 番目の派生列に組み合わせ ら れます。 こ の列は、 こ れ ら の値に よ っ て区切 ら れ る 期間を表わ し ます。 保険会社のアプ リ ケーシ ョ ンは、 各保険契約 ( 行 ) が有効な期間を記録する ための 派生PERIOD 列を持つ Policy 表を作成で き る よ う にな り ます。

(13)

テ ン ポ ラ ル問合わせ と 変更

CREATE TABLE Policy( Policy_ID INTEGER, Customer_ID INTEGER,

Policy_Type CHAR(2) NOT NULL, Policy_Details CHAR(40), Policy_Begin DATE NOT NULL, Policy_End DATE NOT NULL,

PERIOD FOR Policy_Duration(Policy_Begin,Policy_End) AS VALIDTIME )

PRIMARY INDEX(Policy_ID);

派生PERIOD 列は内部で使用 さ れます。 Teradata Database に よ り 、 各行の値が表の 定義に基づいて、 自動的に作成お よ び維持 さ れます。 デー タ は、 派生 PERIOD 列に 明示的に挿入 さ れず、 その列自体が返 さ れた り 問い合わ さ れた り する こ と はあ り ま せん。

INSERT INTO Policy

(Policy_ID,Customer_ID, Policy_Type, Policy_Details, Policy_Begin, Policy_End)

VALUES (541008,246824626,'AU','STD-CH-345-NXY-00', DATE'2009-10-01',DATE'2010-10-01');

SELECT * FROM Policy;

Policy_ID Customer_ID Policy_Type Policy_Details Policy_Begin Policy_End - - - --- -- 541008 246824626 AU STD-CH-345-NXY-00 2009/10/01 2010/10/01

テ ン ポ ラ ル問合わせ と 変更

Teradata Database では、 行に関連付け ら れた期間に基づいて問合わせを評価で き る テ ン ポ ラ ルSQL をサポー ト し ます。 • AS OF 問合わせでは、 特定時点で有効な行のみが考慮 さ れます。

• BETWEEN time1 AND time2 問合わせでは、 特定の期間に重な る か直後に続 く 期 間の行のみが考慮 さ れます。

• FROM time1 TO time2 問合わせは、 BETWEEN ... AND 問合わせに似てい ますが、 特定の期間の後に続 く が重な ら ない行は含まれません。

• CONTAINED IN(time1, time2) 問合わせは、 指定の期間内にあ る期間の行を評価し ます。

た と えば、 次の よ う にな り ます。

SELECT Customer_ID, Policy_type FROM Policy

FOR VALIDTIME AS OF DATE’2009-11-24’; Customer_ID Policy_Type

246824626 AU

(14)

テ ン ポ ラ ル問合わせ と 変更

テ ン ポ ラ ルの DELETE と UPDATE の変更には、 行の期間をいつ変更する か、 ま た は削除がいつ有効かを指定す るFOR PORTION OF 修飾子を含め る こ と がで き る た め、 こ の よ う な変更は行全体に一括 し た方法で適用す る 必要はあ り ません。 注 : Teradata Database は、 演算子、 関数、 述部を含めた PERIOD データ 型を豊富に サポー ト し てお り 、 こ れ ら を使用 し て、 同様の結果を返す こ と がで き ます。 ただ し 、PERIOD データ型、 PERIOD 関数 (BEGIN、 END、 LAST、 INTERVAL)、 PERIOD 述部演算子MEETS は、 ANSI 標準 SQL ではあ り ません。

関連情報

詳細情報 参照先 PERIOD データ 型およ び派生PERIOD 列 • SQL デー タ ・ タ イ プお よ び リ テ ラ ル • SQL 関数、 演算子、 式お よ び述部

(15)

2 章 :

ANSI テ ンポ ラルの基本概念

こ の章では、 Teradata Database ANSI テ ンポ ラ ル表サポー ト に関連する重要な概念 と 用語を定義 し ます。 テ ン ポ ラ ル表は、 時間に関す る 情報を格納 し て保守す る 表です。 テ ン ポ ラ ル表を使 用す る と 、 時間ベース の判断を含む文や問合わせを、 Teradata Database で処理で き る よ う にな り ます。 ANSI テ ンポ ラ ル表には、 別の時間次元を表わす、 特別に派生 し た列が 1 つか 2 つ含まれます。 こ れ ら の次元は、 別々の用途に使用 さ れます。

派生

PERIOD 列

派生PERIOD 列は、 表の他の列にあ る DateTime データ か ら 派生 し ます。 派生 PERIOD 列は、 表定義で指定する こ と がで き、 データベースで動的に保守さ れます。 ANSI テ ンポ ラ ル表には、 1 つか 2 つの派生 PERIOD 列があ り 、 別の種類の時間を 表わす こ と がで き ます。 こ れ ら の派生 PERIOD 列は、 2 つの通常の DateTime 型の 列か ら の値を組み合わせ、 2 つの コ ンポーネン ト 列の値で区切 ら れた期間ま たは継 続時間を表わ し ます。 CREATE および ALTER TABLE 文の特殊な SQL DDL 構文で は、 これら の派生 PERIOD 列を指定し てテンポ ラル表を作成する こ と ができ ます。 注 : 派生 PERIOD 列で表現する期間は、 開始境界値か ら 始ま り 、 終了境界値ま で続

き ます。 ただ し 、 終了境界値は含みません。

派生PERIOD 列は、 Teradata Database に備え ら れた PERIOD デー タ 型列 と 非常 に似た形で機能 し ま す。 PERIOD データ 型は、 ANSI と 互換性があ り ません。 ANSI SQL:2011 規格に対する Teradata の拡張機能です。 Teradata Database は、 関数、 演算 子、 お よ び述部 を 含む、 PERIOD デー タ 型の豊富なサポー ト を提供 し てい ま す。

こ れ ら の多 く は、 派生テ ン ポ ラ ル列で使用で き ます。 PERIOD 関数 BEGIN、 END、 LAST、 INTERVAL、 および PERIOD 述部演算子 MEETS は、 標準の ANSI SQL では あ り ません。

シ ス テム時間 と 有効時間

静的な時間に関連す る デー タ を表に追加す る には、 DATE や TIMESTAMP な ど、 DateTime データ 型を保持する よ う に定義 し た列を表に追加 し ます。 こ の よ う な表 は、 テ ン ポ ラ ル表 と はみな さ れません。 行デー タ に変更が加え ら れた と き に、 時間 値がデー タ ベース に よ っ て自動的に管理 さ れないためです。 テ ン ポ ラ ル表には、 テ ン ポ ラ ル次元を表わす派生PERIOD 列が 1 つか 2 つ含まれま す。 こ れ ら 2 つの次元は独立 し てお り 、 別々の用途に使用 さ れます。

(16)

シ ス テ ム時間 と 有効時間

シ ス テム時間

シ ス テ ム時間 と は、 現在ま たは過去に行内にあ っ た情報がデー タ ベース に把握 さ れ てい る 期間の こ と です。 シ ス テ ム時間を含む表で行が追加、 変更、 削除 さ れ る と 自 動的に記録 し て、 デー タ ベース の実態を反映 し ます。 シ ス テム時間の期間は、 SYSTEM_TIME と い う 名前の派生 PERIOD 列で表わされます。 • シ ス テ ム時間の期間の開始境界は、 データベース が行を認識する よ う にな っ た 時刻です。 こ れは、 各行が表に追加 さ れた時刻を記録 し ます。 • シ ス テ ム時間の期間の終了境界は、 既存の行にあ る情報がいつ変更 さ れたか、 ま たは行がいつ表か ら 削除 さ れたか を反映 し ます。 現在有効な情報を含む行に は、 終了境界値が無期限のシ ス テ ム時間の期間があ り 、 通常 こ れはシ ス テ ム ・ タ イ ム ス タ ン プの最大値(9999-12-31 23:59:59.999999+00:00) と し て表わ さ れ ます。 派生シ ス テ ム時間の PERIOD 列の開始およ び終了境界値であ る コ ンポーネン ト TIMESTAMP 列の値を設定ま たは変更する こ と はで き ません。 Teradata Database は、 シ ス テ ム時間表が作成 さ れてシ ス テ ムのバージ ョ ン情報が設定 さ れ る と 、 こ れ ら の 値を自動的に保守 し ます。 ( こ の文書では、 すべてのシ ス テ ム時間表が、 シ ス テ ム のバージ ョ ン情報を付け る よ う に作成 さ れてい る こ と を仮定 し てい ます。 こ れは、 テ ン ポ ラ ル表の動作に必要です。 ) system-time 次元を含む表に対する あ ら ゆ る変更は、 データベース に よ っ て追跡記録 さ れます。 シ ス テ ム時間表の物理行が削除 さ れ る こ と はあ り ません。 ま た、 それ ら の実質的なデー タ が こ れ ら の表で変更 さ れ る こ と も あ り ません。 • 行が明示的にシ ス テ ム時間表か ら 削除 さ れた場合、 行は表に残 り ますが、 シ ス テ ム時間終了境界の値には タ イ ム ス タ ンプが設定 さ れ、 削除の時刻が反映 さ れ ます。 • シ ス テ ム時間表で行が変更 さ れた場合、 元の値を持つ元の行は論理的に削除 さ れますが、 物理行は表に残 り ます。 元の行のシ ス テ ム時間の期間の終了境界の 値には タ イ ム ス タ ンプが設定 さ れ、 変更の時刻が反映 さ れます。 新規ま たは変 更 さ れた値を持つ行の コ ピーは自動的に表に挿入 さ れ、 そのシ ス テ ム時間開始 境界には変更時刻の タ イ ム ス タ ンプが設定 さ れます。 シ ス テ ム ・ タ イ ム ス タ ンプの最大値 よ り も 小 さ い終了境界を持つシ ス テ ム時間表行 は 「 ク ロ ーズ」 と 見な さ れ、 デー タ ベース内で変更で き な く な り ます。 こ れ ら の行 は表に残 り 、 表の行に対 し て何が行なわれたかの内部履歴を提供 し ます。 シ ス テ ム 時間表の過去の状態は、 すべて再現で き ます。 ク ロ ーズ行はほ と ん ど の DML 変更 で使用で き ません。 表定義を変更す る と 直ちにすべての ク ロ ーズ行が物理的に表か ら 永久に削除 さ れ る こ と に よ り 、 表か ら 物理的に削除す る こ と がで き る のみです。 変更の履歴を自動的に追跡記録 し てデー タ ベース内に維持す る 必要があ る 場合、 シ ス テ ムのバージ ョ ンが設定 さ れてい る シ ス テ ム時間表を使用 し ます。 例えば、 シ ス テ ム時間表は、 あ る 種の法令順守に使用す る こ と がで き ます。 シ ス テ ム時間表の詳細については、第3 章 : 「ANSI System-Time 表を利用する」 を 参照 し て く だ さ い。

(17)

シ ス テ ム時間 と 有効時間 シ ス テムのバージ ョ ン設定 シ ス テ ム時間表を テ ン ポ ラ ル表 と 見な し 、 シ ス テ ム時間テ ン ポ ラ ル表の自動 タ イ ム ス タ ンプ機能お よ び追跡機能の動作特性を含め る には、 表定義でシ ス テ ムのバー ジ ョ ン設定を持つ よ う に指定 し てお く 必要があ り ます。 表にテ ン ポ ラ ル機能を与え る のがシ ス テ ムのバージ ョ ン情報です。 特に注意書 き がない限 り 、 本書では説明の 都合上、 「シ ス テ ム時間」 表 と い う 場合、 暗黙的に 「シ ス テ ム ・ バージ ョ ンが設定 さ れてい る シ ス テ ム時間」 表を表わ し てい る と 仮定 し ます。

有効時間

有効時間 と は、 行内の情報が具体的な応用で有効ま たは真であ る 期間の こ と です。 (ANSI では、 こ の期間を 「アプ リ ケーシ ョ ン時間」 と いい ます。 ) valid-time 列には、 保険証書や契約が有効であ る期間、 従業員の雇用期間な ど、 時 間を認識 し た手法での追跡や操作が重要にな る 情報を格納 し ます。

valid-time 期間は、 VALIDTIME 列属性で指定 さ れた派生 PERIOD 列で表わ さ れます が、 列には任意の名前があ る 場合があ り ます。 • valid-time 期間の開始境界は、 行の情報が真ま たは有効にな り 始め る時刻です。 • valid-time 期間の終了境界は、 契約の終了日な ど、 行の情報が真ま たは有効 と は 見な さ れな く な る 時間を反映 し てい ます。 し たが っ て、 行の有効時間は、 過去、 現在、 お よ び将来の時間にわた り ます。 現在 有効な情報を含む行には、 現在の時間を含む valid-time 期間が含まれます。 valid-time 次元を持つ表に新たに行を追加する場合は、 valid-time 期間の開始境界 と 終了境界の値を含め る こ と に よ り 、 行情報が有効であ る 期間を指定す る 必要があ り ます。 無期限に有効な情報を含む行は、 ほ と ん ど の場合、 シ ス テ ム日付ま たは タ イ ム ス タ ンプの最大値の終了境界値で表わ さ れます。 valid-time 表の行に対 し て時間境界の変更を行な う と 、 変更が有効にな っ た と き に、 デー タ ベース は自動的に新 し い行を作成 し 、 それ ら の valid-time 期間を必要に応じ て定義 し て時間的に区切 り ますが、 変更前後の期間の情報の元の状態を保持 し ま す。 こ れ ら の自動変更の性質は、 行の valid-time 期間に関連する変更の期間がどの よ う に指定 さ れたかに よ っ て決定 さ れます。 こ の詳細については、「テ ン ポ ラ ル表 の変更」 (21 ページ ) を参照 し て く だ さ い。 valid-time 表は、 表の行内の情報に期限が定め ら れていて、 時間を認識 し た手法で 行の情報を保守、 追跡お よ び操作す る 必要のあ る 場合に使用 し て く だ さ い。 valid-time 表は、 行の変更頻度が比較的少ない場合に最適です。 POS ( 販売時点情報 管理) 表な ど、 非常に頻繁に変更 さ れ る属性を表現する には、 valid-time 表よ り も イ ベン ト 表の方が適 し てい ます。 イ ベン ト 表にはテ ン ポ ラ ル ・ セマ ン テ ィ ク ス を適用 し ません。

valid-time 表の詳細については、 第4 章 : 「ANSI Valid-Time 表を利用する」 を参照 し て く だ さ い。

(18)

UNTIL_CLOSED お よ び UNTIL_CHANGED

二重テ ンポ ラル表

シ ス テ ム時間 と 有効時間は独立 し た時間次元であ り 、 それぞれ別の目的に使用 し ま す。 二重テ ン ポ ラ ル表には両方の次元が含まれます。 行の変更の結果 と し て、 二重 テ ン ポ ラ ル表では、 system-time 次元 と valid-time 次元で独立 し た変更が自動的に発 生 し ます。 行の変更の結果 と し て二重テ ン ポ ラ ル表の行に何が発生す る かを判断す る 場合は、 こ れ ら の次元を個別に考慮す る 必要があ り ます。

UNTIL_CLOSED お よ び UNTIL_CHANGED

UNTIL_CLOSED および UNTIL_CHANGED は、 期間が無期限、 永久、 ま たは終了 が指定 さ れていない、 お よ び将来の不明な時間であ る 場合に、 テ ン ポ ラ ル期間の終 了境界を表わす、 あ る 種の状況でTeradata Database に よ っ て理解 さ れ る特殊用語で す。 こ の用語は、 「シ ス テ ムの タ イ ム ス タ ンプ ま たは日付の最大値」 を表わ し てい ます。

• UNTIL_CLOSED は、 system-time 期間 と と も に使用 し、 TIMESTAMP '9999-12-31 23:59:59.999999+00:00' を表わ し てい ます。

• UNTIL_CHANGED は、 valid-time 期間 と と も に使用 し ま す。 こ の値は、 valid-time 列のデータ型 と 精度に よ って異な り ます。 型が DATE の場合、 UNTIL_CHANGED は値 DATE '9999-12-31' です。 型が TIMESTAMP の場合、 UNTIL_CHANGED は値 TIMESTAMP '9999-12-31 23:59:59.999999+00:00' で、 valid-time 開始お よ び終了列に指定 さ れたデー タ 型 と 一致す る 精度 と タ イ ム ゾーン を持ち ます。

こ れ ら の用語は現在の ANSI 規格に準拠し てい ませんが、 Teradata Database では、 INSERT および ANSI valid-time 表の一部の問合わせで UNTIL_CHANGED の使用を サポー ト し てい ます。

こ れ ら 4 つの関数、 ま た ANSI 規格の拡張機能は、 Teradata Database で ANSI テ ンポ ラ ル表の問合わせを実行す る と き に WHERE 句で使用で き ます。 • IS UNTIL_CLOSED • IS NOT UNTIL_CLOSED • IS UNTIL_CHANGED • IS NOT UNTIL_CHANGED こ れ ら の関数の詳細については、 <SQL 関数、 演算子、 式および述部 > および <SQL データ ・ タ イ プおよ び リ テ ラ ル > の PERIOD データ 型の説明を参照 し て く だ さ い。

(19)

テ ン ポ ラ ル行の タ イ プ

テ ン ポ ラ ル行の タ イ プ

テ ン ポ ラ ル表の行は、 テ ン ポ ラ ル期間に従っ て幅広 く 分類す る こ と がで き ます。 • system-time 表の行は、 「オープン」 か 「 ク ロ ーズ」 のいずれかです。 オープン行の system-time 終了境界値は、 シ ス テ ム ・ タ イ ム ス タ ンプの可能な 最大値であ る UNTIL_CLOSED であ り 、 データ ベース でそれ ら が引き続き ア ク テ ィ ブで通常のSQL 操作に関与で き る こ と を示 し てい ます。 ク ロ ーズ行には、 UNTIL_CLOSED よ り も 小 さ い ( よ り も 前の ) 任意の system-time 終了境界値があ り ます。 ク ロ ーズ行は変更で き ません。 こ れ ら の 行のsystem-time 期間終了値は、 それ ら がいつデータ ベース でア ク テ ィ ブでな く な る か を示 し てい ます。 こ れ ら は、 論理的に表か ら 削除 さ れた行ですが、 記録保持 と 履歴を目的 と し て物理的に残っ てい ます。 ク ロ ーズ行には、 表か ら 明示的に削除 さ れた行 と 、 元の行が表に追加 さ れた 後に行の修正に よ っ て上書 き さ れた値を持つ行が含まれます。 こ の よ う な修 正は、 元の行を ク ロ ーズ し 、 表に新 し い行を作成 し て、 変更情報を保持 し ま す。 テ ン ポ ラ ル表で行の変更に よ り 新 し い表の行が生成 さ れ る 方法について は、 「テ ン ポ ラ ル表の変更」 (21 ページ ) を参照 し て く だ さ い。 • valid-time 表で、 現在時刻 と の関係におけ る行の情報が有効な期間に よ っ て、 行 は現在、 将来、 ま たは履歴のいずれかにな り ます。 • 現在行には、 現在時刻 と 重な る valid-time 期間があ り ます。 こ れ ら の行の デー タ は、 現在有効です。 • 将来行には、 現在時刻よ り も 後に始ま る有効時間があ り ます。 こ れ ら の行の デー タ は ま だ有効にな っ てい ませんが、 行の情報が現在にな る ま でに変更 さ れない限 り 、 valid-time 期間が現在時刻を含むよ う にな っ た時点で有効にな り ます。 その一例 と し て、 来月ま で開始 さ れない契約条項を説明す る 情報があ り ます。 • 履歴行には、 現在時刻よ り も 前に終了 し た valid-time 期間があ り ます。 こ れ ら の行のデー タ は、 過去のあ る 時点において有効で し たが、 今は有効でな く な っ てい ます。 期限切れの契約な ど の よ う に元の valid-time 期間を過ぎたた め、 ま たは既存の有効な契約条項の変更な ど の よ う に行に対す る 変更に よ っ て元のデー タ が有効でな く な っ たため、 情報が無効にな る 場合があ り ます。 ま た、valid-time 表の行では、 valid-time 期間に特定の時点が含まれる かど う かに よ っ て、 特定の時点で有効か無効かを説明す る こ と も で き ます。 • 二重テ ンポ ラ ル表で、 2 つのテ ンポ ラ ル次元は相互に区別 さ れ る ため、 行は、 system-time 次元、 およ び valid-time 次元の現在、 将来、 ま たは履歴で同時にオー プン ま たは ク ロ ーズ と な り ます。 あ る 意味、 system-time 次元が優先 さ れます。 二重テ ンポ ラ ル表の行の valid-time 期間が将来であ り 、 行が system-time 次元で ク ローズにな っ てい る場合は、 表か ら 行が削除 さ れた こ と を意味 し てい ます。 デー タ ベース で行がア ク テ ィ ブでな く な っ てい る ため、 行が将来の行 と は見な さ れません。 行は、 論理的にデー タ ベース か ら 削除 さ れ、 行が削除ま たは変更 さ れた時点での行の状態を示すため にのみ存在 し てい ます。

(20)

テ ン ポ ラ ル表への行の挿入

テ ン ポ ラ ル表への行の挿入

テ ン ポ ラ ル表は時間を認識 し た手法で情報を追跡す る ため、 テ ン ポ ラ ル表に挿入 さ れた新 し い情報はいずれ も 、 少な く と も 次の 1 つの期間 と 関連付け る必要があ り ま す : シ ス テ ム時間ま たは有効時間。 二重テ ンポ ラ ル表の行には、 両方の種類の期間 が含まれます。

• system-time 表に行を挿入する場合は、 Teradata Database が system-time 期間を管 理 し ます。 system-time 期間の開始は、 自動的に行が表に挿入 さ れた時点に設定 さ れます。 ま た、 system-time 期間の終了は、 UNTIL-CLOSED に設定 さ れます。 こ の行はオープンで、 行が削除 さ れ る か、 行に対す る 変更に よ り 元の情報が無 効にな る ま でSQL 操作にア ク テ ィ ブに関与する と 見な さ れます。 • valid-time 表に行を挿入する場合は、 行の valid-time 期間の開始 と 終了、 および 行の情報が有効であ る 期間を指定す る 必要があ り ます。 こ の期間は、 過去、 現 在時刻を含む も の、 ま たは将来の期間であ る 可能性があ り ます。 valid-time 期間 は、 過去か ら 将来にわた る 可能性があ り ます。 無期限に有効な情報を含む行を 挿入 し よ う と し てい る 場合は、 valid-time 期間の終了値を UNTIL_CHANGED に 設定 し ます。 テンポ ラル表への行の挿入の詳細については、 「テ ン ポ ラ ル表の変更」 (21 ページ )を 参照 し て く だ さ い。

テ ン ポ ラ ル表への問合わせ

テ ン ポ ラ ル表の ど の行 も 、 対応す る 期間を持つ こ と に よ り 、 少な く と も 1 つの時間 次元に関連付け ら れてい ます。 SELECT 文のテ ンポ ラ ル SQL 特殊修飾子 (AS OF、 BETWEEN ... AND、 FROM ... TO、 および CONTAINED IN) に よ り 、 こ れ ら の時間 次元に基づいてデー タ の問合わせを実行す る こ と がで き ます。 た と えば、 次の よ う にな り ます。 • system-time 表の場合、 現在ア ク テ ィ ブなデータ はどの表で も 問合わせを実行で き ますが、 非ア ク テ ィ ブな行 も 、 こ れ ら の行が過去の ど の時点で変更ま たは削 除 さ れたのかを判断す る ために、 問合わせを実行す る こ と がで き ます。 こ れ ら の行は、 ほ と ん ど の SQL 操作に関与 し な く な っ てい ますが、 表に残 り 、 特殊な テ ン ポ ラ ル SQL を使用 し て問合わせを実行する こ と がで き ます。 • valid-time 表の場合は、 テ ンポ ラ ル SQL を使用し て、 現在有効な行、 ま たは現 在、 過去、 将来の指定 し た期間内に有効な行のみを表示 し ます。 問合わせは、 現在有効ではな く 過去に有効だ っ た履歴行や、 将来の時点ま で有効にな ら ない 将来行に制限す る こ と も で き ます。 テ ン ポ ラ ル表の問合わせの詳細につい ては、 「ANSI System-Time 表への問合わせ」 (37 ページ )お よ び 「ANSI Valid-Time 表への問合わせ」 (64 ページ ) を 参照 し て く だ さ い。

(21)

テ ン ポ ラ ル表の変更

テ ン ポ ラ ル表の変更

テ ン ポ ラ ル表への変更では、 Teradata Database に よ る時間を認識 し た特殊処理が使 用 さ れます。 それぞれ別の目的に使用 さ れ る ため、 行が変更 さ れた場合に system-time 列は valid-system-time 列 と 異な る方法で扱われます。

System-Time 変更

system-time 列に対する テ ンポ ラ ル変更は、 直接的で、 全体的に自動で行なわれま す。 こ れ ら は、 変更の性質に影響 さ れません。 • system-time 表か ら 行が削除 さ れ る と き は、 行が物理的に表か ら 削除 さ れ る わけ ではあ り ません。 行のsystem-time 期間の終了が削除し た時点に設定 さ れ、 行が ク ロ ーズ行にな り ます。 表におけ る ほ と ん ど の SQL 操作には関与 し な く な り ま すが、 過去に何が存在 し ていたかの履歴記録 と し て表に残 り ます。 • system-time 表で行が変更 さ れ る と 、 行の system-time 期間の終了が、 変更、 行の ク ロ ーズ、 お よ び変更 さ れたデー タ で行の コ ピーが表に挿入 さ れた時間に設定 されます。 新しい行の system-time 期間は、 変更の時間に開始され、 UNTIL_CLOSED に終了 し ます。 新 し い行は、 デー タ ベース において ア ク テ ィ ブで、 SQL 操作に 関与で き ます。

ANSI system-time 表の変更の詳細については、 「ANSI シ ス テ ム時間表の行の変更」

(42 ページ ) を参照 し て く だ さ い。

Valid-Time 変更

表が契約を表わ し 、 各行が既存契約の条項を示 し てい る と し ます。 契約期間中に契 約条項が変更 さ れた場合、 非テ ン ポ ラ ル表への通常の更新では、 新 し い契約条項が 表に反映 さ れ る こ と にな り ます。 ただ し 、 役立つ可能性があ る 情報が失われます。 変更す る 前は契約条項が異な っ ていた と い う 事実です。 Valid-time 表では、 変更に 特殊テ ン ポ ラ ル構文を使用 し て、 ま た こ れ ら の変更に よ る 行の変更の特殊処理に よ り 、 こ の よ う な現実のモデルを作 る こ と がで き ます。 valid-time 表への変更は、 system-time 表への変更よ り も さ ら に柔軟です。 データ ベース が自動でテ ン ポ ラ ル帳簿処理を実行 し ますが、 自動変更の性質は行の有効時 間 と 、 変更に指定 し た有効期間の関係に よ り 異な り ます。

valid-time 表に対 し て UPDATE および DELETE 変更を行な う 場合は、 オプシ ョ ンで 変更を適用す る 期間を指定す る こ と がで き ます。 こ れは、 変更の適用期間 (PA) と いい ます。 こ の コ ン テ キ ス ト では、 行のvalid-time 期間を、 行の有効期間 (PV) と い い ます。 変更構文のPA は、 SQL の追加修飾子 と し て機能し ます。 どの行が変更で き る か、 お よ び変更に よ り 自動的に新規の行を表に作成 し てデー タ ベース が変更の 時間で区切 ら れた性質を反映す る こ と を許可す る か ど う かは、 PA と PV の関係に よ っ て決定 さ れます。 最 も 簡単な ケース は、 行のPV 中のあ る特定の時点で有効 と な り 、 PV の残 り の期間 中に継続 さ れ る 変更です。 契約条項の簡単な変更は、 こ の一例です。 こ れは、 Teradata Database が変更の一時的な性質を保持する変更を扱 う 方法です。

(22)

テ ン ポ ラ ル表の変更 • その行の コ ピ ーが自動的に作成 さ れ、 新 し い条項を示す よ う に変更 さ れ ま す。 新 し い行のPV は条項の変更時点か ら 開始 さ れ、 新 し い条項がいつ開始 さ れた か を 示 し ま す。 行のPV は valid-time 列の元の終了境界を保持 し て元の契約終 了日 を 保持 し ま す。 こ れは、 新 し い条項が契約の残 り の期間に有効 と な る た めです。 • 変更前の契約条項を格納 し てい る元の行は、 履歴行 と し てマー ク さ れます。 古 い行のvalid-time の終了境界は、 変更の時刻に設定 さ れます。 こ れは、 その行に あ っ た古い条項がその時点で無効にな る ためです。 valid-time 次元を持つ表への変更は、 過去や将来の時間であ っ て も 、 どの期間に対 し て も 適用す る こ と がで き ます。 変更は、 変更のPA と 重な る PV を持つ こ れ ら の 行にのみ、 ま たPA と PV が一致する場合に限 り 影響 し ます。 例えば、 契約開始後に契約の変更が開始 さ れて、 契約の有効期限が切れ る 前に終了 す る 場合な ど、 変更の PA が行の PV 内にあ る場合、 変更の結果は 3 つの行 と な り ます。 • 最初の行には、 元の情報 と 、 変更が有効にな る ま で行の元の PV の開始か ら の時 間を カバーす る valid-time 期間が格納 さ れます。 • 2 つ目の行には、 変更 さ れた情報 と 、 変更文の PA と 一致する valid-time 期間が 格納 さ れます。 • 3 つ目の行には、 元の行情報が保持 さ れてい ますが、 変更が有効でな く な っ た と き に開始 さ れ る valid-time 期間が格納 さ れ、 行の元の PV の終了時刻 ま で続 き ます。 こ の よ う に し て、 valid-time 表では変更のすべての履歴が自動的に保持 さ れます。 system-time 表の ク ローズ行 と 異な り 、 valid-time 表の履歴行は、 すべての SQL 操作 でア ク セ ス で き る 状態の ま ま と な り ます。 実世界を モデル化 し てい る ため、 valid-time 表には将来の PV が含まれる こ と があ り ます。 こ れは、 契約や保険な どが将来 の日付にな る ま で開始ま たは終了 さ れない こ と があ る ためです。 PA を指定し ない変更は、 変更行の有効時間に影響する こ と な く 、 非テ ンポ ラ ル表 で変更が行な う の と 同様に動作 し ます。 それ ら は、 行の有効時間に関係な く 、 問合 わせ基準を満たす表のすべての行に影響 し ます。

ANSI valid-time 表におけ る行の変更の詳細については、 「ANSI Valid-Time 表の行の

変更」 (68 ページ )を参照 し て く だ さ い。

二重テ ンポ ラル表の変更

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

(23)

テ ン ポ ラ ル表の変更 例えば、 二重テ ン ポ ラ ル表内の行が削除 さ れ る と 、 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 が行に対 し て自動的に実行する テ ンポ ラ ル操作には、 独立 し たア ク シ ョ ンが含まれ る こ と に注意す る 必要があ り ます。 こ れは、 表に valid-time 次元 と transaction-time 次元の両方が含まれ る ためです。 ANSI 二重テ ンポ ラ ル表の変更の詳細については、 「ANSI 二重テ ンポ ラ ル表の行の 変更」 (90 ページ )を参照 し て く だ さ い。

(24)

タ イ ム ス タ ンプ

タ イ ムス タ ン プ

時間の認識は、 テ ン ポ ラ ル ・ デー タ ベース の機能を決定付け る も のです。 テ ン ポ ラ ル表の処理の大部分には、 デー タ ベー ス に よ る 自動 タ イ ム ス タ ン プが使用 さ れ ます。 system-time 表の行が変更ま たは削除 さ れる場合、 ま たは valid-time 表の行が時間を 区切 る 方法で変更 さ れ る 場合はいつで も 、 シ ス テ ムは、 行お よ び変更の結果 と し て 作成 さ れた新 し い行に自動的に タ イ ム ス タ ンプを設定 し ます。 こ の よ う な タ イ ム ス タ ンプは変更の時刻を記録す る も のであ り 、 system-time 表の行を ク ロ ーズ し 、 valid-time 表の新 し い行を適切に変更する ために使用 さ れます。 タ イ ム ス タ ンプ処理は ト ラ ンザ ク シ ョ ン ・ レベルで発生 し 、 タ イ ム ス タ ンプは、 変 更の時点で TEMPORAL_TIMESTAMP ま たは TEMPORAL_DATE ビル ト イ ン ・ デー タ ベース関数の値 と し て、 Teradata Database に よ っ て自動的に入力 さ れます。 こ れ ら は、 テ ン ポ ラ ル表に対 し て最初に ロ ッ ク さ れていない参照を実行 し た と き 、 ま た は ト ラ ンザ ク シ ョ ンで ビル ト イ ン関数に最初にア ク セ ス し た と き の時刻や日付を解 決 し ます。 ト ラ ンザ ク シ ョ ン中、 TEMPORAL_TIMESTAMP と TEMPORAL_DATE は同 じ ま ま残 り ます。 TEMPORAL_TIMESTAMP ビル ト イ ン関数について、 詳細は <SQL 関数、 演算子、 式お よ び述部> を参照し て く だ さ い。

ANSI テ ン ポ ラ ル と Teradata テ ン ポ ラ ル

Teradata は、 ANSI/ISO 規格が開発 さ れる前に、 テ ンポ ラ ル表の作成 と 操作のサポー ト を導入 し ま し た。 そのため、 元の Teradata テ ンポ ラ ル表 と SQL 構文は ANSI 規格 に準拠 し てい ません。 テ ン ポ ラ ル表のANSI/ISO 規格が承認 さ れた と き、 Teradata は、 新 し いANSI 準拠のテ ンポ ラ ル表 と SQL 構文を開発 し ま し た。

Teradata Database では、 ANSI 準拠バージ ョ ンのテ ンポ ラ ル表 と 、 元の ANSI 非準拠 バージ ョ ンのテ ン ポ ラ ル表が使用で き ます。

以下の比較を使用す る と 、 実際の要件に最適なテ ン ポ ラ ル表のバージ ョ ン を決定す る のに役立ち ます。

注 : Teradata の独自テ ンポ ラ ル表で使用 さ れ る ほ と んどのテ ンポ ラ ル修飾子 と 問合 わせ構文は、 ANSI テ ンポ ラ ル表で も 使用で き ます。

(25)

ANSI 規格の例外

ANSI 規格の例外

ANSI/ISO テ ンポ ラ ル表 と 構文の Teradata Database の実装は、 以下の非 ANSI 規格機 能を含む よ う に拡張 さ れてい ます。

• ANSI/ISO 規格の場合、 テ ン ポ ラ ル表において最大で 2 つの派生 PERIOD 列 (1 つは有効時間、 も う 1 つはシ ス テ ム時間 ) し か許可 さ れません。 Teradata Database のANSI テンポ ラル表は、 3 つ以上の派生 PERIOD 列を持つこ と ができ ます。 • ANSI/ISO 規格では、 system-time 表で問合わせを行な う ための CONTAINED IN

修飾子が定義 さ れてい ません。

CONTAINED IN 修飾子は、 Teradata Database におけ る ANSI system-time 表の問合 わせに使用で き ます。CONTAINED IN の詳細については、 「ANSI System-Time

表への問合わせ」 (37 ページ ) を参照 し て く だ さ い。

ANSI テ ンポ ラ ル表 と 構文 Teradata テ ンポ ラ ル表 と 構文 ANSI/ISO 準拠で、 valid-time

(application-time) 表定義お よ び Teradata Database 拡張機 能に多少の変更があ り 、valid-time 表のテン ポ ラ ル問合わせを許可 し ます。 ANSI/ISO 準拠ではあ り ません。 テ ン ポ ラ ル表のテ ン ポ ラ ル列は、 派生 PERIOD の開始境界値 と 終了境界値を格納 し てい る 物理的な DateTime 列か ら 動的に 派生 し ます。 テ ン ポ ラ ル列は、 派生PERIOD であ る か、 Teradata Database PERIOD デー タ 型を使用す る 場合が あ り ま す。 こ れに よ り 、 列は期 間を表わす こ と がで き ます。(PERIOD デー タ 型を使用す る こ と は許可 さ れてい ます が、 推奨 さ れてはい ません。) テ ン ポ ラ ル派生PERIOD 列を構成する開始 列 と 終了列は、 常に暗黙的にSELECT * の 問合わせに射影 さ れ ます。 テ ン ポ ラ ル派生PERIOD 列を構成する テ ン ポ ラ ル列ま たは開始列 と 終了列が射影 さ れ る か ど う かは、 セ ッ シ ョ ン でデフ ォ ル ト と し て設定 さ れてい る テ ン ポ ラ ル問合わせ修 飾子ま た は テ ン ポ ラ ル修飾子に よ っ て 決 ま り ます。 system-time 表で、 SYSTEM_TIME 派生 PERIOD 列の コ ンポーネン ト 開始およ び終 了 タ イ ム ス タ ン プ列は、 最初に表か ら シ ス テ ム のバージ ョ ン設定を削除 し た場合にの み変更で き ます。system-time 表か ら シ ス テ ム のバージ ョ ン設定を削除す る と 、 表か ら すべての ク ロ ーズ行が物理的に削除 さ れ、 表は非テ ン ポ ラ ル表にな り ます。

transaction-time 表 (ANSI system-time 表 と 似 てい る ) では、 特殊 NONTEMPORAL 権限 お よ び修飾子に よ っ て、transaction-time 列 値を変更で き ます。 SELECT のデフ ォ ル ト 動作は、 valid-time 表のすべての行を選定す る こ と です。 デ フ ォ ル ト の動作を セ ッ シ ョ ン修飾子で変更 す る こ と はで き ません。 SELECT のデフ ォル ト 動作は、 valid-time 表 の現在の行のみを選定す る こ と です。 デ フ ォ ル ト の動作は、 セ ッ シ ョ ン修飾子で変 更で き ます。

(26)

ANSI 規格の例外

• ANSI/ISO 規格では、 valid-time 表で問合わせを行な う ための特殊テ ンポ ラ ル修飾 子が定義 さ れてい ません。

Teradata Database の ANSI テ ン ポ ラ ル valid-time 表は、 シ ス テ ムのバージ ョ ンが 設定 さ れてい る ANSI system-time 表の問合わせに使用で き る の と 同 じ テ ンポ ラ ル修飾子 (AS OF、 BETWEEN ... AND、 FROM ... TO、 およ び CONTAINED IN) を 使用 し て問合わせを行な う こ と がで き ます。

• valid-time 表を作成する ための ANSI/ISO 規格では、 [AS] VALIDTIME 列属性が 必要な く 、 サポー ト さ れてい ません。

Teradata Database の ANSI テ ン ポ ラ ル valid-time 表では、 表定義の列指定の一部 と し て[AS] VALIDTIME が必要です。 • ANSI/ISO 規格では、 テ ンポ ラ ル表の ANSI/ISO 規格が リ リ ース さ れ る前に開発 さ れたテ ン ポ ラ ル表の Teradata 独自実装で使用 さ れ る テ ンポ ラ ル修飾子や制約 がサポー ト さ れてい ません。 Teradata の独自テ ン ポ ラ ル表で使用 さ れ る テ ン ポ ラ ル修飾子や制約は、 ANSI テ ン ポ ラ ル表のTeradata Database 実装で使用で き ます。 こ れ ら の制約 と 修飾子の 詳細については、 < テ ンポ ラ ル表サポー ト > を参照 し て く だ さ い。

(27)

3 章 :

ANSI System-Time 表を利用する

シ ス テ ム時間 と は、 現在ま たは過去に行内にあ っ た情報がデー タ ベース に把握 さ れ てい る 期間の こ と です。 シ ス テ ム時間を含む表で行が追加、 変更、 削除 さ れ る と 自 動的に記録 し て、 デー タ ベース の実態を反映 し ます。 変更の履歴を自動的に追跡記録 し てデー タ ベース内に維持す る 必要があ る 場合、 シ ス テ ムのバージ ョ ンが設定 さ れてい る シ ス テ ム時間表を使用 し ます。 例えば、 シ ス テ ム時間表は、 あ る 種の法令順守に使用す る こ と がで き ます。 シ ス テ ム時間表を テ ン ポ ラ ル表 と 見な し 、 シ ス テ ム時間テ ン ポ ラ ル表の自動 タ イ ム ス タ ンプ機能お よ び追跡機能の動作特性を含め る には、 表定義でシ ス テ ムのバー ジ ョ ン設定を持つ よ う に指定 し てお く 必要があ り ます。 表にテ ン ポ ラ ル機能を与え る のがシ ス テ ムのバージ ョ ン情報です。 特に注意書 き がない限 り 、 本書では説明の 都合上、 「シ ス テ ム時間」 表 と い う 場合、 暗黙的に 「シ ス テ ム ・ バージ ョ ンが設定 さ れてい る シ ス テ ム時間」 表を表わ し てい る と 仮定 し ます。 注 : こ の章に記載 さ れてい る資料には、 ANSI テ ンポ ラ ル表に適用 さ れ る構文、 ルール、 お よ びその他の詳細についての説明のみが含まれてい ます。 示 さ れてい る 構文図は、 テ ン ポ ラ ル構文に重点を置 く 全体図か ら 抜粋 し た図です。 こ こ で説明 し た従来の非テ ン ポ ラ ル ・ バージ ョ ンのSQL 文に適用 さ れる既存の ルール と オプシ ョ ンのほ と ん どは、 テ ン ポ ラ ル文に も 適用 さ れます。 非テ ン ポ ラ ル ・ ルール と オプシ ョ ンについては、 こ こ では繰 り 返 し ません。 従来の非テ ン ポ ラ ル SQL DDL および DML 文の詳細は <SQL データ 定義言語 > と <SQL データ 操作 言語> を参照 し て く だ さ い。

(28)

ANSI シ ス テ ム時間表の作成

ANSI シ ス テム時間表の作成

ANSI では、 シ ス テ ム時間表を作成する ための特別な CREATE TABLE および ALTER TABLE 構文をサポー ト し てい ます。 テ ンポ ラ ル表の作成には次の操作が含

まれます。

• シ ス テ ム時間の期間の開始境界列 と 終了境界列の定義 • SYSTEM_TIME 派生 PERIOD 列の定義

• 表に対する シ ス テ ムのバージ ョ ン情報の有効化

CREATE TABLE (ANSI System-Time 表フ ォ ーム )

目的 新 し いANSI シ ス テ ム時間表を作成 し ます。 構文規則 ( ( , ) table_name CREATE MULTISET TABLE

sys_start

sys_start

TIMESTAMP(6) WITH TIME ZONE NOT NULL GENERATED ALWAYS AS ROW START

A

A B

sys_end

sys_end

TIMESTAMP(6) WITH TIME ZONE NOT NULL GENERATED ALWAYS AS ROW END

WITH SYSTEM VERSIONING B

) PERIOD FOR SYSTEM_TIME

C C ; , , 構文要素 説明 table_name シ ス テ ム時間表の名前。 デー タ ベース修飾子を含む場合が あ り ます。 sys_start シ ス テ ム時間期間の開始境界を保存す る 列の名前。 GENERATED ALWAYS AS ROW START シ ス テ ム時間期間の開始境界を定義す る 列の必須属性。 sys_end シ ス テ ム時間期間の終了境界を保存す る 列の名前。 GENERATED ALWAYS AS ROW END シ ス テ ム時間期間の終了境界を定義す る 列の必須属性。 PERIOD FOR SYSTEM_TIME シ ス テ ム時間派生PERIOD 列を作成 し ます。

SYSTEM VERSIONING シ ス テ ム時間テ ン ポ ラ ル表の必須属性。 CREATE TABLE 文の最後の句でなければな り ません。

(29)

CREATE TABLE (ANSI System-Time 表フ ォーム )

ANSI への準拠

こ れは、 ANSI SQL:2011 に準拠 し てい ます。

使用上の注意

• sys_start 列は、 NOT NULL および GENERATED ALWAYS AS ROW START と し て定義す る 必要があ り ます。 sys_end 列は NOT NULL および GENERATED ALWAYS AS ROW END と し て定義する必要があ り ます。

• GENERATED ALWAYS AS ROW START ま たは END 属性は、 SYSTEM_TIME 派 生 PERIOD 列を構成する列の定義か ら 削除する こ と はで き ません。

• シ ス テ ム時間派生 PERIOD 列の構成要素列は、 基本索引の一部にする こ と はで き ません。

• テ ンポ ラ ル表 と し て機能する には、 WITH SYSTEM VERSIONING でシ ス テ ム時 間表を定義す る 必要があ り ます。 ( 有効な時間表にはシ ス テ ムのバージ ョ ン情報 があ り ません。 ) • 1 つの表は 1 つのシ ス テ ム時間期間定義のみ持つ こ と がで き ます。 • シ ス テ ム時間表は、 キ ュー、 エ ラ ー、 グ ローバル一時、 グ ローバル一時 ト レー ス、 ま たは揮発表にす る こ と はで き ません。 • シ ス テ ム時間に よ る 表の CHECK 制約にシ ス テ ム時間期間の開始列ま たは終了 列を含む こ と はで き ません。 • シ ス テ ム時間期間の開始列およ び終了列は、 テ ンポ ラ ル参照制約の基本キーま たは外部キーにす る こ と はで き ません。 • シ ス テ ム時間表は、 CREATE TABLE AS 文で ソ ース表の役割を果たす こ と はで き ません。 • シ ス テ ム時間派生 PERIOD 列で統計情報を収集する こ と はで き ませんが、 構成 要素の開始お よ び終了時間列で収集で き ます。 • アルゴ リ ズ ム圧縮 (ALC) は、 テ ンポ ラ ル派生 PERIOD 列の開始およ び終了境界 値の役割を果たす DateTime 列では使用で き ません。 例: システム時間表の作成 次の例ではシ ス テ ム時間表を作成 し て、 こ の表を テ ン ポ ラ ル表にす る ために必要な system versioning 句が含まれます。

CREATE MULTISET TABLE employee_system_time ( eid INTEGER NOT NULL,

name VARCHAR(10) NOT NULL, deptno INTEGER NOT NULL,

sys_start TIMESTAMP(6) WITH TIME ZONE NOT NULL GENERATED ALWAYS AS ROW START,

sys_end TIMESTAMP(6) WITH TIME ZONE NOT NULL GENERATED ALWAYS AS ROW END,

PERIOD FOR SYSTEM_TIME(sys_start, sys_end) )

参照

関連したドキュメント

経費登録システム リリース後、新規で 実績報告(証拠 書類の登録)をす る場合は、全て. 「経費登録システ

Microsoft System Center Virtual Machine Manager 用 Dell Server PRO Management Pack

Microsoft/Windows/SQL Server は、米国 Microsoft Corporation の、米国およびその

REC DATA MASTER L to SD CARD REC DATA MASTER R to SD CARD VOLUME SOUND

Since the optimizing problem has a two-level hierarchical structure, this risk management algorithm is composed of two types of swarms that search in different levels,

Desk Navigator グ ループ 通常業務の設定」で記載されているRidoc Desk Navigator V4への登録 方法に加えて新製品「RICOH Desk

旅行者様は、 STAYNAVI クーポン発行のために、 STAYNAVI

① 小惑星の観測・発見・登録・命名 (月光天文台において今日までに発見登録された 162 個の小惑星のうち 14 個に命名されています)