Universität Augsburg, Institut für Informatik Prof. Dr. W. Kießling Dr. F. Wenzel, L. Rudenko SS 2016 20. Mai. 2016 Übungsblatt 6 Suchmaschinen Aufgabe 1: Hasse-Diagramm mit trivialer SV-Semantik Gegeben ist folgende bekannte Relation Artikel mit den Domänen • dom(Color) = {white, green, yellow, red, black, blue} • dom(Price) = R+ 0 Artikel ID 1 2 3 4 5 Color white green yellow yellow red Price 22 22 21 10 30 Weiter sind die folgenden Basispräferenzen gegeben: • P1 = P OS/P OS(Color, {0 green0 ,0 red0 }, {0 yellow0 }, =) • P2 = AROU N D(P rice, 30, =) • P3 = HIGHEST2 (ID, 5, =) Zeichnen Sie die Hasse-Diagramme für folgende komplexe Präferenzen: • P4 = P1 ⊗ P2 • P5 = P2 & P 3 • P6 = P3 ⊗ (P1 & P2 ) Aufgabe 2: Komplexe Ranking-Präferenz Gegeben ist folgende aus der Vorlesung bekannte Relation mit dom(ident) = {Maggie, Bart, Homer, Selma, Smithers, Skinner}, dom(color) = {white, yellow, red} und inf age = 10, supage = 60. oldtimer ident Maggie Bart Homer Selma Smithers Skinner color white white yellow red red yellow age 29 19 35 40 43 51 Ferner sind folgende Präferenzen gegeben: a) P1 = P OS/P OS(color, {white}; {yellow}), P2 = AROU N D(age, 40) b) P1 = BET W EEN5 (age, [30, 33]), P2 = P OS/N EG(color, {white}; {yellow}) Da alle gezeigten Basispräferenzen Subkonstruktoren der SCORE-Präferenz sind, lassen sich diese jeweils auf eine SCORE-Präferenz mit entsprechender (im Skript definierter) SCORE Funktion f abbilden. Diese bilden wiederum die Grundlage für die komplexe Ranking-Präferenz. Bestimmen Sie jeweils getrennt für a) und b) das BMO-Set bezüglich oben gezeigter Relation mit einer Ranking-Funktion F (f1 (x1 ), f2 (x2 )) = f1 (x1 ) + f2 (x2 ). Vergleichen Sie anschließend das Ergebnis für a) mit den Ergebnissen für eine Pareto bzw. Priorisierungs-Präferenz anstelle der RankF Präferenz. Aufgabe 3: Modellierung und Auswertung von Präferenzen Gegeben sei folgende Instanz einer Relation Song ohne Angabe der Domänen: Song ID 1 2 3 4 5 6 7 Album Talking Book Talking Book Miles Smiles Help Maiden Voyage Moby 18 Moby 18 Titel Sunshine Superstition Orbits Help! Maiden Voyage 18 Fireworks Künstler Stevie Wonder Stevie Wonder Miles Davis Beatles Herbie Hancock Moby Moby Dauer 2,97 4,43 4,60 2,30 7,95 4,47 2,20 Plattenfirma Motown Motown Columbia Capitol Blue Note EMI EMI Jahr 1972 1972 1967 1965 1965 2004 2004 1) Betrachten Sie die Song-Relation von oben. Bestimmen Sie das Ergebnis (IDs) der Präferenzselektion folgender Präferenzen, basierend auf den angegebenen Daten. Das Infimum von Dauer sei 0. a) P1 := P OS(Album, {Moby 18, Talking Book}) ⊗ LOW EST4 (Dauer, 2.20) b) P2 := P OS(Album, {Moby 18, Talking Book}, T RIV IAL) ⊗ LOW EST4 (Dauer, 2.20, =) 2) Setzen Sie folgende Anfragen in Ausdrücke in Preference SQL um. a) “Ich suche Album und Titel der Songs, deren Dauer möglichst zwischen 3 Minuten und 3,8 Minuten liegt.” b) “Ich möchte alle Künstler, die bevorzugt ein Album um das Jahr 1970 veröffentlicht haben. Abweichungen von 5 Jahren sind für mich gleich gut. Die Plattenfirma sollte ’Motown’ sein, aber möglichst nicht ’Capitol’. Dies ist mir weniger wichtig als das Jahr.” c) “Ich möchte alle Titel haben, die möglichst lange dauern, aber auf gar keinen Fall länger als 10 Minuten sind. Das Album sollte ’Talking Book’ oder ’Moby 18’ sein, wobei beide gleich gut sind (reguläre SV-Semantik). Beide Wünsche sind mir gleich wichtig.” d) ”Ich suche Titel der Künstler ’Stevie Wonder’ und ’Ringo Star’. Wenn es keine Titel dieser Künstler gibt, bevorzuge ich Titel von ’Roger Waters’ und ’David Gilmour’, danach die von ’Miles Davis’ und anschließend die von ’Herbie Hancock’. ’Moby’ soll definitiv nicht im Ergebnis erscheinen.“ Aufgabe 4: Erstellen eines Datenbankaccounts Damit Sie die Preference SQL Übungsaufgaben direkt auf der Oracle-Datenbank ausführen können, benötigen Sie einen Datenbank-Account. Gehen Sie zum Erstellen Ihres persönlichen Accounts wie folgt vor: 1. Öffnen Sie den Oracle SQL-Developer (installiert auf den PCs im Datenbankraum) 2. Rechts-Klick auf Verbindungen → Neue Verbindung 3. Tragen Sie folgende Daten ein: • Verbindungsname: SuMa-OracleAccount • Benutzername: student • Kennwort: student • Hostname: gemini.informatik.uni-augsburg.de • Port: 1521 • SID: db 4. Stellen Sie eine Verbindung zur Datenbank her. 5. Führen Sie im SQL-Worksheet folgenden Befehl aus CALL create suma user(’BENUTZER’, ’PASSWORT’); Dabei müssen Sie als Benutzer und Passwort ihre Matrikelnummer verwenden, z.B. CALL create suma user(’0815’, ’0815’); 6. Melden Sie sich anschließend wieder ab. Hinweise: • Benutzen Sie den Account student nicht für Ihre Übungsaufgaben. Der Account wird nach Ablauf eines gewissen Zeitfensters gesperrt. • Der Datenbank-Account dient nur für die Übungen zur Vorlesung. Alle Accounts werden zum Ende des Sommersemesters gelöscht.