Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Informationsintegration Top-N Anfragen 13.12.2005 Felix Naumann.

Ähnliche Präsentationen


Präsentation zum Thema: "Informationsintegration Top-N Anfragen 13.12.2005 Felix Naumann."—  Präsentation transkript:

1 Informationsintegration Top-N Anfragen Felix Naumann

2 Felix Naumann, VL Informationsintegration, WS 05/062 Überblick Anfragen nach den ERSTEN Ergebnissen (First-N) Es reicht! in SQL [CK97] Syntax und Semantik Optimierung Anfragen nach den BESTEN Ergebnissen (Top-N) Motivation Fagins Algorithm

3 Felix Naumann, VL Informationsintegration, WS 05/063 Motivation für First-N 1. Anfragen Semantik: Korrektheit Vollständigkeit D.h. alle Ergebnisse erwünscht Bsp.: Aggregation Anwendungen: DBMS Data Warehouses 2. Browsen Semantik: So korrekt wie möglich So vollständig wie gewünscht D.h. einige, bespielhafte Ergebnisse Bsp: Life Sciences Anwendungen GUI 3. Suchen Semantik So korrekt wie möglich Nur die besten Ergebnisse D.h. Ein oder wenige passende Ergebnisse Bsp: Dokumente Anwendungen: Digital Library Systeme Content Management Systeme Google

4 Felix Naumann, VL Informationsintegration, WS 05/064 Informationsintegration und Browsen Warum sind First-N Techniken für die Informationsintegration interessant? Für Nutzer Art der Daten unbekannt Umfang der Daten unbekannt Browsen Nutzen/Qualität der Daten sowieso zweifelhaft Anfragen nur fuzzy formuliert Verfeinerung der Anfrage in weiteren Schritten Query refinement Für System Datenbeschaffung oft langsam und teuer Deshalb: Großes Optimierungspotential Lokale Optimierung Globale Optimierung: Netzwerkkosten

5 Felix Naumann, VL Informationsintegration, WS 05/065 Anfragebearbeitung in DBMS 1. SQL Anfrage formulieren 2. System nimmt SQL Anfrage entgegen 1. Parsen 2. Optimieren 3. System führt Anfrage aus 1. Tupel-pipeline aufbauen 2. Ergebnistupel in temporäre Tabelle schreiben 4. Rückgabe eines Cursors auf erstes Ergebnistupel 5. Sukzessives next() auf Cursor durch Anwendung 1. GUI (z.B. AquaDataStudio) 2. Programm (z.B. mittels JDBC)

6 Felix Naumann, VL Informationsintegration, WS 05/066 Anfragebearbeitung in DBMS Problem DBMS berechnet vollständiges Ergebnis Anwendung holt eventuell nur wenige Tupel z.B. ein Fenster voll z.B. Top-N Ergebnisse entsprechend einer Sortierung Anwendung spart Aufwand, DBMS jedoch nicht!

7 Felix Naumann, VL Informationsintegration, WS 05/067 Überblick Anfragen nach den ERSTEN Ergebnissen (First-N) Es reicht! in SQL [CK97] Syntax und Semantik Optimierung Anfragen nach den BESTEN Ergebnissen (Top-N) Motivation Fagins Algorithm

8 Felix Naumann, VL Informationsintegration, WS 05/068 Gruppierung SQL SELECT... FROM... WHERE... GROUP BY... HAVING... ORDER BY... ProjektionRelationen Selektion und Join- Bedingungen Selektion nach Gruppierung Sortierung

9 Felix Naumann, VL Informationsintegration, WS 05/ Teures SQL – Beispiel Ergebnis: Hotels mit aufsteigender Entfernung zu TXL Zudem: x distance() ausführen SELECT h.name, h.adresse, h.tel FROM hotels h, flughäfen f WHERE f.name = TXL ORDER BY distance(h.ort, f.ort) Beispiele nach [CK97]

10 Felix Naumann, VL Informationsintegration, WS 05/0610 Neu: Beschränkung der Ergebniskardinalität Gruppierung Sortierung STOP AFTER – Syntax SELECT... FROM... WHERE... GROUP BY... HAVING... ORDER BY... STOP AFTER... ProjektionRelationen Selektion und Join- Bedingungen Selektion nach Gruppierung STOP AFTER nach [CK97] Wichtig: Nicht SQL Standard!

