Grid Files – Martin HaseneyerFolie 1/ 51 – 09.06.2005 Siegmundsburg Grid Files Daten hinter Gittern? Eine dynamische Datenstruktur mit mehrdimensionalen.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Der R-Baum Richard Göbel.
Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Eine dynamische Menge, die diese Operationen unterstützt,
Vorlesung Programmieren II
Der k-d-Baum Richard Göbel.
Polynomial Root Isolation
Prof. Dr. T. Kudraß1 Hash-Verfahren. Prof. Dr. T. Kudraß2 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit.
Claudio Moraga; Gisbert Dittrich
Objekt – Relationales – Modell Tomasz Makowski IN
FH-Hof Der B-Baum Richard Göbel. FH-Hof Wahl des Verzweigungsgrad Verzweigungsgrad kann größer als 2 sein v Nachfolger für einen Knoten v-1 Werte in einem.
Der B-Baum Richard Göbel.
Dr. Brigitte Mathiak Kapitel 9 Physische Datenorganisation (ganz kurz)
Kapitel 6: Klassifizierung von Sortiertechniken
Kapitel 6. Suchverfahren
<d,a,s, ,i,s,t, ,e,i,n,e, ,L,i,s,t,e>
Kapitel 3: Listen Lineare Liste: endliche Folge von Elementen eines Grundtyps (n>=0), leere Liste falls n=0 Listenelemente besitzen.
5. Sortier-Algorithmen Vorbemerkungen:
Synonyme: Stapel, Keller, LIFO-Liste usw.
Bäume • Kernidee: Speicherung von Daten in einer Baumstruktur
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Der R-Baum Richard Göbel.
Effizienz: Indexstrukturen
Algorithmentheorie 04 –Hashing
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
Globaler Ansatz Hough-Transformation
Externe Datenstruktur lineare Liste
Access 2000 Datenbanken.
Was sind Histogramme? (1)
1 Kapitel 5: Mehrdimensionale Suchstrukturen. 2 Mehrdimensionale Suchstrukturen Alterzwischen 20 und 30 Einkommenzwischen 2000 und 3000 PLZzwischen
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.
Buch S70ff (Informatik I, Oldenbourg-Verlag)
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
Splay Trees Von Projdakov Benjamin.
Eine Implementierung einer effiziente externe geordnete (!) lineare Liste Operationen: Search(x) Insert(x) Delete(x)
Einführung in die Programmierung
Effiziente Algorithmen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 7 SS 2000 Punkt-in-Polygon-Verfahren I (Trapezkarte)
Präsentation C Tutorium von Daniel J. Nowak Folie 1 C Tutorium.
Effiziente Algorithmen
Hartmut Klauck Universität Frankfurt SS
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 Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Übung Datenbanksysteme II Index- strukturen
Datenbanken Dantenbanksystem Data Base System Datenbasis (Daten)
Überblick über die Datenbankproblematik
Allgemeines zu Datenbanken
(D.h. „Hallo MausFans!“ auf Japanisch).
Die Idee hinter Copying Garbage Collection (1) Aufteilung des Heaps in zwei Teile: To-Space und From-Space Nutzung eines Teiles durch das Programm Ist.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
Integritätserhaltung und -Überprüfung in deduktiven Datenbanken
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung
Modellierung der Wirklichkeit
Raumbezogene Zugriffsverfahren
Binärbäume.
Spatial Partition Game Programming Patterns / Optimization Patterns AM3: Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung Dozent: Prof.
Aufgabe 1. Herausforderungen I Persistente Datenspeicherung: Möchte man jeden Morgen alle Käufe und Verkäufe neu zusammensuchen? Sehr große Datenmengen:
Programmiersprachen II Fortsetzung Datenstrukturen Hashing Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Einfache Bäume Übung 13 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
CL Tree MW 31.1 Business Intelligence Wintersemester 2015 / 2016 Stanislav Prokupetz.
Pointer, Arrays und verkettete Listen. Mehrdimensionale Arrays  Pointer auf ein Array von Pointern  int32 **matrix = new int32*[3];  matrix: Zeiger.
Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Automatische Speicherverwaltung.
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
 Präsentation transkript:

