Outer-Join

Unterseite von Join

Die Outer-Join-Operatoren sind Varianten des Theta-Joins. Ein Outer-Join verknüpft Tupel (Zeilen, Datensätze) aus zwei Relationen, auch wenn die zu verknüpfenden Werte nur in einer Relation vorkommen. Ein Theta-Join liefert die Tupel, deren Ursprungstupel in beiden Relationen vorkommen und dem Verknüpfungsprädikat (Sekeltionsprädikat B) genügen. Die Tupel, die nur in der einen Relation vorkommen und für die es gemäß dem Verknüpfungsprädikat keine zugehörigen Tupel in der anderen Relation gibt, werden als "Dangling Tupel" bezeichnet, als baumelnde Tupel. Und mittels der Outer-Join-Operatoren ist es nun möglich, auch diese "Dangling Tupels" mit in die Ergebnismenge auszunehmen.

Definition:

Der linke Outer-Join (linker äußerer Join) zweier Relationen R1 und R2 ist ein Join-Operator, bei dem alle Tupel der linken Relation, hier R1, die im Theta-Join unterdrückt werden, als Tupel mit aufgeführt und in den Spalten, die zu R2 gehören, mit NULL-Werten aufgefüllt werden.

Der rechte Outer-Join (rechter äußerer Join) zweier Relationen R1 und R2 ist ein Join-Operator, bei dem alle Tupel der rechten Relation, hier R2, die im Theta-Join unterdrückt werden, als Tupel mit aufgeführt und in den Spalten, die zu R1 gehören, mit NULL-Werten aufgefüllt werden.

Der Outer-Join (beidseitiger, vollständiger äußerer Join) zweier Relationen R1 und R2 ist ein Join- Operator, bei dem alle Tupel der rechten Relation und der linken Operation mit NULL-Werten aufgefüllt werden, die beim Theta-Join herausfallen würden.

Beispiele:

Seien zwei Relationen gegeben durch R1(S1 , S2) und R2(S3, S4 )

S1S2
AW
BX
CY
S3S4
CY
DZ

Der linke Outer-Join von R1 und R2 über die Bedingung (S1 = S3) ist dann gleich der Tabelle:

Linker Outer Join (R1, R2, (S1 = S3))

S1S2S3S4
AWNULLNULL
BXNULLNULL
CYCY

Der rechte Outer-Join von R1 und R2 über die Bedingung (S1 = S3) ist dann gleich der Tabelle:

Rechter Outer Join (R1, R2, (S1 = S3))

S1S2S3S4
CYCY
NULLNULLDZ

Und der vollständige Outer-Join von R1 und R2 über die Bedingung (S1 = S3) ist dann als Kombination von rechtem und linken Outer-Join gleich der Tabelle:

Outer Join (R1, R2, (S1 = S3))

S1S2S3S4
AWNULLNULL
BXNULLNULL
CYCY
NULLNULLDZ

Hierbei bezeichnet NULL einen Nullwert, also das leere Attribut, wie unter SQL.

siehe auch: Relationale-Algebra, Join, Join-Tabelle, Outer-Join-SQL

Kategorie: Relationale Algebra, O

Quellen:

  • Elmasri, Ramez/Navathe, Shamkant B.: "Grundlagen von Datenbanksystemen" , Pearson Studium, München, 2002, ISBN 3-8273-7021-3
  • Faeskorn-Woyke, Heide/Bertelsmeier, Birgit/Riemer, Petra/Bauer, Elena: "Datenbanksysteme - Theorie und Praxis mit SQL2003, Oracle und MySQL", Pearson Education, München, 2007, ISBN 978-3-8273-7266-6
  • Kemper, Alfons/Eickler, André: "Datenbanksysteme", Oldenbourg, München, 2009, 978-3-486-59018-0
  • Saake, Gunter/Sattler, Kai-Uwe/Heuer, Andreas: "Datenbanken - Konzepte und Sprachen", mitp-Verlag, Redline GmbH, Heidelberg, 2007, ISBN 3-8266-1664-2
  • Vossen, Gottfried: "Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme", Oldenbourg, München, 2008, ISBN 978-3-486-27574-2