2016-11-05 4 views
2

natural joins 2 relationsDatabase- Relationale Algebra natürlich verbindet zwei Tabellen bestehen zwei gleichen Spaltennamen

Ich habe durch ein Beispiel Natural Join beteiligt 2 Beziehungen lesen, die zwei identische Spalten Namen haben. Ich verstehe die mit 1 identischen Spaltennamen in 2 Tabellen, aber eigentlich keine Ahnung für diesen Fall. Könnte mir jemand erklären, wie man diese Ausgabe bekommt (nicht im Sql-Befehl)?

Danke!

+0

Was ist eine * Definition * von natürlichen Join, die Sie referenziert haben? – philipxy

Antwort

4

Die gemeinsame Spalte sind B und D, also Zeilen von beiden Seiten übereinstimmen, wenn sie die gleichen B und D-Werte haben.
Die gemeinsamen (B, D) -Werte in diesem Beispiel sind (1, a) und (2, b).
2 Zeilen von r 'mit (1, a) sind auf 2 Zeilen von s' abgestimmt, wodurch 4 Kombinationen entstehen.
1 Zeile von r 'mit (2, b) wird mit 1 Zeile von s' abgeglichen, wodurch eine einzelne Kombination entsteht.
Daher 5 Zeilen in der Ergebnismenge.

1

Jedes Tupel ist ein Satz mit einem Wert für jedes Attribut. Wenn sich zwei Tupel auf alle Werte ihrer gemeinsamen Attribute einigen, gibt es ein Tupel, das ihre Vereinigungsmenge ist. ZB ist {A α B 1 C α D a} U s {B 1 D a E α} = {A α B 1 C α D a E α}. Ansonsten gibt es kein Tupel, das ihre Vereinigungsmenge ist. ZB für r's {A α B 1 C α D a} und s's {B 3 D a E β}.

Der natürliche Join zweier Relationen ist die Menge der Tupel, die die Vereinigungsmenge eines Tupels von jedem ist. Wir berechnen es, indem wir jedes Paar eines Tupels von jedem betrachten und wenn es ein Tupel gibt, das ihre Vereinigungsmenge ist, dann ist es im Ergebnis.

Also r ⋈ s ist die Menge der Tupel, die die Vereinigungsmenge eines Tupels von r und eines Tupels von s sind. Wir berechnen es, indem wir jedes Paar eines Tupels von r ein Tupel von s betrachten und wenn es ein Tupel gibt, das ihre Vereinigungsmenge ist, dann ist es im Ergebnis.

Zuerst stimmen r'{A α B 1 C α D a} und s '{B 1 D a E α} auf die Werte ihrer gemeinsamen Attribute überein. Also ist ihre Mengeneinheit {A α B 1 C α D a E α} in r ∈ s.

Als nächstes haben r {A α B 1 C α D a} und ss {B 3 D a E β} unterschiedliche Werte für ihre gemeinsamen Attribute. Es gibt also kein Tupel, das ihre Vereinigungsmenge ist. Dieses Tupelpaar hat also keine feste Vereinigungsmenge in r ∈ s.

Fortfahren für jedes Paar Tupel von r & s.

Verwandte Themen