Grid Files – Martin HaseneyerFolie 1/ 51 – Siegmundsburg Grid Files Daten hinter Gittern? Eine dynamische Datenstruktur mit mehrdimensionalen Zugriffspfaden Seminar im Sommersemester 2005 Dozent:Prof. Dr. Klaus Küspert Betreuer:Dipl.-Inf. David Wiese

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 2/51 – Siegmundsburg Ein Einstieg in das Thema  Data Warehousing: oft…  riesige Datenmengen (GB und mehr)  hohe Aggregation  hohe Selektivität (gesucht oft „nur“ im Bereich MB/KB)  d.h., wenn wir einen Table Scan auf die Daten laufen lassen, haben wir genug Zeit, um richtig viel Kaffee zu kochen  Eine effiziente Datenstruktur muss hierbei helfen.

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 3/ 51 – Siegmundsburg 1. Eigenschaften oder: kleine Wunschliste an eine Datenstruktur

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 4/51 – Siegmundsburg 1. Eigenschaften (I): Prinzip der zwei Zugriffe  Prinzip der zwei Plattenzugriffe für exakte Anfragen (point queries)  bei Anfragen nach Ergebnismengen: erster Datensatz nach zwei Zugriffen  egal, wie die Verteilung der Datensätze aussieht  egal, wieviele Operationen vorher durchgeführt wurden  egal, wieviele Datensätze momentan gespeichert sind

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 5/51 – Siegmundsburg 1. Eigenschaften (II): Lokalitätsprinzip  Benachbarte Punkte im Datenraum sollen auch physisch benachbart gespeichert werden (möglichst ~)  einfacher Zugriff auf „ähnliche“ Daten auf der Platte  Nearest-Neighbor-Abfragen  Diese beiden Prinzipien werden selten erfolgreich umgesetzt.

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 6/51 – Siegmundsburg 1. Eigenschaften (III): Effizienzgesichtspunkte  Beim Teilen oder Verschmelzen von Zellen sollen nur zwei Speichereinheiten („Buckets“) betroffen sein  Durchschnittliche Speicherplatz- Ausnutzung (der „Buckets“) soll über einer „vernünftigen“ Grenze liegen (in der Regel bei ca. 70%)

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 7/51 – Siegmundsburg 1. Eigenschaften (IV): Dynamik, Symmetrie  dynamische Anpassung beim Einfügen und Löschen  Symmetrische Behandlung aller Dimensionen des Datenraums  alle Attribute wie Primärschlüssel behandelt, es gibt keine Hierarchie  Multikey-Access: es kann nicht „nur einen geben“  ermöglicht partial-match-Anfragen  Mehrdimensionalität

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 8/ 51 – Siegmundsburg 2. Aufbau oder: stecken Sie Array A in Liste E, um eine Datenstruktur zu erhalten

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 9/51 – Siegmundsburg 2. Aufbau (I): Modellierung der Datensätze  Datensätze als Datenpunkte im Raum  auf jeder Dimension ein Punkt  alle Dimensionspunkte: „Ort“ des Datensatzes im Datenraum

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 10/51 – Siegmundsburg 2. Aufbau (II): Übersicht über Grid File-Strukturen  Buckets zur Speicherung der Daten  Grid Directory, bestehend aus:  Skalenvektoren  Grid-Directory mit Grid-Zellen (teilweise zu Regionen zusammengefasst)

Grid Files – Martin HaseneyerFolie 11/ 51 – Siegmundsburg 2.1. Buckets (Speicherseiten)  Speichereinheit für Datensätze  Menge von Datensätzen (oder besser: Zeigern auf Datensätze), die zusammen auf einer physikalischen Einheit gespeichert werden  z.B. bei b = 3: Es passen bis zu drei Datenpointer in einen Bucket, sonst „läuft er über“  typischerweise auf Externspeicher

Grid Files – Martin HaseneyerFolie 12/ 51 – Siegmundsburg 2.2. Grid-Directory (I): Skalenvektoren  „Verwaltung der Verwaltung“  für jede Dimension von D ein Vektor  lineare Ordnung entlang der Dimension  in Intervalle unterteilt  skalieren Dimension auf Grid-Zellen  typischerweise im Hauptspeicher (Prinzip der zwei Plattenzugriffe!)

