09.02.2013 Aufrufe

pdf (870 Kb) - Fachgebiet Datenbanken und Informationssysteme

pdf (870 Kb) - Fachgebiet Datenbanken und Informationssysteme

pdf (870 Kb) - Fachgebiet Datenbanken und Informationssysteme

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

3.3. JOIN-METHODEN (✶P , ⊲⊳P ) 31<br />

Joins. Der Iterator zu den verschiedenen Semijoin-Operatoren ist jeweils fast der<br />

gleiche wie bei dem Join-Operator, mit dem kleinen Unterschied, daß stets statt<br />

des Verb<strong>und</strong>es zweier passender Tupel nur das linke Tupel ausgegeben wird <strong>und</strong><br />

die Suche nach Join-Partnern in der rechten Eingabe (Relation bzw. Index) abgebrochen<br />

wird, falls ein Partner für das linke Tupel gef<strong>und</strong>en wurde.<br />

Für Join <strong>und</strong> Semijoin gilt:<br />

R1 ✶p R2 = (R1 ⋉p πattr(p)(R2)) ✶p R2.<br />

Aus dieser Gleichung folgt die Möglichkeit, bei verteilten <strong>Datenbanken</strong> den Transfer<br />

zu verringern. Soll ein Join zweier Relationen vorgenommen werden, die auf<br />

zwei verschiedenen Sites gespeichert sind, kann zunächst die Projektionπattr(p)(R2)<br />

gebildet <strong>und</strong> versendet werden, daraufhin mittels eines Semijoins R1⋉pπattr(p)(R2)<br />

die ” überflüssigen“ Tupel (sogenannte dangling-tupel) der Relation R1 eliminiert<br />

<strong>und</strong> die benötigten Tupel, also das erhaltene Zwischenergebnis, zurückgesandt<br />

werden. Zum Abschluß wird ein Join dieses Zwischenergebnisses <strong>und</strong> der Relation<br />

R2 gebildet. Insbesondere wenn es viele dangling-Tupel gibt, spart diese<br />

Ausführung viel Datentransfer ein.<br />

Der Antisemijoin ( ¯⋉p) liefert im Gegensatz zum Semijoin alle die Tupel aus R1,<br />

die keinen Joinpartner in der zweiten Relation R2 haben:<br />

R1 ¯⋉p R2 = R1 − (R1 ⋉p R2)<br />

3.3.6 Outer-Joins (❂⋊p, ⋉❁p, ❂×❁p)<br />

Die bislang eingeführten Join-Operator nennt man normalerweise Inner-Joins, da<br />

bei dieser Variante die Tupel der Argumentrelation verloren gehen, die keinen<br />

Joinpartner gef<strong>und</strong>en haben. Bei der Outer-Join Operation werden je nach Typ<br />

auch partnerlose Tupel der linken, der rechten bzw. beider Argumentrelationen<br />

ins Ergebnis übernommen, dabei werden die fehlenden Attribute bei den partnerlosen<br />

Tupeln mit Nullwerten aufgefüllt.<br />

• Left-Outer-Join (❂⋊p)<br />

Die partnerlosen Tupel der linken Relation, rechts aufgefüllt mit Nullwerten,<br />

werden dem Ergebnis hinzugefügt.<br />

• Right-Outer-Join (⋉❁p)<br />

Die partnerlosen Tupel der rechten Relation, links aufgefüllt mit Nullwerten,<br />

werden dem Ergebnis hinzugefügt.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!