11 Felix Naumann, VL Informationsintegration, WS 05/0611 STOP AFTER – Semantik Semantik: 1. Führe sämtliches Standard-SQL in der Anfrage aus. 2. Beschränke Ergebnis auf erste Tupel. Keine Sortierung Genaue Ergebnismenge nicht spezifiziert Sortierung Genaue Ergebnismenge spezifiziert, außer bei Duplikaten in Sortierungsattributen: Genaue Ergebnismenge nicht spezifiziert Weniger als N Tupel im Ergebnis: Kein Einfluss durch STOP AFTER

12 Felix Naumann, VL Informationsintegration, WS 05/0612 STOP AFTER – Beispiel Ergebnis: 5 Hotels mit aufsteigender Entfernung zu TXL Einsparungen bei distance()? SELECT h.name, h.adresse, h.tel FROM hotels h, flughäfen f WHERE f.name = TXL ORDER BY distance(h.ort, f.ort) STOP AFTER 5

13 Felix Naumann, VL Informationsintegration, WS 05/0613 STOP AFTER – Beispiel 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 ( SELECT count(*)/10 FROM Produkte p WHERE p.typ = software) Liste Name und Umsatz der 10% umsatzstärksten Softwareprodukte.

14 Felix Naumann, VL Informationsintegration, WS 05/0614 STOP AFTER – Updates UPDATE Spieler SET Gehalt = 0.5 * Gehalt WHERE id IN ( SELECT s.id FROM Spieler s ORDER BY s.tore STOP AFTER 3 ) Hertha BSC: - Kürze die Gehälter der 3 schlechtesten Spieler um 50%.

15 Felix Naumann, VL Informationsintegration, WS 05/0615 STOP AFTER – Implementierung Implementierung in der Anwendung Keine Veränderung des DBMS Optimierungspotential nicht ausgeschöpft Implementierung in DBMS als äußere Schicht Einsparungen bei Datenübertragung Optimierungspotential nicht voll ausgeschöpft Implementierung im DBMS Kern Volles Optimierungspotential Schwieriger

16 Felix Naumann, VL Informationsintegration, WS 05/0616 Rückblick: Anfrageoptimierung Umwandlung von SQL in interne Repräsentation Interne Operatoren Scan, Sort, Select, Project,... Interpretation als Baum Transformationsschritte im Baum Wahl des Schrittes gemäß Kostenmodell

17 Felix Naumann, VL Informationsintegration, WS 05/0617 Rückblick: Anfragebearbeitung SELECT m.name FROM mitarbeiter m, abteilung a WHERE m.abt_id = a.id AND a.name = Verkauf ORDER BY m.gehalt m.name (sort m.gehalt ( m.abt_id = a.id, a.name = Verkauf (m x a))) In Worten?

18 Felix Naumann, VL Informationsintegration, WS 05/0618 Einsparung Rückblick: Anfragebearbeitung m.name (sort m.gehalt ( m.abt_id = a.id, a.name = Verkauf (m x a))) Mitarbeiter mAbteilung a X m.abt_id = a.id a.Name = Verkauf Sort(m.gehalt) (m.name) [1.000] [100] [ ] [990] [20] Mitarbeiter mAbteilung a a.Name = Verkauf Sort(m.gehalt) (m.name) [1.000] [100] [990] [20] m.abt_id = a.id [20]

19 Felix Naumann, VL Informationsintegration, WS 05/0619 Rückblick: Anfragebearbeitung Mitarbeiter mAbteilung a a.Name = Verkauf Sort(m.gehalt) (m.name) [1.000] [100] [990] [20] m.abt_id = a.id Mitarbeiter mAbteilung a a.Name = Verkauf Sort(m.gehalt) (m.name) [1.000] [100] [5] [20] m.abt_id = a.id [20] ? Einsparung

20 Felix Naumann, VL Informationsintegration, WS 05/0620 Neuer Operator Logischer Operator Stop(N, Sortierungsrichtung, Sortierungsausdruck) N: maximale Ergebnisgroesse Sortierungsrichtung: asc, desc, none Sortierungsausdruck: meist wie ORDER BY Physikalische Operatoren Implementierungsvarianten des logischen Operators 1. Scan-Stop 2. Sort-Stop Jetzt!