Grid Files – Martin HaseneyerFolie 13/ 51 – Siegmundsburg 2.2. Grid-Directory (II): Grid  Such- und Verwaltungseinheit  typischerweise auf Externspeicher  besteht aus:  Grid-Zellen: Hyperquader, die den Datenraum ausfüllen (konvex, paarweise disjunkt)   Grid-Regionen: Zusammenfassung von Grid-Zellen, die genau einem Bucket zugeordnet sind (konvex, paarweise disjunkt)

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 14/51 – Siegmundsburg 2. (VI) Aufbau: Regionen, Buddy-System  Buddy- oder Zwillingszellen:  Zellen, die aus der Teilung einer vorhergehenden Zelle entstehen  Teilmenge der Nachbarzellen

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 15/51 – Siegmundsburg 2. (VII) Aufbau: Das kommt davon…

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 16/51 – Siegmundsburg 2. Aufbau (VI): Beziehungen zwischen Komponenten  Beziehung Region – Zelle: 1:n  Beziehung Region – Bucket: 1:1

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 17/51 – Siegmundsburg Buckets Grid Directory 2. Aufbau (VII): Zusammenfassung Grid File

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 18/ 51 – Siegmundsburg 3. Dynamisches Verhalten oder: Pressen, da geht noch was!

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 19/51 – Siegmundsburg 3. Dynamisches Verhalten (I): Überblick  Was soll möglichst (kosten)günstig gehen?  Datensätze einfügen  Datensätze suchen  Datensätze wieder löschen  dazu brauchen wir als Grundlage:  Teilen von Grid-Zellen  Verschmelzen von Grid-Zellen  …möglichst ohne sichtbare Pausen aufgrund „plötzlicher“ interner Verwaltungsroutinen

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 20/51 – Siegmundsburg 3.1. Suchen (I): Beispiel  Finde Datensatz (Q;68) Suchvorgang Intervallgrenzen Intervallnummern Daten(raum)

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 21/51 – Siegmundsburg 3.1. Suchen (II): Algorithmus  bestimme für jede Dimension, in welchem Intervall (der Dimension) der gesuchte Wert ist  bestimme aus Intervallen die gesuchte Grid-Zelle  lade Directory-Teil, der Zelle(n) enthält  lese Verweis auf Bucket(s) aus Grid- Zelle(n)  lade Bucket(s)  durchsuche die gefundenen Werte  liefere Ergebnis zurück 1. Plattenzugriff 2. Plattenzugriff

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 22/51 – Siegmundsburg 3.2. Einfügen (I): Beispiel  Beispiel für:  Datenraum D (1..100; A..Z)  Bucketgröße b = 3 Bucket-Überlauf!

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 23/51 – Siegmundsburg 3.2. Einfügen (II): Algorithmus Schritt 1: Zuordnung zur Grid-Zelle  finde Bucket, in den der Wert gespeichert werden soll  wie Suche…  speichere Wert in Bucket

Grid Files – Martin HaseneyerFolie 24/ 51 – Siegmundsburg 3.2. Einfügen (III): Algorithmus (Fortsetzung)  Schritt 2: Läuft der Bucket über?  Ja: dann erstelle neuen, leeren Bucket  Wird „alter“ Bucket mehrfach referenziert?  Ja (Fall A): dann…  Verbiege Zeiger der beiden Zellen auf die beiden Buckets  Verteile die Werte aus Bucket (und den neuen) gemäß der Zellgrenzen auf die beiden Buckets  Nein (Fall B): dann…  Wähle Dimension und Trennwert  teile die Zellen in der Dimension entlang des Wertes; geteilte Zellen zeigen auf denselben Bucket  Auslöserzelle: Fall A  Nein: füge den Wert in den Bucket ein Fall B Fall A

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 25/51 – Siegmundsburg 3.3. Löschen (I): Beispiel  Beispiel für:  Datenraum D (1..100; A..Z)  Bucketgröße b = 3 Bucket-Unterlauf!

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 26/51 – Siegmundsburg 3.3. Löschen (II): Algorithmus  finde Wert in Bucket  lösche Wert  bestimme Merging-Kandidaten  würde verschmolzener Bucket über Auslastungs-Schwelle liegen?  ja: Buckets verschmelzen, Zeiger umbiegen  ggf. Test ob man Intervall auf der Dimension verschmelzen kann  korrespondierende Zellen der Teilintervalle verweisen auf jeweils dieselben Buckets?  Ja: Intervallverschmelzung

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 27/ 51 – Siegmundsburg 4. Implementierung oder: Wie kriegen wir das jetzt hin?

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 28/51 – Siegmundsburg 4. Implementierung (I)  Zwei Fragen der Implementierung:  Wie läßt sich das Grid Directory möglichst „gut“ abspeichern?  Wo wird getrennt, wenn Zellen oder Dimensionen geteilt werden sollen?

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 29/51 – Siegmundsburg 4. Implementierung (II): Speichern des GD (I)  Als Array? +direkter, wahlfreier Zugriff auf die Elemente möglich (random access) -hoher Aufwand beim Teilen und Verschmelzen „in der Mitte“ (umkopieren)

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 30/51 – Siegmundsburg 4. Implementierung (III): Speichern des GD (II)  Als verkettete Liste? +Teilen/Verschmelzen von Zellen einfach, nur Umbiegen der Zeiger und Einfügen von Elementen -kein direkter Zugriff auf Elemente, nur Durchlaufen der Liste möglich

