Kartesisches Produkt

Kartesisches Produkt
Kartesisches Produkt


Das kartesische Produkt, auch Kreuzprodukt genannt, ist eine Grundoperation der relationalen Algebra und lässt sie sich nicht durch andere Operationen simulieren.

Definition:

Das kartesische Produkt ist definiert durch:

   M1 x ... x Mn := {(a1, ... ,an) | ai ∈ Mi für alle 1 ≤ i ≤ n}. 

Dabei sind die ai Elemente der Mengen Mi, wobei es sich um einzelne Attributwerte handeln kann oder auch um ganze Tupel aus Relationen wie es in der relationalen Algebra der Fall ist.

Die Anzahl der Elemente in einem kartesischen Produkt ist gleich dem Produkt der Anzahl der Elemente in den beteiligten Mengen Mi:

   |M1 x ..... x Mn | = |M1| ...... .|Mn|

Hier als Beispiel die Anwendung des kartesischen Produkts auf zwei Relationen in der relationalen Algebra:
Es seien zwei Relationen R1, R2 mit den Attributstrukturen A1, ... ,An und B1, ... ,Bm gegeben. (ai1, ... ,ain), (bj1, ... ,bjm) seien Tupel aus diesen Relationen.

   R1 x R2 := {(ai1, ... ,ain, bj1, ... ,bjm) | (ai1, ... ,ain)∈R1 und (bj1, ... ,bjm)∈R2 für alle Tupel 1 ≤ i ≤ |R1|, 1 ≤ j ≤ |R2|}

Doppelte Tupel können bei dieser Operation in der Ergebnismenge nicht auftreten.

Beispiel:

Es sei folgende Mitarbeiter-Relation gegeben und die Relation Abteilungen:

Mita_IDNameVornameOrtAbt_IDGehalt
4711MüllerAgatheGummersbach103000,00
4713MeierHugoKöln203400,00
4897SchmittErwinGummersbach202500,00
4944SchmitdElseGummersbach20 
Abt_IDBezeichnungBudgetLeiter
10Einkauf240000,004711
20Verkauf350000,004897
30Produktion400000,00 

Dann hat das kartesische Produkt aus Mitarbeiter x Abteilungen folgendes Ergebnis:

Ergebnis:

Mita_IDNameVornameOrtAbt_IDGehaltAbt_IDBezeichnungBudgetLeiter
4711MüllerAgatheGummersbach103000,0010Einkauf240000,004711
4711MüllerAgatheGummersbach103000,0020Verkauf350000,004897
4711MüllerAgatheGummersbach103000,0030Produktion400000,00 
4713MeierHugoKöln203400,0010Einkauf240000,004711
4713MeierHugoKöln203400,0020Verkauf350000,004897
4713MeierHugoKöln203400,0030Produktion400000,00 
4897SchmittErwinGummersbach202500,0010Einkauf240000,004711
4897SchmittErwinGummersbach202500,0020Verkauf350000,004897
4897SchmittErwinGummersbach202500,0030Produktion400000,00 
4944SchmitdElseGummersbach20 10Einkauf240000,004711
4944SchmitdElseGummersbach20 20Verkauf350000,004897
4944SchmitdElseGummersbach20 30Produktion400000,00 

siehe auch: Cross-Join-SQL, Rechengesetze-der-relationalen-Algebra

Quellen:

  • Elmasri, Ramez/Navathe, Shamkant B.: "Grundlagen von Datenbanksystemen" , Pearson Studium, München, 2002, ISBN 3-8273-7021-3
  • Saake, Gunter/Sattler, Kai-Uwe/Heuer, Andreas: "Datenbanken - Konzepte und Sprachen", mitp-Verlag, Redline GmbH, Heidelberg, 2007, ISBN 3-8266-1664-2

Kategorie: Relationale Algebra, K