Non-Standard-Datenbanken First-n- und Top-k-Anfragen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme.

Slides:



Advertisements
Ähnliche Präsentationen
ER-Datenmodell und Abfragen in SQL
Advertisements

Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Informationsintegration Top-N Anfragen
3. Kapitel: Komplexität und Komplexitätsklassen
Bauinformatik II Softwareanwendungen 1
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
FH-Hof Effizienz - Grundlagen Richard Göbel. FH-Hof Inhalt Einführung Aufwand für Anfragen ohne Indexierung Indexstrukturen für Anfragen an eine Tabelle.
Algorithmen und Datenstrukturen
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen 09 - Weitere Sortierverfahren Heapsort-Nachtrag Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11-1 –Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27-Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
SQL als Abfragesprache
Prof. Dr. T. Kudraß1 Relationenkalkül. Prof. Dr. T. Kudraß2 Relationenkalkül Zwei Ausprägungen: Tupelrelationenkalkül (TRK) und Domänenrelationenkalkül.
Prof. Dr. T. Kudraß1 Relationen-Algebra. Prof. Dr. T. Kudraß2 Relationale Anfragesprachen Query Language (QL): Manipulation und Retrieval von Daten einer.
MMQL – Multimedia Query Language Eine Anfragesprache für Multimedia-Ähnlichkeitsanfragen Christian Mantei.
Übung Datenbanksysteme SQL-Anfragen (2)
Einführung Dateisystem <-> Datenbanksystem
Minimum Spanning Tree: MST
Beispielrelation Buchbestellungen H = Menge der bedeutenden Ziele = {a, d} Schwelle T = 4 Stichprobe S = {a, b, a, a, a, a} mit s = |S| = 6 N = Anzahl.
Intelligentes Crawling im WWW mit Hilfe intuitiver Suchbedingungen
Abfragen – Tipps und Tricks Buch S102ff (Informatik I, Oldenbourg-Verlag) Nach einer Vorlage von Dieter Bergmann.
OQL-Anfragen (1) Alle Punkte, die auf der Null-Ebene liegen: selectstruct (ex : x, ey : y) fromallePunkte wherez = 0 Rückgabetyp: bag > Alle Kanten, die.
Übung 1: SQL Übungen finden bei Bedarf anstelle der Vorlesungen statt
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation I Vorlesung 13 WS 2000/2001 Gerhard Gröger Analyse.
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Hartmut Klauck Universität Frankfurt SS
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung (Teil 1)
Befehle in SQL Erläuterungen.
Datenbanksysteme für hörer anderer Fachrichtungen
Einführung in Datenbankmodellierung und SQL
1 Gruppierung, Aggregierung und Sortierung (2) Abarbeitungsmodell bei Gruppierung: Werte from- und where-Klauseln aus wie bisher (Bildung von Kreuzprodukt.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Structured Query Language
Eike Schallehn, Martin Endig
Vorlesung #5 SQL (Teil 2).
RelationentheorieObjektorientierte Datenbanken  AIFB SS Anfragen auf Sammlungen(1/29) OQL besteht aus einer Menge von Anfrageausdrücken, die.
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
Unscharfe Anfragen in Multimedia- Datenbanksystemen Seminar Multimedia-Datenbanken WS 2001/2002 Silvana Runow.
K-SAT: Ein heuristischer Algorithmen- Vergleich Kann man den ‚Brute Force Search‘ Algorithmus schlagen?
Algorithmen und Datenstrukturen
Seminar zu Datenbanksystemen Sommersemester 2005 Universität Hannover B.Sc. Markus Spehling Vortrag: Based on: Top-k Selection.
Datenbanken abfragen mit SQL
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.
Non-Standard-Datenbanken
Abfragen Wiederholung Manuel Friedrich Schiller-Gymnasium Hof.
Algorithmen und Datenstrukturen
Sortierte Datenbankabfragen
Vorlesung #5 SQL (Teil 2).
Algorithmen und Datenstrukturen
Wirtschaftsinformatik
Laufzeitverhalten beim Sortieren
Non-Standard-Datenbanken
Non-Standard-Datenbanken
Indexierung Oracle: indexes Indexierung.
Algorithmen und Datenstrukturen
Non-Standard-Datenbanken
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen
Nutzung und Modellierung von Datenbanken
Web-Mining Agents Planning
2.3 Gruppierte Datensätze
(Structured Query Language)
 Präsentation transkript:

Non-Standard-Datenbanken First-n- und Top-k-Anfragen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme

First-n-Anfragen Optimierung Non-Standard-Datenbanken Top-k-Anfragen Fagins Algorithmus Schlussakkord First-n und Top-k-Anfragen Anwendungen Danksagung an Felix Naumann für Material aus VL Informationsintegration, WS 05/06

Beispiel Naive Auswertung: Hotels mit aufsteigender Entfernung zu LBC Zur Sortierung: mind Mal distance() ausführen SELECT h.name, h.adresse, h.tel FROM hotels h, flughäfen f WHERE f.name = ‚LBC‘ ORDER BY distance(h.ort, f.ort) M.J. Carey, Donald Kossmann: On Saying "Enough Already!" in SQL. SIGMOD Conference: , 1997

Problem Was machen wir, wenn nur 5 Hotels gezeigt werden sollen? –Auswahl im Anwendungsprogramm Großer Aufwand Eventuell werden sehr viele Daten kommuniziert –Auswahl durch Programmiersprache auf Seiten der DB angewendet auf Anfrageergebnis Keine Optimierung –Gewünschte Anzahl in Anfrage spezifizieren Optimierungsmöglichkeiten 4

5 Gruppierung Sortierung STOP AFTER – Syntax SELECT... FROM... WHERE... GROUP BY... HAVING... ORDER BY... STOP AFTER... ProjektionRelationen Selektion und Join- Bedingungen Selektion nach Gruppierung M.J. Carey, Donald Kossmann: On Saying "Enough Already!" in SQL. SIGMOD Conference: , 1997 Neu: Beschränkung der Ergebniskardinalität

6 STOP AFTER – Semantik Ohne Sortierung –Willkürlich n Tupel aus dem SQL-Ergebnis Mit Sortierung –Erste n Tupel aus dem SQL-Ergebnis (sortiert) –Bei Gleichheit bzgl. des Sortierprädikats willkürliche Auswahl falls n+1-tes Tupel usw. gleich n-tem Tupel Daraus folgt: Falls Ergebnis nur bis zu n Tupel  keine Wirkung

7 STOP AFTER – Beispiel Ergebnis: 5 Hotels mit aufsteigender Entfernung zu LBC Können wir Indexstrukturen für distance() nutzen? SELECT h.name, h.adresse, h.tel FROM hotels h, flughäfen f WHERE f.name = ‚LBC‘ ORDER BY distance(h.ort, f.ort) STOP AFTER 5

8 STOP-AFTER: Berechnete Anzahl Liste Name und Umsatz der 10% umsatzstärksten Softwareprodukte SELECT p.name, v.umsatz FROM Produkte p, Verkäufe V WHERE p.typ = ‚software‘ AND p.id = v.prod_id ORDER BY v.umsatz DESC STOP AFTER ( )

Praktische Ausprägung in PostgreSQL SELECT... FROM LIMIT { count | ALL } OFFSET start Verwendung in Kombination mit ORDER-BY möglich und sinnvoll Falls der Ausdruck count sich zu NULL evaluiert, wird ALL angenommen. Falls der Ausdruck start sich zu NULL evaluiert, wird 0 angenommen.

First-n-Anfragen Optimierung Non-Standard-Datenbanken Top-k-Anfragen Fagins Algorithmus Schlussakkord First-n und Top-k-Anfragen Anwendungen Danksagung an Felix Naumann für Material aus VL Informationsintegration, WS 05/06

11 Optimierung mit Stop-Operator Platzierung des Stop Operators im Anfrageplan Fundamentales Problem: Frühe Platzierung vorteilhaft aber risikoreich –Vorteil: Kleine Zwischenergebnisse  geringe Kosten –Risiko: Endergebnis nicht groß genug  Erneute Ausführung Zwei Strategien –„Konservativ“ und „aggressiv“

12 Optimierung mit Stop-Operator Konservative Strategie –Kostenminimal: Platziere Stop so früh wie möglich in Plan. –Korrekt: Platziere Stop nie so, dass Tupel entfernt werden, die später eventuell gebraucht werden. Operatoren, die Tupel filtern, müssen also früher ausgeführt werden.

13 STOP AFTER: Optimierung Wie würden Sie den Anfragebeantwortungsplan gestalten? Unter welchen Bedinungen ist eine Optimierung möglich? SELECT * FROM mitarbeiter m, abteilung a WHERE m.abt_id = a.id ORDER BY m.gehalt DESC STOP AFTER 10

14 Optimierung mit Stop-Operator SELECT * FROM mitarbeiter m, abteilung a WHERE m.abt_id = a.id ORDER BY m.gehalt DESC STOP AFTER 10 Mitarbeiter mAbteilung a Stop(10) sortStop ⋈ m.abt_id = a.id Mitarbeiter mAbteilung a Stop(10) sortStop ⋈ m.abt_id = a.id m.abt_id NOT NULL m.abt_id ist Fremdschlüssel Unter welchen Bedingungen?

15 Nein! Optimierung mit Stop-Operator SELECT * FROM mitarbeiter m, abteilung a WHERE m.abt_id = a.id AND a.name = ‚Verkauf‘ ORDER BY m.gehalt DESC STOP AFTER 10 Mitarbeiter mAbteilung a Stop(10) sortStop ⋈ m.abt_id = a.id Mitarbeiter mAbteilung a Stop(10) sortStop ⋈ m.abt_id = a.id Erlaubt? a.Name = ‚Verkauf‘

16 Optimierung mit Stop-Operator (aggressiv) SELECT * FROM mitarbeiter m, abteilung a, reisen r WHERE m.abt_id = a.id AND r.konto = m.reisekonto ORDER BY m.gehalt DESC STOP AFTER 10 Mitarbeiter m Abteilung a ⋈ m.rkonto = r.konto Restart Reise r Stop(20) sortStop ⋈ m.abt_id = a.id Stop(10)

First-n-Anfragen Optimierung Non-Standard-Datenbanken Top-k-Anfragen Fagins Algorithmus Schlussakkord First-n und Top-k-Anfragen Anwendungen Danksagung an Felix Naumann für Material aus VL Informationsintegration, WS 05/06

18 Top-k Ergebnisse: Motivation First-n beschränkt Ergebnismenge bzgl. eines Attributs –Bei Verwendung mehrerer Attribute (Sekundärschlüssel) bleibt erstes Attribut dominant Top-k beschränkt Ergebnismenge bzgl. mehrerer Attribute –Sortierung nach einem (komplexen) Maß –Maße sind oft unscharf –Maße haben oft mehrere gleichberechtigte Attribute als Input

19 Top-k in Multimedia DBMS Beatles „Red Album“ Anfrage: –Farbe = ‚rot‘  Name = ‚Beatles‘ Als unscharfes Prädikat: Antwort ist sortierte Liste Als Standard-Prädikat Antwort ist (unsortierte) Menge

20 Top-k: Benotete Mengen Benotete Menge: –Menge aus Paaren (x,g) –x ist ein Objekt –g  [0,1] ist eine Note (grade) Anfrage: Name = ‚Beatles‘ –Antwort: benotete Menge mit g  {0,1} Anfrage: Farbe = ‚rot‘ –Antwort: benotete Menge mit g  [0,1]

21 Top-k: Benotete Mengen Anfrage: –Name = ‚Beatles‘  Farbe = ‚rot‘ –Name = ‚Beatles‘  Farbe = ‚rot‘ Problem: –Maß: Benotung der Objekte in Antwort Sei g A (x) die Note von Objekt x unter Anfrage A. Erwünschte Eigenschaften –Falls g  {0,1} sollte Standard-Logik gelten. –Bewahrung der logischen Äquivalenz g A  A (x) = g A (x) g A  (B  C) (x) = g (A  B)  (A  C) (x) –Monotonie: g A (x)  g A (y), g B (x)  g B (y)  g A  B (x)  g A  B (y)

22 Top-k: Benotete Mengen Vorschlag –Konjunktionsregel: g A  B (x) = min{g A (x), g B (x)} –Disjunktionsregel: g A  B (x) = max{g A (x), g B (x)} Lotfi A. Zadeh: Fuzzy Sets. Information and Control 8(3): , 1965

23 Top-k: Benotete Mengen g A  B (x) = min{g A (x), g B (x)}, g A  B (x) = max{g A (x), g B (x)} Standardlogik (g  {0,1}) –0  1 = min{0,1} = 0 –0  1 = max{0,1} = 1 Äquivalenz –g A  A (x)= min{ g A (x), g A (x) } = g A (x) –g A  (B  C) (x) = min{ g A (x), max{g B (x), g C (x)} } = max{min{ g A (x), g B (x) }, min{ g A (x), g C (x) }} = g (A  B)  (A  C) (x) Monotonie –g A (x)  g A (y), g B (x)  g B (y)  g A  B (x)  g A  B (y) –g A (x)  g A (y), g B (x)  g B (y)  min{g A (x), g B (x)}  min{g A (y), g B (y)}

24 Anfragebeantwortung Gegeben: Konjunktive Anfrage mit teilweise unscharfen Prädikaten. Gesucht: Benotete Menge, so dass k beste Elemente identifiziert werden können Zugriffsmodell auf MMDBMS –Sorted access: Cursor auf sortierte Liste –Random access: Note eines bestimmten Objekts Kostenmodell: –Jedes angefragte Objekt kostet 1 Optimierung: –Minimiere Kosten

25 Top-k: Beispiel Anfrage: –Name = ‚Beatles‘  Farbe = ‚rot‘ DBMS Schallplatten MMDBMS Plattencover Name = ‚Beatles‘ ⋈ s.id = p.id random access G = min{1,g Farbe = ‚rot‘ (x)} Kosten?

26 Top-k: Fagins Algorithmus Allgemeineres Problem: –Anfrage statt A  B nun A 1  A 2 ...  A m –Für jedes Prädikat eine Quelle. bzw. Zugriffsmöglichkeit durch sorted und random access Phase 1: Sorted access Phase 2: Random access Phase 3: Berechnung und Sortierung Ronald Fagin: Fuzzy Queries in Multimedia Database Systems. Proc. PODS-98, 1-10, 1998 Ronald Fagin. Combining Fuzzy Information from Multiple Systems. PODS-96, , 1996

27 Top-k: Fagins Algorithmus A 1  A 2 ...  A m Phase 1: Sorted access –Für jedes i: Schicke A i an Quelle i –Schreite sukzessive voran, bis Join über alle Teilergebnisse die Größe N hat. MMDBMS_1MMDBMS_2MMDBMS_m ⋈ id...

28 Top-k: Fagins Algorithmus MMDBMS_1MMDBMS_2MMDBMS_m... k Objekte aus MMDBMS_1 mit g A1 (x) Objekte aus MMDBMS_2 und MMDBMS_ m mit g A2 (x) und g Am (x) Objekte aus MMDBMS_2 mit g A2 (x) k Objekte aus allen MMDBMS mit allen g Ai (x) also auch mit Gesamt-Note

29 Top-k: Fagins Algorithmus MMDBMS_1MMDBMS_2MMDBMS_m... k Wichtig: Dies sind nicht unbedingt die Top-k Objekte! Der Clou: Unter allen gesehenen Objekten befinden sich auch die Top-k Objekte. Beweis später.

30 Top-k: Fagins Algorithmus Phase 2: Random access –Hole alle unbekannten g Ai (x) ein. MMDBMS_1MMDBMS_2MMDBMS_m... k Ergebnis: Nun kennen wir alle Noten aller gesehenen Objekte.

31 Top-k: Fagins Algorithmus Phase 3: Berechnung und Sortierung –Berechne für jedes Objekt g A1  A2 ...  Am (x) = min{g A1 (x), g A2 (x),..., g Am (x)} –Sortiere alle Objekte nach g A1  A2 ...  Am (x) –Selektierte die höchsten k Objekte. –Ausgabe dieser Top-k Objekte.

32 Fagins Algorithmus – Beispiel Anfrage: –Form = ‚rund‘  Farbe = ‚rot‘  Stil = ‚Modern‘ –k = 2 IDFormRundheit 1oval0.8 2achteck0.6 3viereck0.15 4dreieck0.1 5strich0 IDFarbeRotheit 3rot1 2orange0.5 1gelb0.3 4blau0.01 5grün0 IDStilModernität 3modern1 2rock0.7 4barock0.2 1keltisch0.1 5uralt0.01 MMDBMS_1 MMDBMS_2 MMDBMS_3

33 Fagins Algorithmus – Beispiel IDFormRundheit 1oval0.8 2achteck0.6 3viereck0.15 4dreieck0.1 5strich0 IDFarbeRotheit 3rot1 2orange0.5 1gelb0.3 4blau0.01 5grün0 IDStilModernität 3modern1 2rock0.7 4barock0.3 1keltisch0.2 5uralt0.01 1:(0.8; ??; 0.3) 4:(??; 0.2; ??) 2:(0.6; 0.7; 0.5) 3:(0.15; 1; 1)

34 Top-k: Fagins Algorithmus Korrektheit: –Fagins Algorithmus findet die Top-N Objekte gemäß g A (x). Beweis: –Idee: Wir zeigen für jedes ungesehene Objekt y, dass es nicht unter den Top-k sein kann: –Notation x: gesehene Objekte y: ungesehene Objekte –Für jedes x der Joinmenge nach Phase 1 und jedes Prädikat Ai gilt: g Ai (y)  g Ai (x). –Wegen Monotonie von min{} gilt: g A1  A2 ...  Am (y)  g A1  A2 ...  Am (x). –Es gibt mindestens k solcher Objekte x (Abbruch-Kriterium Phase 1). –Schlussfolgerung: Es gibt kein y, das besser ist als die besten N x. Wichtig: Wir können dies nicht für andere gesehene Objekte zeigen.

35 Top-k: Fagins Algorithmus Aufwand: O(n (m-1)/m k 1/m ) (Beweis: siehe [Fa96]) –n = DB-Größe; m = Anzahl der DBs Beispiel: Objekte, 3 Prädikate, Top /3 x 10 1/3 = –Gilt falls A i unabhängig. –Gilt mit beliebig hoher Wahrscheinlichkeit. D.h.: F ür jedes ε>0  c, so dass die Wahrscheinlichkeit dass der Aufwand höher ist als angegeben < ε ist. Zum Vergleich: Naiver Algorithmus in O(nm) –Im Beispiel: x 3 = Ronald Fagin. Combining Fuzzy Information from Multiple Systems. PODS-96, , 1996

36 Top-k-Anfragen: Herausforderungen Beliebige Maße –Je nach Nutzer bzw. Anwendung Effiziente Ausführung in bestehenden DBMS –Unter Ausnutzung vorhandener Datenstrukturen und Metadaten Korrektheit und Vollständigkeit In der Literatur verfolgter Ansatz: Wandele Top-k-Anfragen in herkömmliche Anfragen um Surajit Chaudhuri, Luis Gravano: Evaluating Top-k Selection Queries. VLDB 1999: , 1999

First-n-Anfragen Optimierung Non-Standard-Datenbanken Top-k-Anfragen Fagins Algorithmus Schlussakkord First-n und Top-k-Anfragen Anwendungen Danksagung an Felix Naumann für Material aus VL Informationsintegration, WS 05/06