Relationenalgebra und SQL: Equi-Join

Aus Wikibooks

Wechseln zu: Navigation, Suche
Wikibooks buchseite.svg Zurück zu "Join" | One wikibook.svg Hoch zu "Inhaltsverzeichnis" | Wikibooks buchseite.svg Vor zu "Natural-Join"


Beim Equi-Join (auch Gleichverbund) wird als erstes das kartesische Produkt gebildet. Dann erfolgt die Selektion mit der Bedingung, dass der Inhalt bestimmter Spalten identisch sein muss. Der Equi-Join ist ein allgemeiner Verbund mit einer Formel der Form A = B.

[Bearbeiten] Definition

Für die Relationen R, S und dazugehörige Attribute A ∈ R, B ∈ S ist der Equi-Join

R \triangleright\!\!\triangleleft\,_{A=B} S:= \{ r \cup s | r \in R \land s \in S \land r_{[A]}=s_{[B]} \}

[Bearbeiten] Beispiel

Hier:

R \triangleright\!\!\triangleleft\,_{A=E} S:= \{ r \cup s | r \in R \land s \in S \land r_{[A]}=s_{[E]} \}
R:
A B C D
1 2 3 4
4 5 6 7
7 8 9 0
S:
E F G
1 2 3
7 8 9
R x S:
A B C D E F G
1 2 3 4 1 2 3
4 5 6 7 1 2 3
7 8 9 0 1 2 3
1 2 3 4 7 8 9
4 5 6 7 7 8 9
7 8 9 0 7 8 9
JOIN(R, R.A = S.E, S):
A B C D E F G
1 2 3 4 1 2 3
7 8 9 0 7 8 9

[Bearbeiten] SQL

SELECT * FROM R, S WHERE R.A = S.E

oder

SELECT * FROM R INNER JOIN S ON R.A = S.E


Wikibooks buchseite.svg Zurück zu "Join" | One wikibook.svg Hoch zu "Inhaltsverzeichnis" | Wikibooks buchseite.svg Vor zu "Natural-Join"
Persönliche Werkzeuge