09.02.2013 Aufrufe

pdf (870 Kb) - Fachgebiet Datenbanken und Informationssysteme

pdf (870 Kb) - Fachgebiet Datenbanken und Informationssysteme

pdf (870 Kb) - Fachgebiet Datenbanken und Informationssysteme

MEHR ANZEIGEN
WENIGER ANZEIGEN

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-

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!