Grid Files – Martin HaseneyerFolie 31/ 51 – Siegmundsburg 4. Implementierung (IV): Speichern des GD (III)  Mögliche Methode: Array-Größe über kleinstes Intervall bestimmen  falls Min-Intervall geteilt wird: Array-Größe verdoppeln  genug Raum um Teilungen an anderer Stelle zu kompensieren  ggf. hoher Speicherplatzbedarf (besonders bei schiefen Verteilungen)  viele kleine Teilungen zu einer großen Teilung zusammengefaßt  Ist die Einfüge-/Lösch-Laufzeit für Data Warehousing überhaupt wichtig?

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 32/51 – Siegmundsburg 4. Implementierung (V): Wo teilen? (I)  In welcher Dimension wird geteilt?  Wo genau wird dann geteilt?  Müssen wir eine Dimension teilen?  Oder reicht es, einen Bucket aufzusplitten?  gerade bei großen Directories und schiefen Verteilungen zeigen große Regionen auf ein und denselben Bucket

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 33/51 – Siegmundsburg 4. Implementierung (VI): Wo teilen? (II)  Aber bei Teilung viele Möglichkeiten, eine Dimension auszuwählen:  zyklisch durchlaufend  Bevorzugung von Attributen  genauere Auflösung der Ergebnisse (z.B. werden unterschiedliche Granulate bei Abfragen erwartet)  …  Ein bestimmtes Verfahren ist nicht vorgesehen.  Vielfältige Optimierungsmöglichkeiten für den Administrator  Performance, Performance, Performance!

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 34/51 – Siegmundsburg 4. Implementierung (VII): Wo teilen? (III)  Wo teilt man Zellen/Intervalle?  Intervall halbieren  Mittelwert der Intervallwerte  Nach Einheiten (z.B. Zeitachsen-Split immer zur ganzen Woche usw.)  …  Auch hier kein bestimmtes Verfahren vorgesehen.  Optimierungspotenzial begrenzt; aber: ggf. Performance-Einbußen bei ungünstiger Verteilung der Daten, z.B.  A1:  a,  d,  d,  d,  f,  s,  v  A2:  0,  5,  5,  5,  7,  9

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 35/ 51 – Siegmundsburg 5. Relevanz für Data Warehousing oder: Wozu erzählt uns der Onkel das überhaupt?

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 36/51 – Siegmundsburg 5. Relevanz für Data Warehousing (I)  Anfangsszenario: zig GB Daten, teilweise hohe Selektivität  wichtig ist Geschwindigkeit der Verarbeitung  Vorgehen: oft „BULK INSERT“, dann nur „SELECT“-Abfragen  Prinzip der zwei Zugriffe ideal  ermöglicht einfache und schnelle Mehr- Komponenten-Anfragen über verschiedene Dimensionen („Scheiben schneiden“)  Bereichanfragen (partial range), partial match-Anfragen problemlos möglich

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 37/51 – Siegmundsburg 5. Relevanz für Data Warehousing (II)

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 38/ 51 – Siegmundsburg 6. Erweiterungen oder: Warum denn nicht gleich so?

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 39/51 – Siegmundsburg 6.1. Grid Grids, hierarchische Grid Files, …  viele Namen für ein Prinzip: ein kleines Grid verwaltet das/die großen Grids Persistent Grid File Hierarchical Grid File

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 40/51 – Siegmundsburg 6.2. Interpolationsbasiertes Grid File (I): Motivation  Dimensionsverfeinerung:  Grid benötigt eigentlich nur eine neue Zelle  es wird aber die ganze Dimension geteilt  Buckets bleiben, aber Directory wächst  besonders bei schiefen Verteilungen: viele leere Zellen

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 41/51 – Siegmundsburg 6.2. Interpolationsbasiertes Grid File (II): Hintergrund  Zellen unterschiedlicher Größe (statt „Scheiben schneiden“)  nur ein Directory-Eintrag pro Bucket Idee:  zerteile Datenraum in Hierarchie  jede Zelle angesprochen über Zell- und Ebenennummer  Teilung in der Zellmitte  Binärzellen

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 42/51 – Siegmundsburg 6.2. Interpolationsbasiertes Grid-File (III): Aufteilung

