Join: Unterschied zwischen den Versionen
Sn (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Sn (Diskussion | Beiträge) |
||
Zeile 105: | Zeile 105: | ||
=== Beispiele === | === Beispiele === | ||
Der Semi Join <math>\textrm{Land} \ltimes_{\textrm{Land}\_\textrm{Name} = \textrm{Stadt}\_\textrm{Name}} \textrm{Stadt}</math> ergibt folgende Relation: | Der '''Left Semi Join''' <math>\textrm{Land} \ltimes_{\textrm{Land}\_\textrm{Name} = \textrm{Stadt}\_\textrm{Name}} \textrm{Stadt}</math> ergibt folgende Relation: | ||
{| class="wikitable" | {| class="wikitable" | ||
|+<math>\textrm{Land} \ltimes_{\textrm{Land}\_\textrm{Name} = \textrm{Stadt}\_\textrm{Name}} \textrm{Stadt}</math> | |+<math>\textrm{Land} \ltimes_{\textrm{Land}\_\textrm{Name} = \textrm{Stadt}\_\textrm{Name}} \textrm{Stadt}</math> | ||
Zeile 128: | Zeile 128: | ||
|2.381.741 | |2.381.741 | ||
|} | |} | ||
Der Semi Join <math>\textrm{Land} \rtimes_{\textrm{Land}\_\textrm{Name} = \textrm{Stadt}\_\textrm{Name}} \textrm{Stadt}</math> ergibt folgende Relation: | Der '''Right Semi Join''' <math>\textrm{Land} \rtimes_{\textrm{Land}\_\textrm{Name} = \textrm{Stadt}\_\textrm{Name}} \textrm{Stadt}</math> ergibt folgende Relation: | ||
{| class="wikitable" | {| class="wikitable" | ||
|+<math>\textrm{Land} \rtimes_{\textrm{Land}\_\textrm{Name} = \textrm{Stadt}\_\textrm{Name}} \textrm{Stadt}</math> | |+<math>\textrm{Land} \rtimes_{\textrm{Land}\_\textrm{Name} = \textrm{Stadt}\_\textrm{Name}} \textrm{Stadt}</math> | ||
Zeile 153: | Zeile 153: | ||
== Outer Join == | == 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 [[Null|Nullwerten]] auf. | ||
=== Beispiele === | |||
Der '''Left Outer Join''' <math>\textrm{Land} \text{ ⟖ }_{\textrm{Land}\_\textrm{Name} = \textrm{Stadt}\_\textrm{Name}} \textrm{Stadt}</math> ergibt folgende Relation: | |||
{| class="wikitable" | |||
|+<math>\textrm{Land} \text{ ⟖ }_{\textrm{Land}\_\textrm{Name} = \textrm{Stadt}\_\textrm{Name}} \textrm{Stadt}</math> | |||
!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 | |||
|<code>null</code> | |||
|<code>null</code> | |||
|<code>null</code> | |||
|<code>null</code> | |||
|- | |||
|Algerien | |||
|Algier | |||
|42.200.000 | |||
|2.381.741 | |||
|Algier | |||
|2.159.051 | |||
|273 | |||
|Youcef Cherfa | |||
|} | |||
Der '''Right Outer Join''' <math>\textrm{Land} \text{ ⟕ }_{\textrm{Land}\_\textrm{Name} = \textrm{Stadt}\_\textrm{Name}} \textrm{Stadt}</math> ergibt folgende Relation: | |||
{| class="wikitable" | |||
|+<math>\textrm{Land} \text{ ⟕ }_{\textrm{Land}\_\textrm{Name} = \textrm{Stadt}\_\textrm{Name}} \textrm{Stadt}</math> | |||
!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 | |||
|- | |||
|<code>null</code> | |||
|<code>null</code> | |||
|<code>null</code> | |||
|<code>null</code> | |||
|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''' <math>\textrm{Land} \text{ ⟗ }_{\textrm{Land}\_\textrm{Name} = \textrm{Stadt}\_\textrm{Name}} \textrm{Stadt}</math> ergibt folgende Relation: | |||
{| class="wikitable" | |||
|+<math>\textrm{Land} \text{ ⟗ }_{\textrm{Land}\_\textrm{Name} = \textrm{Stadt}\_\textrm{Name}} \textrm{Stadt}</math> | |||
!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 | |||
|<code>null</code> | |||
|<code>null</code> | |||
|<code>null</code> | |||
|<code>null</code> | |||
|- | |||
|Algerien | |||
|Algier | |||
|42.200.000 | |||
|2.381.741 | |||
|Algier | |||
|2.159.051 | |||
|273 | |||
|Youcef Cherfa | |||
|- | |||
|<code>null</code> | |||
|<code>null</code> | |||
|<code>null</code> | |||
|<code>null</code> | |||
|Helsinki | |||
|656.920 | |||
|755 | |||
|Juhana Vartiainen | |||
|}{{Navigationsleiste Operatoren der Relationenalgebra}} | |||
[[Kategorie:Datenbanken]] | [[Kategorie:Datenbanken]] |
Version vom 13. Januar 2023, 09:08 Uhr
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 |