pdf (870 Kb) - Fachgebiet Datenbanken und Informationssysteme
pdf (870 Kb) - Fachgebiet Datenbanken und Informationssysteme
pdf (870 Kb) - Fachgebiet Datenbanken und Informationssysteme
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
2.5. FAZIT DER ALGEBRAISCHEN OPTIMIERUNG 19<br />
werden können. Meistens hilft es, wenn man die restriktivste Selektion als letzte<br />
bearbeitet.<br />
Letztendlich wird die richtige Reihenfolge der Selektion durch einen eigens für diese<br />
Aufgabe programmierten Optimierer erledigt, der für jeden Fall die benötigte<br />
Reihenfolge liefert - unabhängig von der Eingabe der Konditionen. Eine einfache<br />
Lösung dieser Problematik besteht darin, die vorher vorgestellte Regel (i)<br />
zu benutzen, denn diese zerlegt die Selektionsbedingungen in atomare Prädikate,<br />
bei denen man die Reihenfolge vorgeben kann. Somit wird die Sortierung der<br />
Selektionen von der Regel (i) vorgenommen, bei der die spätere Implementierung<br />
einfacher ist.<br />
Die Regel (o) wird in den meisten Büchern über Anfrageoptimierung auch mit<br />
Durchschnitt <strong>und</strong> Differenz angegeben (z. B. bei Mitschang [36]). Dieses ist aber<br />
falsch. Zur Erklärung hier ein kurzes Gegenbeispiel:<br />
Seien folgende Relationen R1, R2 mit gleichen Schemata gegeben:<br />
R1 A B C<br />
2 2 3<br />
3 3 1<br />
R2 A B C<br />
1 1 1<br />
2 2 1<br />
Die gewünschte Operation sei πA,B(R1) ∩ πA,B(R2). Somit bekommt man als Ergebnisrelation:<br />
A B<br />
2 2<br />
Wenn man jetzt aber den Durchschnitt vor der Projektion ausführt πA,B(R1 ∩<br />
R2), bekommt man ein anderes Ergebnis; nämlich die leere Menge. Daraus folgt<br />
πA,B(R1) ∩ πA,B(R2) �= πA,B(R1 ∩ R2).<br />
Gleiches gilt auch für die Differenz zweier Relationen. Auch da können unterschiedliche<br />
Ergebnisse vorkommen.<br />
Die im vorigem Abschnitt vorgestellte Heuristik basiert auf dem Ablauf, der bei<br />
Vossen [57] wieder zu finden ist. Dabei wurde die Regel (p) hinzugefügt, da die<br />
meisten Bücher annehmen, daß Kartesische Produkte gar nicht mehr existieren,<br />
sondern generell schon - bei der 1:1-Übersetzung in den Anfragebaum - als Joins<br />
interpretiert werden. Dieser Sachverhalt entzieht aber dem Nutzer die Möglichkeit,<br />
bei der Bearbeitung der Heuristik einzelne Abläufe zu verändern <strong>und</strong> den<br />
speziellen Beispielen anzupassen (bei der später vorgestellten Implementierung<br />
werden dafür mehrere Beispiele vorgeführt).<br />
Weitere Bücher (darunter Mitschang [36] <strong>und</strong> Kemper [29]) haben teilweise andere<br />
Abläufe, die aber - nach mehreren Testdurchläufen mit verschiedenen Bei-