Gunnar Söllig, Stand 3. 1. 2006 Studienarbeit Umsetzung von nutzerdefinierten Indexstrukturen in ORDBMS am Beispiel eines Indexes für mehrdimensionale.

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Der R-Baum Richard Göbel.
Algorithmentheorie 08 – Dynamische Programmierung (1)
Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Kohonennetze für Information Retrieval mit User Feedback
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Der k-d-Baum Richard Göbel.
SST - Sequence Search Tree
Designing Software for Ease of Extension and Contraction
GIN2 – 2. Vorlesung, SS04 Prof. Dr. Wolfram Conen
System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
Der B-Baum Richard Göbel.
SQL Server 2005 Übersicht für Entwickler Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Fortgeschrittenenpraktika SS 2004
Fortgeschrittenenpraktika WS 2003/04 Database Research Group, Prof. Dr. Bernhard Seeger Department of Mathematics and Computer Science University of Marburg.
7. Natürliche Binärbäume
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Synonyme: Stapel, Keller, LIFO-Liste usw.
Bäume • Kernidee: Speicherung von Daten in einer Baumstruktur
Christian A. Kopf Institut für Informatik FU Berlin Episode Recognizer Framework - Rahmenwerk zur Episodenerkennung.
Ruby on Rails im Überblick
Sortieren mit Binären Bäumen
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Der R-Baum Richard Göbel.
Effizienz: Indexstrukturen
DOM (Document Object Model)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmen und Datenstrukturen
SQL als Abfragesprache
MMQL – Multimedia Query Language Eine Anfragesprache für Multimedia-Ähnlichkeitsanfragen Christian Mantei.
Effiziente Suche in Bilddatenbanken
Geometrische Objekte in Datenbanken Martin Pfeifle Institut für Informatik, Universität München Lehr- und Forschungseinheit für Datenbanksysteme Prof.
Explizite und editierbare Metainformationen für Software Muster.
Datenbanken Einführung Merkmale dateiorientierte Datenverwaltung
Was sind Histogramme? (1)
Einführung und Überblick
Visualisierung objektrelationaler Datenbanken
Entwurf und Realisierung einer digitalen Bibliothek zur Verwaltung von Notenhandschriften Dipl.-Ing. Temenushka Ignatova Datenbank- und Informationssysteme,
Einführung in die Programmierung
Effiziente Algorithmen
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
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.
Übung Datenbanksysteme II Index- strukturen
Datenbanksysteme für hörer anderer Fachrichtungen
SWE1 / Übung 10 ( ) Rekursion Binärbäume.
Structured Query Language
1 6.4 Verwaltung semistrukturierter Daten - was ist das? Datenverwaltung für XML-Dokumente - Daten in XML-Gewand - eigentlich XML-Dokumente - Abbildung.
Datenbank System (DBS) - Warum?
Anfragesprachen für Raumbezogene Daten Institut Für Kartographie und Geoinformation Bonn Projektgruppe Vertiefer Kartographie Sascha Rudolph.
Martin Pfeifle, Objekt - relationale Verwaltung hochauflösender CAD-Datenbanken Martin Pfeifle LFE Datenbanksysteme Institut für Informatik LMU.
Raumbezogene Zugriffsverfahren
- Studienarbeit - Entwurf und Umsetzung von kombinierten Anfragen für die Ähnlichkeitssuche auf digitalen Bilder auf der Basis von Regionen und Features.
5.1 5 Retrieval auf Bildern (.... in a nutshell)  Bedeutung.... ... im Zusammenhang mit Information Retrieval ... für Anwendungen Medizin: "Finde ähnliche.
Distributed Database Systems Parallele Datenbanksysteme von Stefan Schneider.
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.
Binärbäume.
CL Tree MW 31.1 Business Intelligence Wintersemester 2015 / 2016 Stanislav Prokupetz.
, Claudia Böhm robotron*SAB Anwendungsentwicklung mit dem Java und XML basierten Framework robotron*eXForms Simple Application Builder.
MapReduce programming model Astrid Rheinländer & Stefan Bethge
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Indexierung Oracle: indexes Indexierung.
Projektarbeit von Michael W. Passer Betreuer: Martin Pfeifle
 Präsentation transkript:

Gunnar Söllig, Stand Studienarbeit Umsetzung von nutzerdefinierten Indexstrukturen in ORDBMS am Beispiel eines Indexes für mehrdimensionale Datenstrukturen

2 Gliederung  Erweiterung ORDBMS Drei Ansätze  Multidimensionale Zugriffsverfahren Überblick Konkret: LSD h -Baum  Konzept dieser Implementation Relational Indexing mit IBM DB2

3 Erweiterung ORDBMS  Vorhanden: Nutzerdefinierte Datentypen, Prädikate Erweiterbare Indexing-Frameworks  Data cartridges, database extenders, data blades  Probleme: Effiziente Ausführungspläne gefordert Zugriffsmethode selbst nicht änderbar Engpässe bei Auslagerung  Ziel: Verwendbarkeit selbstdefinierter Indexe gleichwertig Standardindexen

4 Erweiterung ORDBMS  Deklaration CREATE TYPE t_obj AS OBJECT(…) CREATE TABLE my_objects(obj t_obj) CREATE INDEX custom_idx ON my_objects(obj)  Extensible Indexing index_create(), index_drop(), index_open() index_close(), index_insert(), …  Unterstützung Optimierer stats_collect(), predicate_select() index_cpu_cost(), index_io_cost()

5 Varianten  Integrierender Ansatz „hartverdrahtet“ im DB-Kern  Generischer Ansatz Generalized Search Tree (GiST)  Relationaler Ansatz Setzt auf SQL-Schicht auf

