Natural-Join

Unterseite von Join

Ein Equi-Join, bei dem zusätzlich die Attribute, die in der Ergebnismenge doppelt vorkommen und gleich heißen, nur einmal aufgelistet werden, heißt 'Natural-Join' oder auch 'natürlicher Join'. Er wird abgekürzt als Natural-Join(R1,R2) oder als: R1 * R2

Der Natural-Join hat die Eigenheit, dass für ihn kein explizites Selektionsprädikat B formuliert werden muss. Sein Selektionsprädikat ist wie folgt implizit definiert und wird automatisch ausgeführt:

  • Die Werte aller Attribute, die gleich heißen, werden auf Gleichheit geprüft. Es ist also nur das Vergleichsprädikat "=" zugelassen, woraus sich auch erklärt, dass jeder Natural-Join ein Equi-Join ist.
  • Mehrere solcher Gleichheitsbedingungen werden mit dem booleschen Operator UND (AND) verknüpft. Auch hier ist die dreiwertige Logik zu beachten.
  • Abschließend werden die namensgleichen Attribute heraus projiziert, so dass jeder Attributname nur einmal in der Ergebnismenge auftritt. Diese Projektion verursacht keinen Verlust von Informationen, da aufgrund der Gleichheitsbedingung in den namensgleichen Attributen die gleichen Werte stehen.

1.Beispiel:

Seien zwei Relationen gegeben durch; R1(A1, A2) und R2(A1,B2 ,B3 ):

A1A2
1A
2B
3C
A1B2B3
1XV
2YW

Dann ist das kartesische Produkt R1 x R2 gleich der Tabelle:

A1A2A1B2B3
1A1XV
1A2YW
2B2YW
3C1XV
3C2YW
2B1XV

und der Natural Join: R1 * R2 ist dann gleich der Tabelle:

A1A2B2B3
1AXV
2BYW

2.Beispiel:

Es seien folgende Relationen 'Mitarbeiter und die 'Abteilungen' gegeben:

Mita_IDNameVornameOrtAbt_IDGehalt
4711MüllerAgatheGummersbach103000,00
4713MeierHugoKöln203400,00
4897SchmittErwinGummersbach202500,00
4944SchmitdElseGummersbach20 
Abt_IDBezeichnungBudgetLeiter
10Einkauf240000,004711
20Verkauf350000,004897
30Produktion400000,00 

Bestimmen Sie das kartesische Produkt 'Mitarbeiter x Abteilungen'!

Ergebnis:

Mita_IDNameVornameOrtAbt_IDGehaltAbt_IDBezeichnungBudgetLeiter
4711MüllerAgatheGummersbach103000,0010Einkauf240000,004711
4711MüllerAgatheGummersbach103000,0020Verkauf350000,004897
4711MüllerAgatheGummersbach103000,0030Produktion400000,00 
4713MeierHugoKöln203400,0010Einkauf240000,004711
4713MeierHugoKöln203400,0020Verkauf350000,004897
4713MeierHugoKöln203400,0030Produktion400000,00 
4897SchmittErwinGummersbach202500,0010Einkauf240000,004711
4897SchmittErwinGummersbach202500,0020Verkauf350000,004897
4897SchmittErwinGummersbach202500,0030Produktion400000,00 
4944SchmitdElseGummersbach20 10Einkauf240000,004711
4944SchmitdElseGummersbach20 20Verkauf350000,004897
4944SchmitdElseGummersbach20 30Produktion400000,00 

Zeigen Sie alle Mitarbeiter an mit ihren Abteilungen, in denen sie arbeiten, also den Natural-Join(Mitarbeiter, Abteilungen)!

Ergebnis:

Mita_IDNameVornameOrtGehaltAbt_IDBezeichnungBudgetLeiter
4711MüllerAgatheGummersbach3000,0010Einkauf240000,004711
4713MeierHugoKöln3400,0020Verkauf350000,004897
4897SchmittErwinGummersbach2500,0020Verkauf350000,004897
4944SchmitdElseGummersbach 20Verkauf350000,004897

siehe auch: Relationale-Algebra, Join, Equi-Join-SQL

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

siehe auch: Relationale-Algebra, Join, Natural-Join-SQL

Kategorie: Relationale Algebra, N