Universität Augsburg, Institut für Informatik Prof. Dr. W. Kießling Dr. M. Endres, F. Wenzel SS 2012 8. Juni 2012 Übungsblatt 8 Suchmaschinen Aufgabe 1: Optimierung und Auswertung von Präferenz-Anfragen a) Folgende relationale Schemata sind gegeben. Auf die Angabe der Domänen wurde aus Gründen der Übersichtlichkeit verzichtet. Inventar Produkt Lager (ProdNr, LagerNr, Status) (ID, Preis) (ID, Anzahl) Bei Inventar.ProdNr handelt es sich um einen Fremdschlüssel auf Produkt.ID, bei Inventar.LagerNr um einen Fremdschlüssel auf Lager.ID. Betrachten Sie die folgende Preference SQL Query: SELECT DISTINCT P.ID, P.Preis FROM Inventar I, Produkt P, Lager L WHERE I.ProdNr = P.ID AND L.ID = I.LagerNr AND L.Anzahl > 50 PREFERRING (I.Status IN (’VORHANDEN’) TRIVIAL AND P.Preis LOWEST TRIVIAL) PRIOR TO (L.Anzahl HIGHEST TRIVIAL) i) Geben Sie die kanonische, nicht optimierte Darstellung dieser Anfrage in PRA an. ii) Optimieren Sie Ihren relationalen Präferenz-Algebraausdruck mit Hilfe des Algorithmus aus der Vorlesung und geben Sie den optimierten Operatorbaum sowie den Namen und Reihenfolge der angewandten Transformationsregeln an. Das Schieben von Projektionen (push projection) können Sie dabei auslassen. iii) Der Preference SQL Befehl EXPLAIN <SQL-Query< gibt für eine gegebene Anfrage die durchgeführten Optimierungsregeln sowie den optimierten Operatorbaum aus. Verwenden Sie EXPLAIN für obige Query und vergleichen Sie Ihren optimierten Operatorbaum mit dem von Preference SQL optimierten Baum. Was fällt Ihnen dabei auf? b) Gegeben ist folgende Instanz einer Relation exercises mit Übungsaufgaben: ID 1 2 3 4 5 6 Schwierigkeit leicht mittel leicht schwer schwer mittel Typ PRA DB1 SuMA DB1 SuMa PRA Punkte 8 4 2 10 12 11 Bestimmen Sie das Ergebnis (IDs) der Präferenzselektion σ[P ](exercises) für folgendes P: P := (P OS(Schwierigkeit, {leicht, mittel}, REGULAR) & (P OS(T yp, {P RA, DB1}, T RIV IAL) ⊗ BETWEEN(P unkte, [6, 9], REGULAR)) 1 Aufgabe 2: Better-Than-Graph (BTG) Gegeben sind folgende Präferenzen mit regulärer SV-Semantik: • P1 = LAYERED3 (Status, {Vollzeit, Freiberufler}, {Teilzeit}, {Praktikant}, OTHERS, ∼ =P 1 ) ∼P ) • P2 = BETWEEN 20 (Arbeitszeit, [20, 40], = 2 a) Bestimmen Sie das maximale Level von P1 ⊗ P2 sowie die Höhe und Knotenanzahl eines entsprechenden Better-Than-Graphen. b) Zeichnen Sie den BTG und überprüfen Sie an ihm die berechneten Kennzahlen aus a). c) Verwenden Sie den in der Vorlesung vorgestellten BTG-Viewer (zum Download auf der Übungsseite) zur Visualisierung des Graphen. Im Feld ”Konfig” müssen die maximalen Level-Werte der Einzelpräferenzen durch Komma getrennt angegeben werden. Aufgabe 3: Preference SQL Queries Als Grundlage für diese Aufgabe dient das Sporting Goods Schema, dessen ER-Diagramm im Downloadbereich zur Übung vorhanden ist. Die Daten werden wieder als globale Synonyme zur Verfügung gestellt. Stellen Sie nun folgende Anfragen mit Hilfe von Preference SQL an die OracleDatenbank: a) Finden Sie alle Mitarbeiter aus der Region ”North America”, die möglichst in der Abteilung ”Administration” und nicht in ”Sales” arbeiten. Des Weiteren sollte der Titel des Angestellten wenn möglich ”President” sein. b) Finden Sie alle Produkte, die im Inventar (Relation s inventory) mindestens eine Stückzahl von 200 und maximal 500 aufweisen. Aus dieser Menge sollen nun möglichst diejenigen Produkte gefunden werden, deren unverbindliche Preisempfehlung (SUGGESTED WHLSL PRICE) bei etwa 60 Euro liegt, wobei eine Preisabweichung von 2 Euro egal sein soll und die innerhalb des geforderten Stückzahlintervalls am häufigsten vorhanden sind. 2