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.

Slides:



Advertisements
Ähnliche Präsentationen
Partitionierungstechniken in Datenbanksystemen
Advertisements

Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Definition [1]: Sei S eine endliche Menge und sei p eine Abbildung von S in die positiven reellen Zahlen Für einen Teilmenge ES von S sei p definiert.
Data Cubes PG Wissensmangement Seminarphase Hanna Köpcke Lehrstuhl für Künstliche Intelligenz Universität Dortmund.
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Indizierung von Graphen durch häufige Subgraphen (2)
Kapitel 6: Klassifizierung von Sortiertechniken
3. Kapitel: Komplexität und Komplexitätsklassen
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Effizienz: Indexstrukturen
Algorithmentheorie 04 –Hashing
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 01 – Divide and Conquer (Segmentschnitt) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
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 (11-1 –Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27-Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (15 Hashverfahren: Verkettung der Überläufer) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Geometrisches Divide and Conquer
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 11 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Der letzte Schliff für Abfragen Übersicht über die Aggregatfunktionen.
Externe Datenstruktur lineare Liste
Algorithmen des Internets 2005 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität 1 Materialien zu Übung 9 Bälle in Körbe Ranged.
Access 2000 Datenbanken.
Was sind Histogramme? (1)
Minimum Spanning Tree: MST
Intelligentes Crawling im WWW mit Hilfe intuitiver Suchbedingungen
Abfragen – Tipps und Tricks Buch S102ff (Informatik I, Oldenbourg-Verlag) Nach einer Vorlage von Dieter Bergmann.
1 Sichten (1) Oftmals ist es für Anwendungen einfacher, nicht mit dem Original- Datenbestand, sondern einem speziell zugeschnittenen Ausschnitt zu arbeiten.
Übung 1: SQL Übungen finden bei Bedarf anstelle der Vorlesungen statt
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
Effiziente Algorithmen
4 Sortierverfahren 4.1 Einführung 4.2 Naive Sortierverfahren
Merge-Sort und Binäres Suchen /10D. Haehn Populäres algorithmisches Lösungsverfahren Populäres algorithmisches Lösungsverfahren Divide: Problem.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Hartmut Klauck Universität Frankfurt SS
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung (Teil 1)
Wahrscheinlichkeitsrechnung
Datenbanksysteme für hörer anderer Fachrichtungen
Einführung in Datenbankmodellierung und SQL
Einfach und doppelt verkettete Listen in JAVA by Jens Weibler
Am Beispiel der Tabelle Crew des Raumschiffes Enterprise
Structured Query Language
Statistik – Regression - Korrelation
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VI Christian Schindelhauer
Korrektheit von Programmen – Testen
Der A*-Algorithmus.
Institut für Informationssysteme Technische Universität Braunschweig Institut für Informationssysteme Technische Universität Braunschweig Verdrängung von.
Seminar zu Datenbanksystemen Sommersemester 2005 Universität Hannover B.Sc. Markus Spehling Vortrag: Based on: Top-k Selection.
Programmiersprachen II Fortsetzung Datenstrukturen Hashing Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Indexierung Oracle: indexes Indexierung.
 Präsentation transkript:

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 der Tupel in Buchbestellungen = 12 T * s/N = 2

OLAP (On-Line Analytical Processing) - Effizientes Berechnen von ICEBERG QUERIES - Bernadette Blum

Effizientes Berechnen von ICEBERG QUERIES 1.Begriff und Anwendungsgebiete Definition – Anwendung – Naives Berechnen und Probleme 2.Grundtechniken Begriffe – SCALED-SAMPLING – COARSE-COUNT 3.Einfache Algorithmen DEFER-COUNT 4.Optimierung (am Bsp. DEFER-COUNT) UNISCAN – MULTISCAN – MULTISCAN-SHARED 5.Experimente 6.Fazit

Begriff und Anwendungsgebiete Iceberg Query: große Datenmenge als Eingabe (Eisberg) kleine Anzahl von Resultaten (Spitze des Eisberges) Aggregation über Attribut(menge) attr1,..., attrk mit k >= 1 Ergebnisse oberhalb einer Schwelle T Anwendung: Data Mining (z.B. market basket query) Information Retrieval (IR) Kopierschutz Prototyp: SELECT attr1,..., attrk, count(rest) FROM R GROUP BY attr1,..., attrk HAVING count(rest) >= T Beispiel: SELECT Titel, count(*) FROM Buchbestellungen GROUP BY Titel HAVING count(*) >= 4

Probleme beim naiven Berechnen (1) 1.im Hauptspeicher Array mit einem Zähler für jedes Ziel oft zu wenig Speicherplatz 2.Sortieren der Relation auf der Platte, dann Aggregation und Auswahl der Ziele oberhalb der Schwelle viele Sortierdurchläufe erforderlich... v1v1 v2v2 vnvn v n-1

Probleme beim naiven Berechnen (2) Beispiel: market basket query Suche nach Paaren von Produkten, die häufig zusammen gekauft wurden Kunde hat {a, b, d} gekauft, also (a, b), (a, d) und (b, d) in Zielrelation für jeden Kunden, der p Produkte gekauft hat, kommen in der Zielrelation C(p, 2) = ( ) ~ p 2 /2 Tupel hinzu Arbeiten mit virtuellen Relationen 2 p

Grundtechniken (1) Begriffe: V = Liste von verschiedenen Zielen in R V[r] = r-häufigstes Ziel in R Freq(r) = Häufigkeit des r-häufigsten Ziels r T = min{r | Freq(r) >= T} H = {V[1],..., V[r T ]} = Menge der bedeutenden Ziele (heavy targets) HTs F = Menge der potentiellen HTs (wird von jedem Algorithmus erzeugt) Fehler in Algorithmen: F – H nicht leer => false positives (FPs) Eliminierung: durch count(F) 1. Stelle Häufigkeit jedes Ziels in F fest 2. Entferne Ziele aus F, deren Häufigkeit unterhalb der Schwelle liegt Vorsicht: für große F schlechte Laufzeit! H – F nicht leer => false negatives (FNs) Eliminierung: 1. Entferne Tupel mit Zielen, die in H und F liegen, aus R 2. Starte Anfrage auf gekürztem R => fast so aufwendig wie Problem selbst

Grundtechniken (2) SCALED-SAMPLING Stichprobe der Größe s aus R Für jedes Ziel in der Stichprobe: Einfügen in F (Menge der potentiellen HTs), falls Häufigkeit mindestens T * s/N ist Vorteil: einfache Implementierung und Effizienz Nachteil: Entstehung von FPs und FNs

Grundtechniken (3) Bsp.: für m = 2 und T = 4 COARSE-COUNT Array mit Körben A[1..m], m < n hash-Funktion h: ordnet Ziel v Korb A[i] zu (1 <= i <= m) Scan: F.a. Tupel in R mit Ziel v: A[h(v)]++ BITMAP[1..m] mit BITMAP[i] = 1, falls A[i] >= T (1 <= i <= m) (i-ter Korb bedeutend) Freigabe des für A allokierten Speichers Kandidatenwahl: Scan mit Einfügen von v in F, falls BITMAP[h(v)] = 1 Vorteil: keine FNs Nachteil: Korb kann durch ein HT oder viele LTs bedeutend werden 66 A[2] a a a a a b b c d d d d BITMAP: 11 A[1] F = {a, a, a, a, a, b, b, c, d, d, d, d} count(F) => F = {a, a, a, a, a, d, d, d, d} Ausgabe: {a, d}

Einfache Algorithmen DEFER-COUNT SCALED-SAMPLING mit Stichprobe der Größe s Einfügen der f häufigsten Ziele der Stichprobe in F für ein f < s COARSE-COUNT, aber A[h(v)] wird nur für Ziele erhöht, die noch nicht in F sind count(F) zur Eliminierung der FPs Kritik: 1. Wahl von s, f und m schwierig 2. Test, ob entsprechendes Ziel schon in F ist, sehr aufwendig => Verlängerung der Laufzeit Bsp.: SCALED-SAMPLING: => F = {a, a, a, a, a} f = 2 => F = {a, a, a, a, a, b} COARSE-COUNT: 14 A[1]A[2] a a a a a b b c d d d d BITMAP: 01 => F = {a, a, a, a, a, b, d, d, d, d} count(F): => F = {a, a, a, a, a, d, d, d, d} Ausgabe: {a, d}

Optimierung (1) UNISCAN (ein Scan mit mehreren hash-Funktionen) k hash-Funktionen: für ein m < n A 1 [1..m/k],..., A k [1..m/k] aber:anfangs wie DEFER-COUNT, aber: modifiziertes COARSE-COUNT: Scan: k hash-Funktionen und k BITMAPs Kandidatenwahl: Einfügen von v in F, falls für alle i mit 1 <= i <= k: BITMAP i [h i (v)] = 1 count(F) bei großem k: viele kleine hash tables Bsp.: nach SCALED-SAMPLING und Einfügen der f=2 häufigsten Elemente: F = {a, a, a, a, a, b} 14 COARSE-COUNT: A 1 [1] a a a a a b b c d d d d 05 A 2 [1] A 1 [2] A 2 [2] } h1h1 } h2h2 A 1 [1..m/k],..., A k [1..m/k] mit k = 2 und m = count(F) => F = {a, a, a, a, a, d, d, d, d} => F = {a, a, a, a, a, b, d, d, d, d} Ausgabe: {a, d} BITMAP 1 BITMAP 2

Optimierung (2) MULTISCAN (mehrere voneinander unabhängige Scans mit je einer hash-Funktion) Stichprobe und Kandidatenwahl aber: wie bei UNISCAN, aber: k Scans Speichere BITMAP 1 auf Platte... Speichere BITMAP k-1 auf Platte Lasse BITMAP k im Hauptspeicher Ziehe BITMAP 1,..., BITMAP k-1 von Platte Führe Kandidatenwahl durch

Experimente (1) Experimente (1) market basket query: Suchen häufig auftretender Wortpaare

Experimente (2) Experimente (2) market basket query: Suchen häufig auftretender Wortpaare

Experimente (3) Experimente (3) market basket query: Suchen häufig auftretender Wortpaare

Fazit Dargestellte Algorithmen effizienter als konventionelle Verfahren (wie z.B. Sortiermechanismen): weniger Speicherplatz weniger Bearbeitungsschritte über Daten Algorithmen unter verschiedenen Bedingungen unterschiedlich effizient => Wahl des Algorithmus von mehreren Faktoren abhängig Iceberg Queries sehr wichtige Form von Datenbankanfragen => Entwicklung effizienter Ausführungstechniken von großer Bedeutung