Kreuzprodukt: Unterschied zwischen den Versionen

Aus KGS-Wiki
Keine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
Das '''Kreuzprodukt''', auch '''kartesisches Produkt''' genannt (<math>\times</math>) ist ein Operator der Relationenalgebra.
Das [[Kreuzprodukt]], auch '''kartesisches Produkt''' genannt (<math>\times</math>) ist ein Operator der Relationenalgebra.


Mit einem Kreuzprodukt <math>A \times B</math> wird jedes [[Tupel]] aus [[Relation]] <math>A</math> mit jedem Tupel aus Relation <math>B</math> zu einem neuen Tupel verbunden, das alle [[Attribut (Informatik)|Attribute]] der beiden Relationen enthält. Das Ergebnis einer Kreuzmultiplikation ist wieder eine Relation.
Mit einem Kreuzprodukt <math>A \times B</math> wird jedes [[Tupel]] aus [[Relation]] <math>A</math> mit jedem Tupel aus Relation <math>B</math> zu einem neuen Tupel verbunden, das alle [[Attribut (Informatik)|Attribute]] der beiden Relationen enthält. Das Ergebnis einer Kreuzmultiplikation ist wieder eine Relation.


Die Schreibweise ist <math>\textrm{Relation 1} \times \textrm{Relation 2}</math>.
Die Schreibweise ist <math>\textrm{Relation 1} \times \textrm{Relation 2}</math>. In [[SQL]] entsteht ein Kreuzprodukt dadurch, dass man eine Abfrage über mehrere Tabellen durchführt, ohne eine Bedingung mit <code>WHERE</code> zu stellen.


== Beispiel ==
== Beispiel ==
Zeile 217: Zeile 217:
|Erion Veliaj
|Erion Veliaj
|}
|}
 
Die entsprechende SQL-Abfrage ist <code>SELECT * FROM Land, Stadt;</code>{{Navigationsleiste Operatoren der Relationenalgebra}}
{{Navigationsleiste Operatoren der Relationenalgebra}}


[[Kategorie:Datenbanken]]
[[Kategorie:Datenbanken]]

Aktuelle Version vom 15. März 2023, 17:25 Uhr

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;