Universität Augsburg, Institut für Informatik Prof. Dr. W. Kießling Dr. M. Endres, F. Wenzel SS 2014 23. Mai. 2014 Übungsblatt 7 Suchmaschinen Aufgabe 1: Preference SQL Queries In dieser Aufgabe sollen Sie sich mit PreferenceSQL vertraut machen. Über globale Synonyme stehen Ihnen drei Relationen in der Oracle-Datenbank zur Verfügung: beef, beverages und soups. Machen Sie sich mit dem Inhalt der Relationen vertraut. Stellen Sie folgende Anfragen mit Hilfe von Preference SQL an die Oracle-Datenbank: a) Bearbeiten und vergleichen Sie folgende zwei Teilanfragen: • Finden Sie alle Getränke (beverages), deren Kaloriengehalt exakt zwischen 10 und 18 g liegt. • Finden Sie anschließend alle Getränke, deren Kaloriengehalt möglichst zwischen 10 und 18 g sein sollte. b) Ermitteln Sie alle Kombinationen aus beef and beverages, bei denen die Summe der Kalorien kleiner 350 ist. Dabei soll möglichst der Wert ’BEEF TOP’ als Beschreibung für beef (im Attribut Shrt Desc) genauso wichtig sein wie der Wert ’ALCOHOLIC BEV’ für das Attribut Shrt Desc von beverages. c) Finden Sie alle Tupel der Relation beef, deren Beschreibung ’BEEF SHOULDER’ entsprechen soll. Diese Präferenz soll wichtiger sein als ein Fettgehalt um 8 g. Dabei ist eine Abweichung von 2 g akzeptabel. Genauso wichtig wie der Fettgehalt soll möglichst viel Vitamin C sein. Werten Sie die Anfrage einmal mit trivialer und einmal mit regulärer SV-Semantik aus. Was können Sie feststellen? d) Formulieren Sie eine EXPLICIT-Präferenz auf der Relation beverages und stellen Sie die Anfrage an die Datenbank. e) Kann man eine gültige Preference SQL-Anfrage (mit beliebigen Präferenzen) finden, die kein Ergebnis zurückliefert? Aufgabe 2: Inverse AROUND-Präferenz Aus der Vorlesung und dem Skript ist die AROUND-Präferenz mit dazugehöriger Distanz-Funktion bekannt. Diese liefert für perfekte Treffer den Wert Null zurück und ansonsten den absoluten Abstand vom gegebenen Wert zum Zielwert. Betrachten Sie nun eine inverse AROUND-Präferenz, die für perfekte Treffer die größte und für am weitesten entfernte Werte die kleinste Distanz zurückliefert. a) Definieren Sie eine Distanz-Funktion für die vorgestellte inverse AROUND-Präferenz. Dabei brauchen Sie sich vorerst nicht um die Skalierung auf ein Zielintervall kümmern. b) Berücksichtigen Sie nun einen eventuell auftretenden d-Parameter. 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. a) Betrachten Sie folgende Anfrage: Finden Sie alle Produkte, deren Kurzbeschreibung (short desc) möglichst Junior soccer“ entspricht und die möglichst in Bestellungen (Relation s ord) mit ” Gesamtbetrag (total) um 2500 Euro vorkommen. Dabei ist die Beschreibung wichtiger als der Gesamtbetrag. i) Formulieren Sie die Anfrage in Preference SQL. Wie viele Ergebnisse erhalten Sie? ii) Erweitern Sie in Ihrer Anfrage die Präferenz des Gesamtbetrages um einen d-Parameter. Verwenden Sie d = 100. Was fällt Ihnen auf? iii) Finden Sie die 10 besten Ergebnisse zu Ihrer letzten Präferenzanfrage. Bewerten Sie aus Ihrer Sicht die letzten drei Ergebnisse dieser Anfrage. b) Betrachten Sie folgende Anfrage: Finden Sie alle Kunden in der Relation s customer, deren Credit Rating ’EXCELLENT’ oder ”GOOD”, aber nicht ”POOR” sein sollte. Genauso wichtig ist ein Gesamtbetrag (total in s ord) um die 550 Euro. Berücksichtigt werden sollen alle Kunden gruppiert nach Stadt (s customer.city). i) Formulieren Sie die Anfrage in Preference SQL. Wie viele Ergebnisse erhalten Sie? ii) Verwenden Sie statt regulärer SV-Semantik (default) die triviale SV-Semantik in Ihrer Anfrage. Warum erhalten Sie die gleichen Ergebnisse? iii) Erweiteren Sie Ihre Anfrage, so dass nur noch die Ergebnisse der Stadt Seattle ausgegeben werden. c) 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. ” d) 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.