| OSZ Handel I Informatik |
Relationale Datenbanken Grundoperationen auf Tabellen (Relationen) |
Hartmut Härtl |
[Startseite
OSZ | Startseite Gymnasiale Oberstufe | Informatik | Unterrichtsmaterialien] |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JOIN (VERBUND) (Zusammenziehen der Informationen aus
verschiedenen Tabellen) Solange keine der verbundenen Tabellen NULL-Werte enthält sind Verbunde relativ unkompliziert zu handhaben. (Zur Problematik "Verbundspalten mit NULL-Werten" beachte die nachfolgende Seite.) Der einfachste Verbund ist ein sog. "CROSS JOIN" bei dem das Ergebnis aus dem Kreuzprodukt der beteiligten Tabellen besteht. Z.B.:
Dies geschieht z.B. in der nachfolgenden Aufgabe, bei dem auf zwei verschiedenen Lösungswegen ein sog. "natürlichen Verbund" erzeugt wird.
JOINS unter Tabellen, die NULL-Werte enthalten Sobald aber eine der beteiligten Tabellen NULL-Werte enthält, wird die Sache etwas interessanter. Nun erhält man je nachdem, ob man sich für einen INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, oder FULL OUTER JOIN entscheidet ein jeweils anderes Ergebnis. Ändert man das zugrunde liegende Beispiel derart, dass in der Tabelle Artikel die Spalte Stammlief NULL-Werte enthält, würden beide Varianten der Verbundabfrage auf der letzten Seite ein irreführendes Ergebnis liefern.
Aus dieser Ergebnisliste ist nicht zu entnehmen, dass für die Artikel "Gips" und "Zement" kein Lieferant enthalten ist. Wird die Aufgabe wie folgt modifiziert, so führt nur die nachfolgende Lösung zum Erfolg.
Hier führt ein sog. "LEFT OUTER JOIN" zum Erfolg, der das nachfolgende Ergebnis liefert.
LEFT OUTER JOIN (linksseitige Außenverknüpfung) Enthält sämtliche Zeilen der im FROM-Statment genannten Tabelle, auch solche, die im Vergleichskriterium NULL-Werte enthalten und verknüpft diese mit der Tabelle auf der Lieferanten. Kurz: Ein "LEFT OUTER JOIN" enthält alle Zeilen, die ein "INNER JOIN" liefern würde und zusätzlich alle die Zeilen der linken Tabelle, die beim Vergleichskriterium einen NULL-Werte enthalten.
RIGHT OUTER JOIN (rechtsseitige Außenverknüpfung) Enthält sämtliche Zeilen der im JOIN-Statement genannten Tabelle, auch solche, die im Vergleichskriterium NULL-Werte enthalten und verknüpft diese mit der Tabelle auf der linken Seite (hier ebenfalls Lieferanten). Kurz: Ein "RIGHT OUTER JOIN" enthält alle Zeilen, die ein "INNER JOIN" liefern würde und zusätzlich alle die Zeilen der rechten Tabelle, die beim Vergleichskriterium einen NULL-Werte enthalten. (Eine rechtsseitige Außenverknüpfung liefert dieselben Ergebnisse wie eine linksseitige Außenverknüpfung, wenn die Spalten entsprechend vertauscht werden she. Folgendes Beispiel.)
FULL OUTER JOIN (vollständige Außenverknüpfung) Enthält sämtliche Reihen, die in der Bedingung übereinstimmen sowie übereinstimmenden Reihen aus sowohl der linksseitigen als auch der rechtsseitigen Tabelle. Kurz: Ein "FULL OUTER JOIN" enthält alle Zeilen, die ein "INNER JOIN" liefern würde und zusätzlich alle Zeilen sowohl der linken wie auch rechten Tabelle, die beim Vergleichskriterium einen NULL-Werte enthalten.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[Startseite
OSZ | Startseite Gymnasiale Oberstufe | Informatik | Unterrichtsmaterialien] |
| © 05. April 2006 Hartmut Härtl |