21 Felix Naumann, VL Informationsintegration, WS 05/0621 Scan-Stop Falls Sortierungsrichtung = none Schließt Input-Strom nach N Tupeln Kostenmodell p = Plan unterhalb (im Baum) Stop Operator s = Plan inkl. Stop Operator Cost(1) = Kosten für erstes Tupel (Latenz, latency) Cost p (ALL) = Kosten für alle Tupel von p Pipelines werden bevorzugt! Warum?

22 Felix Naumann, VL Informationsintegration, WS 05/0622 Sort-Stop Falls Sortierungsrichtung = asc/desc Falls schon entsprechend sortiert: Schließt Input- Strom nach N Tupeln Kosten wie Scan-Stop Sonst sortieren: Erste N Tupel in priority-heap (Haufen) Nächste Tupel gegen Heap testen Input-Strom komplett erzeugen Test gegen Heap-Grenzen i Einfügungen in Heap N i ALL Kosten eines Vergleichs

23 Felix Naumann, VL Informationsintegration, WS 05/0623 Überblick Anfragen nach den ERSTEN Ergebnissen (First-N) Es reicht! in SQL [CK97] Syntax und Semantik Optimierung Anfragen nach den BESTEN Ergebnissen (Top-N) Motivation Fagins Algorithm

24 Felix Naumann, VL Informationsintegration, WS 05/0624 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

25 Felix Naumann, VL Informationsintegration, WS 05/0625 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. D.h.: Wende Stop nur auf Input-Ströme an, deren Input-Tupel jeweils mindestens ein Output-Tupel erzeugen. Operatoren, die Tupel filtern, müssen also früher ausgeführt werden.

26 Felix Naumann, VL Informationsintegration, WS 05/0626 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?

27 Felix Naumann, VL Informationsintegration, WS 05/0627 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

28 Felix Naumann, VL Informationsintegration, WS 05/0628 Optimierung mit Stop-Operator Aggressive Strategie Platziere Stop so früh wie möglich in Plan. Wähle (hoffentlich) hinreichend großes N: Füge Reserve hinzu (z.B. 20%). Platziere weiteres, endgültiges Stop(N) später im Plan. Platziere geeignete Restart Operatoren.

29 Felix Naumann, VL Informationsintegration, WS 05/0629 Optimierung mit Stop-Operator 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)

30 Felix Naumann, VL Informationsintegration, WS 05/0630 Implementierungen von First N SQL: select name, salary from employee A where 50 > (select count(*) from employee B where B.salary > A.salary)...WHERE rownum < N MySQL: SELECT...FROM... LIMIT 10 DB2: FETCH FIRST N ROWS ONLY OPTIMIZE FOR N ROWS MS SQL Server SELECT TOP N... FROM... Oracle: OPTIMIZER_MODE = FIRST_ROWS_N Optimierung jeweils unklar! Weitere Optimierung (Bremsweg verkleinern) z.B. in [CK98]

31 Felix Naumann, VL Informationsintegration, WS 05/0631 Überblick Anfragen nach den ERSTEN Ergebnissen (First-N) Es reicht! in SQL [CK97] Syntax und Semantik Optimierung Anfragen nach den BESTEN Ergebnissen (Top-N) Motivation Fagins Algorithm

32 Felix Naumann, VL Informationsintegration, WS 05/0632 Anfragen nach den Top-N Ergebnissen – Motivation First-N beschränkt Ergebnismenge aber nicht (unbedingt) Eigenschaften des Ergebnisses Ausnahme: Sortierung auf einem Attribut Top-N beschränkt Ergebnismenge und Eigenschaften Sortierung nach einem (beliebigen) Maß Maße sind oft fuzzy. Maße haben oft mehrere Attribute als Input.

33 Felix Naumann, VL Informationsintegration, WS 05/0633 Anfragen nach den Top-N Ergebnissen – Beispiele Suchmaschinen Maß: Vorkommen des Suchworts & authority Information Retrieval Maß: Relevanz In DBMS 4-Zimmer Wohnungen, unter $30,000 Bisher nicht unterstützt In Multimedia DBMS Bilder mit roten und runden Objekten

34 Felix Naumann, VL Informationsintegration, WS 05/0634 Top-N in Multimedia DBMS Farb-Ähnlichkeit Z.B. Anfrage: Farbe = rot Berechnung der Röte oft komplex (viele Farbdimensionen, viele Pixel) MMDBMS liefert top-N roteste (röteste?) Objekte Multidimensionale Indices Form-Ähnlichkeit Z.B. Anfrage: Form = rund Berechnung der Rundheit oft komplex MMDBMS liefert top-N rundeste Objekte Entspricht First-N Semantik (Maß auf einem Attribut) Aber wie kombinieren?