6 Integrative Approach  ACID-Prinzip gewährleisten  Unterscheidet Extending/Enhancing Approach  Vorteil: Höchste Performanz  Nachteile: Umfangreiche Implementation Fehleranfällig, plattformabhängig Praktisch nur durch Hersteller realisierbar

7 Generic Approach  Generalized Search Tree  Wird einmalig wie Integrative Approach implementiert  Bietet dann Framework für beliebige Indexe  Vorteil: Leichte Integration neuer Indexe  Nachteile: Schwierig zu implementieren Aktuell nur Forschungsprototypen

8 Relational Approach  Definition des Indexes mittels relationaler Anfragesprache  Unterliegt deren Beschränkungen, nicht in jedem Fall anwendbar  Geringer Implementierungsaufwand  Implementierungsunabhängig von tieferliegenden Schichten, plattformunabhängig  Trotzdem konkurrenzfähige Performanz

9 Schaubild Vergleich Entnommen aus: Hans-Peter Kriegel et al: The Paradigm of Relational Indexing: A Survey

10 Multidimensionale Zugriffsverfahren  Anwendungsfälle Medizin, CAD, Geographie, Molekularbiologie  Ähnlichkeitsmaß Keine generelle Definition möglich Oft L k -Metrik  Feature Transformation  Typische Anfragen Punktanfrage (identity query) Bereichsanfrage (range query) (k-)NN-Anfrage (epsilon/nn-query)

11 Klassifizierung Zugriffsstrukturen  Data partitioning vs. space partioning  Hash-basierte (ungeignet) Grid-File, Buddy-Tree  R-Baum-ähnliche R-Tree, R*-Tree, R + -Tree, X-Tree SS-Tree, SR-Tree TV-Tree  kd-Baum-basierte VAMSplit-R-Tree, LSD-Tree, speziell LSD h -Tree  Weitere Pyramid Tree Space Filling Curves

12 Genauer: LSD h -Tree (A. Henrich et al)  Ist definiert durch Vorgehen beim Splitting: Wähle Dimensionen der Reihe nach Überspringe dabei Dimensionen, in denen keine verschiedenen Datenwerte auftreten Modifikation bei hoher Dimensionszahl möglich Splitwert i.d.R. datenabhängig, z.B. arithmetisches Mittel  Ausgleichsverfahren ähnlich B-Baum- Varianten  Erweiterung mittels Coded Actual Data Regions (CADR)

13 CADR im LSD h -Tree  Zerlegung des gesamten Datenraumes einer Region in gleich große Hyperwürfel  Pro Dimension Speicherung des kleinsten und des größten Indexes besetzter Teilwürfel  Zusätzlicher Speicheraufwand 2*z*d Bit bei d Dimensionen und Auflösung z Entnommen aus: Christian Böhm et al: Searching in High-Dimensional Spaces – Index Structures for Improving the Performance of Multimedia Databases

14 k-NN-Suche im LSD h -Tree  Von der Wurzel ausgehend Bucket mit Startpunkt p der Suche ermitteln (Punktanfrage)  Dabei Speichern der nicht verfolgten Geschwisterknoten in einer NPQ (node priority queue), Sortierung gemäß Abstand zu p  k nächste Nachbarn aus Bucket mit p in die OPQ (object priority queue)  Solange sinnvoll, ersetze Elemente aus OPQ durch bessere aus Datenregion des NPQ-Kopfes (Abbau NPQ)

15 Relational Indexing mit DB2  Erweiterungsmöglichkeiten DB2 UDFs, Stored Procedures, user defined types Prädikate auf nutzerdefinierten Datentypen  Bsp. Interval-Tree: IntervalOverlap  Auf (selbstdefinierten) komplexen Datentypen ist kein Ordnungskriterium bekannt Indexframework definiert Schnittstellen zur Bereitstellung der fehlenden Funktionalität  Fragestellungen bei Erstellung und Nutzung des Indexes Änderungsoperationen bedingen Einfügen, Löschen von Schlüsseln Anfrageoperationen bewirken Indexscans

16 Änderungsoperationen Entnommen aus: Knut Stolze et al: DB2 Index Extensions by example and in detail

17 Key-Generator  Anbindung innerhalb der Indexdefinition  Beispiel CREATE INDEX EXTENSION interval_tree FROM SOURCE KEY (i interval) GENERATE KEY USING IntervalKeyGen (i..start, i..stop)

18 Indexabfrage Entnommen aus: Knut Stolze et al: DB2 Index Extensions by example and in detail

19 Nutzerdefinierte Prädikate  Für welche Prädikate einer WHERE-Klausel kann der Index sinnvoll eingesetzt werden? Information mittels PREDICATES-Klausel in Prädikatdefinition  Beispiel CREATE FUNCTION IntervalOverlap (i1 interval, i2 interval) … PREDICATES ( WHEN = 1 SEARCH BY EXACT INDEX EXTENSION interval_tree WHEN KEY(i1) use USE overlaps(i2) WHEN KEY(i2) use USE overlaps(i1) )

20 Range Producer/Index Filter  Range-Producer: user defined funtion, liefert TABLE (rangestart INTEGER, rangeStop INTEGER)  Index Filter: für weitere Filterung des gefundenen Range kann noch eine UDF definiert werden (wiederum mit einer PREDICATES-Klausel)

21 Implementation LSD h -Baum  Ausgeglichener binärer Baum mit Pre- order-Numerierung der Knoten als virtueller Backbone-Tree (vgl. Interval- Tree)  Problem: Splitting/Ausgleichen  Lösungsansätze: Extra Datenstruktur zur Speicherung des Baumstatus, Berechnung des Schlüsselwertes vorgelagert in Insert-Routine Betroffene Datensätze mittels Delete- und Insert-Operationen verschieben