Relationenalgebra und SQL: Kartesisches Produkt

Aus Wikibooks


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

SQL[Bearbeiten]

SELECT * FROM R, S;

oder

SELECT * FROM R CROSS JOIN S;

  1.  Kartesisches Produkt