35 Felix Naumann, VL Informationsintegration, WS 05/0635 Top-N in Multimedia DBMS Beatles Red Album Anfrage: Farbe = rot Name = Beatles Was als Antwort: Menge? Sortierte Liste? Fuzzy Prädikat Antwort ist sortierte Liste Non-Fuzzy Prädikat Antwort ist (unsortierte) Menge

36 Felix Naumann, VL Informationsintegration, WS 05/0636 Top-N in Multimedia DBMS Anfrage: Farbe = rot Name = Beatles Antwort: Menge? Sortierte Liste? Anfrage: Farbe = rot Form = rund Antwort: Menge? Sortierte Liste? Idee [Fa96]: Antwort ist benotete Menge (graded set)

37 Felix Naumann, VL Informationsintegration, WS 05/0637 Top-N – 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]

38 Felix Naumann, VL Informationsintegration, WS 05/0638 Top-N – benotete Mengen Anfrage: 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)

39 Felix Naumann, VL Informationsintegration, WS 05/0639 Top-N – benotete Mengen Vorschlag Konjunktionsregel [Za65]: g A B (x) = min{g A (x), g B (x)} Disjunktionsregel [Za65]: g A B (x) = max{g A (x), g B (x)}

40 Felix Naumann, VL Informationsintegration, WS 05/0640 Top-N – 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} = = 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)}

41 Felix Naumann, VL Informationsintegration, WS 05/0641 Andere Maße? AVG g A B (x) = avg{g A (x), g B (x)}, g A B (x) = max{g A (x), g B (x)} 0 1 = avg{0,1} = = max{0,1} = 1 g A A (x)= avg{ g A (x), g A (x) } = g A (x) g A (B C) (x) = avg{ g A (x), max{g B (x), g C (x)} } = max{avg{ g A (x), g B (x) }, avg{ g A (x), g C (x) }} = g (A B) (A C) (x) g A (x) g A (y), g B (x) g B (y) avg{g A (x), g B (x)} avg{g A (y), g B (y)} D.h. Standardlogik bleibt nicht erhalten. Name = Beatles Farbe = rot Album (Santana, Supernatural) hat score > 0 Fast jedes andere Album hat auch score > 0

42 Felix Naumann, VL Informationsintegration, WS 05/0642 Top-N – Fagins Algorithmus Gegeben: Konjunktive Anfrage mit teilweise fuzzy Prädikaten. Gesucht: Benotete Menge mit mindesten Top-N Objekten Zugriffsmodell auf MMDBMS Sorted access: Cursor auf sortierte Liste Random access: Note eines bestimmten Objekts Kostenmodell: Jedes angefragte Objekt kostet 1. Optimierung: Minimiere Kosten

43 Felix Naumann, VL Informationsintegration, WS 05/0643 Top-N – 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?

44 Felix Naumann, VL Informationsintegration, WS 05/0644 Top-N – Naiver Algorithmus Anfrage: Form = rund Farbe = rot 1. Sorted access auf alle Objekte (mit Note für Form = rund) 2. Sorted access auf alle Objekte (mit Note für Farbe = rot) 3. Join über alle Objekte x 4. Jeweils Berechnung der minimalen Note min{g rund (x),g rot (x)} 5. Sortierung für Top-N Kosten 2n (2x sorted access)

45 Felix Naumann, VL Informationsintegration, WS 05/0645 Top-N – Beispiel Anfrage: Form = rund Farbe = rot MMDBMS_1 Plattencover (Formen) MMDBMS_2 Plattencover (Farben) s.id = p.id sorted access/random accesssorted access G = min{g Form = rund (x),g Farbe = rot (x)}

46 Felix Naumann, VL Informationsintegration, WS 05/0646 Überblick Anfragen nach den ERSTEN Ergebnissen (First-N) Es reicht! in SQL [CK97] Syntax und Semantik Optimierung Anfragen nach den BESTEN Ergebnissen (Top-N) Motivation Fagins Algorithm

47 Felix Naumann, VL Informationsintegration, WS 05/0647 Top-N – 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

48 Felix Naumann, VL Informationsintegration, WS 05/0648 Top-N – 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...

