Databases Reference
In-Depth Information
Diese Anfrage gibt einen wichtigen Aufschluss über den Auf-
bau von Anfragen. Typischerweise werden zunächst mit einer
Auswahl alle Zeilen berechnet, die für das Ergebnis interessant
sind, und dann die Details für das Ergebnis heraus projiziert.
Um den Umbenennungsoperator einmal vorzustellen, hätte die
Anfrage auch wie folgt mit gleichem Ergebnis lauten können:
Aufbau einfacher
Anfragen
Proj(Sel(Ren(VK,Verkauf), Ver-
kauf.Verkäufer='Meier'),[Käufer])
Die Anfrage nach allen Verkäufen, die Meier gemacht hat und
die nicht den Kunden Schulz betreffen, lautet wie folgt:
Sel(VK, VK.Verkäufer='Meier' AND VK.Käufer<>'Schulz')
Das Ergebnis ist
Verkäufer
Produkt
Käufer
Meier
Hose
Schmidt
5.2
Ein Verknüpfungsoperator für Relationen
Mit den bisher vorgestellten Operatoren kann man einzelne Re-
lationen sehr detailliert bearbeiten. Bis jetzt können aber nur
verschiedene Relationen verknüpft werden, die vereinigungs-
verträglich sind. Die Verknüpfungsmöglichkeit soll jetzt auf
verschiedene Tabellen erweitert werden, dabei ist das bei der
Einführung von Tabellen im Unterkapitel 3.1 vorgestellte
Kreuzprodukt sehr hilfreich. Zunächst wird als Hilfsdefinition
die Verknüpfung zweier Zeilen definiert.
Definition Verknüpfung von Tupeln: Seien R und S
Relationen mit r=(r 1 ,...,r n )
S. Dann
ist die Verknüpfung oder Konkatenation von r mit s, ge-
schrieben r
R und s=(s 1 ,...,s m )
°
s, definiert als (r 1 ,...,r n, ,s 1 ,...,s m ).
Anschaulich werden die beiden Zeilen einfach hintereinander
geschrieben.
Definition Kreuzprodukt: Seien R und S Relationen,
dann ist das Kreuzprodukt von R und S, geschrieben R
×
S,
S}
Anschaulich wird jede Zeile der einen Relation mit jeder Zeile
der anderen Relation verknüpft.
definiert durch:
R
×
S= { r
°
s | r
R und s
108
Search WWH ::




Custom Search