外部結合の関係代数 - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQLデータ操作言語

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/fbo1512081269404.ditamap
dita:ditavalPath
ja-JP/fbo1512081269404.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

関係代数と関係論理は、関係を操作するために使用する2つの異なる、しかし同等の形式言語です。代数が手続き型であり、問合わせの最適化ルーチンとデータベース マネージャが操作できる、問合わせの内部表記用であるのに対して、論理は非手続き型であって、ユーザーによって適用可能な問合わせ言語の基礎となります。

基本的な問合わせSELECT-FROM-WHERE (問合わせ用に一般化された非手続き型関係論理のSQL表現形式)は、関係代数の形式で記述し直すことができます。そうするには、以下のようにします。

     projection ( restriction ( product ) )

説明:

構文要素 指定内容
projection 1つ以上の関係から1つ以上の属性を抽出するPROJECT演算子を適用した結果。

これはSQL SELECT ... FROMを定義します。projectionはテーブルから列を選択します。

restriction projectionから1つまたは複数の組を抽出するRESTRICT(またはSELECT)演算子を適用した結果。

関係代数のSELECTは、SQLのSELECT文とは異なります。これは、本質的にはPROJECT演算とRESTRICT演算を実行します。

restrictionはSQL SELECT文のWHERE、ON、およびQUALIFY句を定義します。restrictionは、テーブルから修飾された行を選択します。結合条件が存在していれば、restrictionは結合によって作成された中間結果テーブルから修飾された行を選択します。

product 指定した各々の関係から、組の可能性のある組合わせすべてを作成するPRODUCT演算子を適用した結果。

これは結合を定義します。具体的には、内部結合です。

表現を明確にするには、元の式をprojection (内部結合)として再度記述します

外部結合の関係代数

外部結合は残りの組を指定した内部結合の結果を、内部結合の結果テーブルの組と共通点のない結合関係のいずれか(または両方)にマージします。

外部結合はリレーショナル代数で以下のように表現できます。

     projection ( inner_join UNION ALL extension )

説明:

構文要素 指定内容
projection 1つ以上の関係から1つ以上の属性を抽出するPROJECT演算子を適用した結果。
inner_join RESTRICT(またはSELECT)演算子をprojection内の関係のPRODUCTに適用した結果。
UNION ALL UNION ALL演算子。

UNION ALLは重複行を許可するため。これは厳密には関係演算子ではありません。

extension RESTRICT演算子をprojection内の関係のPRODUCTに適用した結果の補足。

extensionは、問合わせの宣言方法によっては、左テーブルまたは右テーブル(あるいはその両方)から除外された組のいずれかを参照することができます。

これらはそれぞれ、左部結合、右部結合、および完全外部結合です。