Grid Files – Martin HaseneyerFolie 43/ 51 – Siegmundsburg 6.2. Interpolationsbasiertes Grid-File (IV): Aufteilung  mehrere Hierarchieebenen verwendet:  Binärzellen verschiedener Größe  bessere Anpassung an ungleichförmige Datenverteilung im Datenraum  Grid Directory als Baum 1,2 3,3 7,415,4

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 44/ 51 – Siegmundsburg 7. Fazit oder: Das Buffet wird in O(n) eröffnet.

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 45/51 – Siegmundsburg 7. Fazit (I): Vergleich – Überlappungsverfahren  Verfahren mit überlappenden Regionen (z.B. R-Baum):  Suchen ineffizient  Grid File: sehr effizient (Prinzip der zwei Plattenzugriffe)  gute Speicherausnutzung  Grid File: Buckets gut, Grid Directory weniger gut  geringer Wartungsaufwand  Grid File: geringer Wartungsaufwand  Grid Files sind bei Suche schneller, brauchen aber ggf. mehr Speicher

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 46/51 – Siegmundsburg 7. Fazit (II): Vergleich – Objektaufteilungsverfahren  Verfahren, die Objekte aufteilen (z.B. R + -Baum, Zellbaum) und redundant in mehreren Zellen speichern:  Suche effizient  Grid File: auch effizient  schlechte Speicherplatzausnutzung  Grid File: Buckets relativ gut, Grid Directory weniger gut  Probleme bei der Wartung  Grid File: relativ geringer Wartungsaufwand  Grid Files sind wartungsfreundlicher

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 47/51 – Siegmundsburg 7. Fazit (III): Prinzipien  Prinzip der 2 Plattenzugriffe gewahrt  Lokalitätsprinzip auch gewahrt  schön, da selten

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 48/51 – Siegmundsburg 7. Fazit (IV): Überblick  Nutzung der Datenstrukturen für punktförmige Objekte (Datenobjekte zu Punkten transformiert und abgebildet)  symmetrische, anpassbare Datenstruktur für multiple Schlüssel  schneller Zugriff, effiziente Bereichsanfragen  Wartung einfach möglich, Speicherausnutzung gut

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 49/51 – Siegmundsburg 7. Fazit (V): Probleme  Speichernutzung/Stabilität bei ungünstigen Datenverteilungen (Wachstum des Directorys)  zusätzliche Indirektion  TIDs in Buckets gespeichert  viel Platz im Bucket  viele TIDs  viele Daten zu lesen  langsam (besonders für Primärschlüsselzugriff)  Ansatzpunkt der/für Erweiterungen

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 50/51 – Siegmundsburg Quellen, Bildnachweis  Nievergelt, J.; Hinterberger, H.; Sevcik, K.: „The Grid File: An Adaptable, Symmetric Multikey File Structure“. TODS, 9(1):  Härder, T.; Rahm, E.: „Datenbanksysteme: Konzepte und Techniken der Implementierung“. Springer Verlag  Saake, G; Heuer, A.: „Datenbanken: Implementierungstechniken“. MITP-Verlag  Lehner, W.: „Datenbanktechnologie für Data- Warehouse-Systeme. Konzepte und Methoden“. dpunkt.verlag, Heidelberg  Leser, U.: „Data Warehousing“ (WWW)WWW  Zabala, S.: „Mehrdimensionale Indexstrukturen“ (Text/Folien)TextFolien  Apell, M.: „The Grid File“ (Text/Folien)TextFolien  Bilder teilweise an diese Werke angelehnt

1.Eigenschaften 2.Aufbau 1.Buckets 2.Grid Directory 3.Dynamisches Verhalten 1.Suchen 2.Einfügen 3.Löschen 4.Implementierung 5.Relevanz für Data Warehousing 6.Erweiterungen 1.Grid Grids 2.Interpolations- basiertes Grid File 7.Fazit Agenda Grid Files – Martin HaseneyerFolie 51/51 – Siegmundsburg Danke, dass Sie noch wach sind.  Sie können nun Fragen stellen.  Oder Merchandise-Artikel kaufen.