Relationenalgebra und SQL: Kartesisches Produkt


Das Kreuzprodukt R × S ist eine Operation sehr ähnlich dem Kartesischen Produkt aus der Mengenlehre[1].

Das Resultat des Kreuzprodukts ist die Menge aller Kombinationen der Tupel aus R und S, d.h. jede Zeile der einen Tabelle wird mit jeder Zeile der anderen Tabelle kombiniert. Wenn alle Merkmale (Spalten) verschieden sind, so umfasst die Resultatstabelle die Summe der Merkmale der Ausgangstabellen. Die Anzahl Tupel (Zeilen) im Resultat ist die Multiplikation der Anzahl Zeilen der Ausgangstabellen.

Definition

Bearbeiten

Zwei beliebige Relationen   und   sind gegeben. Das kartesische Produkt ist definiert durch

 

Beispiel

Bearbeiten
R:
A B C D
1 2 3 4
4 5 6 7
7 8 9 0
S:
E F G
1 2 3
7 8 9
R × S:
A B C D E F G
1 2 3 4 1 2 3
4 5 6 7 1 2 3
7 8 9 0 1 2 3
1 2 3 4 7 8 9
4 5 6 7 7 8 9
7 8 9 0 7 8 9
SELECT * FROM R, S;

oder

SELECT * FROM R CROSS JOIN S;

  1.   Kartesisches Produkt