11.07.2015 Aufrufe

ODL-Sprachkonstrukte und interaktive Benutzerschnittstelle - TUM

ODL-Sprachkonstrukte und interaktive Benutzerschnittstelle - TUM

ODL-Sprachkonstrukte und interaktive Benutzerschnittstelle - TUM

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.

6.2 OPTIMIERUNG DER ABFRAGEAUSWERTUNG 111fung eingesetzt werden, ob ein Tupel, bei dem einige der Elementwerte nicht festgelegt sind, dieRestriktionsbedingung verletzt: die optimierte Version des obigen Beispieltyps könnte für ein Tupel(x1=Wert1,x2=Wert2,x3=Wert3) feststellen, ob es die Restriktionsbedingung verletzt, da jedesTupel, das die gesamte Restriktionsbedingung erfüllt, auch die Restriktionsbedingung von v 123erfüllten müsste – diese Funktionalität wäre für Eingabedialoge für eingeschränkte Typen nützlich, dader Benutzer auf diese Weise früher informiert werden könnte, wenn die von ihm eingegebenen Wertedie Restriktionsbedingung nicht erfüllen.Zum Schluss wollen wir noch einige Weiterentwicklungsmöglichkeiten für die beschriebene Optimierungnennen:• Anwendung eines Kostenmodells bei der Optimierung:Wie bei der Beschreibung des Algorithmus im Schritt 5b auf der Seite 107 erwähnt, kann fürSituationen, in denen es mehrere Möglichkeiten gibt, Elemente des Basistyps des zu optimierendeneingeschränkten Typs mit Prädikaten aus dem Restriktionsterm zu gruppieren, eine Berechnungder Kosten für die Auswertung jeder Gruppierungsmöglichkeit vorgenommen werden<strong>und</strong> dann diejenige Optimierung durchgeführt werden, die zu den geringsten Auswertungskostenführt.• Optimierung von Quantortermen:Die vorgestellte Optimierung kann auf von Quantoren geb<strong>und</strong>ene Terme ausgedehnt werden,indem der Typ der vom Quantor geb<strong>und</strong>enen Variablen zu einem eingeschränkten Typ umgewandeltwird, der als Restriktionsterm den Quantorenterm oder einige Teilterme aus ihmenthält. Anschließend kann der Optimierungsalgorithmus auf den Restriktionsterm angewandtwerden.Betrachten wir die Beispielabfrageexists ports:( p1:Port, p2:Port ).(ports.p1.Name = ”Slot1” and ports.p2.Name = ”Slot” andexists ch:Channel.(ch.SourcePort = ports.p1 andch.DestinationPort = ports.p2 ) )Da der Quantorterm eine Konjunktion mehrerer Teilterme darstellt, können wir einige Teiltermein den Typ der Quantorvariablen verlagern, der dafür zu einem eingeschränkten Typ umgewandeltwerden muss:exists ports:{ p:( p1:Port, p2:Port ) |p.p1.Name = ”Slot1” and p.p2.Name = ”Slot” }.exists ch:Channel.(ch.SourcePort = ports.p1 andch.DestinationPort = ports.p2 )Bereits diese Umformung bringt Zeitgewinne bei der Auswertung. Nach der Anwendung desOptimierungsalgorithmus auf den eingeschränkten Typ erhalten wir eine Formulierung der Abfrage,bei der die Auswertungszeit noch einmal sinkt:exists ports:(p1:{ p1:Port | p1.Name = ”Slot1” },p2:{ p2:Port | p2.Name = ”Slot” } ).exists ch:Channel.(ch.SourcePort = ports.p1 andch.DestinationPort = ports.p2 )

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!