分離性は、データベース トランザクション処理についてのACIDプロパティの1つです。理論上、「同時並行」トランザクションは逐次化可能であり、各トランザクションの発生は他と分離され、それぞれの結果は他のトランザクションの結果としての変更に影響されないものになります。通常、トランザクションまたはセッションのトランザクション分離レベルがSERIALIZABLEに設定されているときには、Teradata Databaseは逐次化トランザクションを保証します。
ただし、特定の状況下では、トランザクション分離レベルがSERIALIZABLEに設定されているときでも、テンポラル テーブルからのCURRENT VALIDTIME選択がテンポラル トランザクションでの逐次性を乱すことがあります。これは、次に示すように、テンポラル トランザクションに存在する2つの特性の相互作用によって発生することがあります。
- テンポラル テーブル内の行が変更されると、通常は履歴行が生成されます。履歴行は、変更が加えられる前に存在していた行の状態を保持するもので、同じテーブル内に格納されます。
- CURRENTテンポラル修飾子は、TEMPORAL_DATEまたはTEMPORAL_TIMESTAMPに基づいて行を選択するものであり、最初にテンポラル テーブルにアクセスしたときのクロック時間として定義されることも、トランザクションで最初にTEMPORAL_DATE関数またはTEMPORAL_TIMESTAMP関数にアクセスしたときのクロック時間として定義されることもあります。
このセクションでは、この問題について解説し、逐次化テンポラル トランザクションを保証するために使用できる手法について説明します。