Join
Der Join () ist ein Operator der Relationenalgebra.
Mit einem Join können diejenigen Tupel zweier Relationen miteinander verbunden werden, die bestimmten Bedingungen entsprechen.
Die Schreibweise ist .
Beispiel
Betrachten wir die Relationen Land und Stadt:
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_Name | Stadt_EW | Stadt_Fläche | Bürgermeister |
---|---|---|---|
Algier | 2.159.051 | 273 | Youcef Cherfa |
Helsinki | 656.920 | 755 | Juhana Vartiainen |
Kabul | 4.273.15 | 275 | Abdullah Habibzai |
Kairo | 9.153.135 | 606 | Khaled Abdel Aal |
Der Join 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 | Kabul | 4.273.15 | 275 | Abdullah Habibzai |
Ägypten | Kairo | 93.400.000 | 1.001.450 | Kairo | 9.153.135 | 606 | Khaled Abdel Aal |
Algerien | Algier | 42.200.000 | 2.381.741 | Algier | 2.159.051 | 273 | Youcef Cherfa |
Semi Join
Der Semi Join ( und ) ist eine Spezialform des Joins. Wenn man zwei Relationen mit einem Semi Join verknüpft, werden nur diejenigen Tupel aus einer der beiden Relationen übernommen, für die es ein Gegenpart in der anderen Relation gibt. Beim Left Semi Join () werden die Tupel aus der linken Relation übernommen, beim Right Semi Join () aus der rechten.
Beispiele
Der Left Semi Join ergibt folgende Relation:
Land_Name | Hauptstadt | Land_EW | Land_Fläche |
---|---|---|---|
Afghanistan | Kabul | 35.500.000 | 652.230 |
Ägypten | Kairo | 93.400.000 | 1.001.450 |
Algerien | Algier | 42.200.000 | 2.381.741 |
Der Right Semi Join ergibt folgende Relation:
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 |
Outer Join
Der Outer Join (⟖, ⟕ und ⟗) verknüpft alle Tupel aus zwei Relationen, die eine gegebene Bedingung erfüllen, und füllt für die Tupel, für die es in der jeweils anderen Relation kein Gegenstück gibt, die leeren Spalten mit Nullwerten auf.
Beispiele
Der Left Outer Join 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 | Kabul | 4.273.15 | 275 | Abdullah Habibzai |
Ägypten | Kairo | 93.400.000 | 1.001.450 | Kairo | 9.153.135 | 606 | Khaled Abdel Aal |
Albanien | Tirana | 2.900.000 | 28.748 | null
|
null
|
null
|
null
|
Algerien | Algier | 42.200.000 | 2.381.741 | Algier | 2.159.051 | 273 | Youcef Cherfa |
Der Right Outer Join 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 | Kabul | 4.273.15 | 275 | Abdullah Habibzai |
Ägypten | Kairo | 93.400.000 | 1.001.450 | Kairo | 9.153.135 | 606 | Khaled Abdel Aal |
null
|
null
|
null
|
null
|
Helsinki | 656.920 | 755 | Juhana Vartiainen |
Algerien | Algier | 42.200.000 | 2.381.741 | Algier | 2.159.051 | 273 | Youcef Cherfa |
Der Full Outer Join 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 | Kabul | 4.273.15 | 275 | Abdullah Habibzai |
Ägypten | Kairo | 93.400.000 | 1.001.450 | Kairo | 9.153.135 | 606 | Khaled Abdel Aal |
Albanien | Tirana | 2.900.000 | 28.748 | null
|
null
|
null
|
null
|
Algerien | Algier | 42.200.000 | 2.381.741 | Algier | 2.159.051 | 273 | Youcef Cherfa |
null
|
null
|
null
|
null
|
Helsinki | 656.920 | 755 | Juhana Vartiainen |