17.10 - 外部結合の関係代数 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-171K-JPN
Language
日本語 (日本)

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

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

projection ( restriction ( product ) )
projection
1つ以上の関係から1つ以上の属性を抽出するPROJECT演算子を適用した結果。
projectionはSQL SELECT FROMを定義します。projectionはテーブルから列を選択します。
restriction
projectionから1つまたは複数の組を抽出するRESTRICT(またはSELECT)演算子を適用した結果。
関係代数のSELECTは、SQLのSELECT文とは異なります。これは、本質的にはPROJECT演算とRESTRICT演算を実行します。
restrictionはSQL SELECT文のWHERE、ON、およびQUALIFY句を定義します。restrictionは、テーブルから修飾された行を選択します。結合条件が存在していれば、restrictionは結合によって作成された中間結果テーブルから修飾された行を選択します。
product
指定した各々の関係から、組の可能性のある組合わせすべてを作成するPRODUCT演算子を適用した結果。
productは内部結合を定義します。

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

外部結合の関係代数

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

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

projection ( inner_join UNION ALL extension )
projection
1つ以上の関係から1つ以上の属性を抽出するPROJECT演算子を適用した結果。
inner_join
RESTRICT(またはSELECT)演算子をprojection内の関係のPRODUCTに適用した結果。
extension
RESTRICT演算子をprojection内の関係のPRODUCTに適用した結果の補足。
extensionは、問合わせの宣言方法によっては、左テーブルまたは右テーブル(あるいはその両方)から除外された組のいずれかを参照することができます。これらはそれぞれ、左外部結合、右外部結合、および完全外部結合です。

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