Checkmark on Circle.png

Kreuzprodukt

Aus KGS-Wiki
Version vom 15. März 2023, 17:25 Uhr von Sn (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Das Kreuzprodukt, auch kartesisches Produkt genannt () ist ein Operator der Relationenalgebra.

Mit einem Kreuzprodukt wird jedes Tupel aus Relation mit jedem Tupel aus Relation zu einem neuen Tupel verbunden, das alle Attribute der beiden Relationen enthält. Das Ergebnis einer Kreuzmultiplikation ist wieder eine Relation.

Die Schreibweise ist . In SQL entsteht ein Kreuzprodukt dadurch, dass man eine Abfrage über mehrere Tabellen durchführt, ohne eine Bedingung mit WHERE zu stellen.

Beispiel

Betrachten wir die Relationen Land und Stadt:

Land
Land_Name Hauptstadt Land_EW Land_Fläche
Afghanistan Kabul 35.500.000 652.230
Ägypten Kairo 93.400.000 1.001.450
Albanien Tirana 2.900.000 28.748
Algerien Algier 42.200.000 2.381.741
Stadt
Stadt_Name Stadt_EW Stadt_Fläche Bürgermeister
Algier 2.159.051 273 Youcef Cherfa
Kabul 4.273.15 275 Abdullah Habibzai
Kairo 9.153.135 606 Khaled Abdel Aal
Tirana 557.422 1.110 Erion Veliaj

Das Kreuzprodukt ergibt folgende Relation:

Land_Name Hauptstadt Land_EW Land_Fläche Stadt_Name Stadt_EW Stadt_Fläche Bürgermeister
Afghanistan Kabul 35.500.000 652.230 Algier 2.159.051 273 Youcef Cherfa
Afghanistan Kabul 35.500.000 652.230 Kabul 4.273.15 275 Abdullah Habibzai
Afghanistan Kabul 35.500.000 652.230 Kairo 9.153.135 606 Khaled Abdel Aal
Afghanistan Kabul 35.500.000 652.230 Tirana 557.422 1.110 Erion Veliaj
Ägypten Kairo 93.400.000 1.001.450 Algier 2.159.051 273 Youcef Cherfa
Ägypten Kairo 93.400.000 1.001.450 Kabul 4.273.15 275 Abdullah Habibzai
Ägypten Kairo 93.400.000 1.001.450 Kairo 9.153.135 606 Khaled Abdel Aal
Ägypten Kairo 93.400.000 1.001.450 Tirana 557.422 1.110 Erion Veliaj
Albanien Tirana 2.900.000 28.748 Algier 2.159.051 273 Youcef Cherfa
Albanien Tirana 2.900.000 28.748 Kabul 4.273.15 275 Abdullah Habibzai
Albanien Tirana 2.900.000 28.748 Kairo 9.153.135 606 Khaled Abdel Aal
Albanien Tirana 2.900.000 28.748 Tirana 557.422 1.110 Erion Veliaj
Algerien Algier 42.200.000 2.381.741 Algier 2.159.051 273 Youcef Cherfa
Algerien Algier 42.200.000 2.381.741 Kabul 4.273.15 275 Abdullah Habibzai
Algerien Algier 42.200.000 2.381.741 Kairo 9.153.135 606 Khaled Abdel Aal
Algerien Algier 42.200.000 2.381.741 Tirana 557.422 1.110 Erion Veliaj

Die entsprechende SQL-Abfrage ist SELECT * FROM Land, Stadt;