49 Felix Naumann, VL Informationsintegration, WS 05/0649 Top-N – Fagins Algorithmus MMDBMS_1MMDBMS_2MMDBMS_m... N Objekte aus MMDBMS_1 mit g A1 (x) Objekte aus MMDBMS_2 und MMDBMS_ m mit g A1 (x) und g Am (x) Objekte aus MMDBMS_2 mit g A2 (x) N Objekte aus allen MMDBMS mit allen g Ai (x) also auch mit Gesamt-Note

50 Felix Naumann, VL Informationsintegration, WS 05/0650 Top-N – Fagins Algorithmus MMDBMS_1MMDBMS_2MMDBMS_m... N Wichtig: Dies sind nicht unbedingt die Top-N Objekte! Der Clou: Unter allen gesehenen Objekten befinden sich auch die Top-N Objekte. Beweis später.

51 Felix Naumann, VL Informationsintegration, WS 05/0651 Top-N – Fagins Algorithmus Phase 2: Random access Hole alle unbekannten g Ai (x) ein. MMDBMS_1MMDBMS_2MMDBMS_m... N Ergebnis: Nun kennen wir alle Noten aller gesehenen Objekte.

52 Felix Naumann, VL Informationsintegration, WS 05/0652 Top-N – 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 N Objekte. Ausgabe dieser Top-N Objekte.

53 Felix Naumann, VL Informationsintegration, WS 05/0653 Fagins Algorithmus – Beispiel Anfrage: Form = rund Farbe = rot Stil = Modern N = 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

54 Felix Naumann, VL Informationsintegration, WS 05/0654 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)

55 Felix Naumann, VL Informationsintegration, WS 05/0655 Top-N – 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-N 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 mindesten N 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.

56 Felix Naumann, VL Informationsintegration, WS 05/0656 Top-N – Fagins Algorithmus Aufwand: O(n (m-1)/m N 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 =

57 Felix Naumann, VL Informationsintegration, WS 05/0657 Fagins Algorithmus in der Praxis Probleme aus [WHTB99] Monotonie Vorgabe einer festen Menge (monotoner) Maße oder Nutzerimplementation erlauben? WHERE Klausel oder ORDER BY Klausel Charakter des Algorithmus Join über mehrere Quellen Objektidentifikation Kostenmodell schwierig

58 Felix Naumann, VL Informationsintegration, WS 05/0658 Top-N 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 Idee: Wandele Top-N Anfragen in herkömmliche Anfragen um [CG99].

59 Felix Naumann, VL Informationsintegration, WS 05/0659 Rückblick First-N Syntax und Semantik Optimierung Top-N Motivation Fagins Algorithmus

60 Felix Naumann, VL Informationsintegration, WS 05/0660 Informationsintegration

61 Felix Naumann, VL Informationsintegration, WS 05/0661 Literatur First-N [CK97] Michael J. Carey, Donald Kossmann: On Saying "Enough Already!" in SQL. SIGMOD Conference 1997: Donald Kossmann SIGMOD Conference 1997 [CK98] Michael J. Carey, Donald Kossmann: Reducing the Braking Distance of an SQL Query Engine. VLDB 1998: Donald KossmannVLDB 1998 Top-N [Fa98] Ronald Fagin: Fuzzy Queries in Multimedia Database Systems. PODS 1998: Weitere [CG99] Surajit Chaudhuri, Luis Gravano: Evaluating Top-k Selection Queries. VLDB 1999: Luis GravanoVLDB 1999 [DR99] Donko Donjerkovic, Raghu Ramakrishnan: Probabilistic Optimization of Top N Queries. VLDB 1999: Raghu RamakrishnanVLDB 1999 [Za65] Lotfi A. Zadeh: Fuzzy Sets. Information and Control 8(3): (1965)Information and Control 8 [DP84] D, Dubois and H. Prade, Criteria Aggregation and Ranking of Alternatives in the Framework of Fuzzy Set Theory, in Fuzzy Sets and Decision Analysis, TIMS Studies in Management Sciences 20 (1984), pp [WHTB99] Edward L. Wimmers, Laura M. Haas, Mary Tork Roth, Christoph Braendli: Using Fagin's Algorithm for Merging Ranked Results in Multimedia Middleware. CoopIS 1999: Edward L. WimmersLaura M. HaasMary Tork Roth CoopIS 1999


Herunterladen ppt "Informationsintegration Top-N Anfragen 13.12.2005 Felix Naumann."

Ähnliche Präsentationen


Google-Anzeigen