Relationenalgebra und SQL: Join

Aus testwiki
Zur Navigation springen Zur Suche springen

Vorlage:Navigation zurückhochvor buch

Ein Join (zu deutsch Verbund) bezeichnet die beiden hintereinander ausgeführten Operationen „Kreuzprodukt“ und „Selektion“. Die Selektionsbedingung ist dabei üblicherweise ein Vergleich von Attributen A θ B, wobei θ ein passender Vergleichsoperator ist. Man bezeichnet den allgemeinen Verbund daher auch als θ-Verbund („Theta-Verbund“). Spezialfälle des allgemeinen Verbundes sind der Equi-Join, der Natural-Join und der Semi-Join.

Definition

Für zwei Relationen R(A1,...,An,B1,...,Bn) und S(B1,...,Bn,C1,...,Cn) ist das Ergebnis des allgemeinen Verbundes mit einer Formel Ausdruck als Selektionsbedingung

RAusdruckS:={rs|rRsSAusdruck}

Die Ableitung ist:

RAusdruckS:=σAusdruck(R×S)

Beispiel: Non-Equi-Join

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 7 8 9
4 5 6 7 1 2 3
4 5 6 7 7 8 9
7 8 9 0 1 2 3

SQL

Relationenalgebra und SQL:Vorlage: SQL


Vorlage:Navigation zurückhochvor buch