Indexstrukturen in Datenbanken

Ähnliche Dokumente
Mehrdimensionale Zugriffspfade und Dateiorganisation

Ausarbeitung zum Thema:

ADS: Algorithmen und Datenstrukturen

Mehrdimensionale Zugriffspfade und Dateiorganisation

Indexstrukturen für Zeichendaten und Texte

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme

Fokus bisher lag bisher auf sinnvoller Abbildung eines Ausschnitts der realen Welt in einer relationalen Datenbank

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Datenbanksysteme II Multidimensionale Indizes (Kapitel 14) Felix Naumann

WINTERSEMESTER 2006/2007. Mehrdimensionale Bäume

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15.

DIGITALE BÄUME TRIES. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm

Teil VII Spezielle Indexstrukturen

Exkurs: Datenstruktur Quad Tree

Organisationsformen der Speicherstrukturen

Datenbanken: Indexe. Motivation und Konzepte

Physische Datenorganisation

Indizes B+Bäume in Oracle. Jörg Winkler

ADS: Algorithmen und Datenstrukturen 1

Rückblick: Pufferverwaltung

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Mehrwegbäume Motivation

Pat Trees und Pat Arrays Datenstrukturen zur effizienten Suche in Texten

Inhaltsverzeichnis. Teil 1 Grundlagen 23

Suchbäume. Suchbäume. Einfügen in Binären Suchbäumen. Suchen in Binären Suchbäumen. Prinzip Suchbaum. Algorithmen und Datenstrukturen

4. Tries und kd-bäume

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

Teil 1: Suchen. Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume B-Bäume Digitale Suchbäume

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16

Algorithmen und Datenstrukturen 1

Datenstrukturen & Algorithmen

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften:

Datenbanksysteme II Multidimensionale Indizes Felix Naumann

Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85

Geometrie 2. Julian Fischer Julian Fischer Geometrie / 30

Bereichsabfragen. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Suchbäume mit inneren Knoten verschiedener Knotengrade.

Klausur Informatik B April Teil I: Informatik 3

Dateiorganisation und Zugriffsstrukturen. Prof. Dr. T. Kudraß 1

Non-Standard-Datenbanken

Teil VII. Hashverfahren

Algorithmen und Datenstrukturen

Physische Datenorganisation

Suchstrukturen. Übersicht. 8 Suchstrukturen. Allgemeines. H. Täubig (TUM) GAD SS

Datenstrukturen & Algorithmen

Nachtrag zu binären Suchbäumen (nicht (nur) AVL Bäumen: Löschen von Elementen in binären Suchbäumen. 1. Fall: zu löschendes Element ist Blatt: löschen

Kap. 6: Geometrische Algorithmen 6.1 Mehrdimensionale Suchstrukturen

2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus

Rückblick: Datenorganisation & Indexstrukturen

3.2. Divide-and-Conquer-Methoden

{0,1} rekursive Aufteilung des Datenraums in die Quadranten NW, NE, SW und SE feste Auflösung des Datenraums in 2 p 2 p Gitterzellen

Tutorium Algorithmen & Datenstrukturen

Algorithms & Data Structures 2

Gleichheitsanfrage vs. Bereichsanfrage

Baumbasierte Strukturen

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

TU München. Hauptseminar: WS 2002 / Einführung in Suffix - Bäume

Clausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele. Stammbaum.

Klasse räumlicher Indexstrukturen, die den Datenraum rekursiv in 4 gleich große Zellen unterteilen (Quadranten NW, NE, SW, SE)

4.4 Quadtrees. Literatur

Was ist ein assoziativer Speicher?

Algorithmen I - Tutorium 28 Nr. 7

Informatik II: Algorithmen und Datenstrukturen SS 2015

Kapitel 8: Physischer Datenbankentwurf

Kapitel 8: Physische Datenorganisation

Definition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen:

Satz 172 Jedes vergleichsbasierte Sortierverfahren benötigt im worst-case mindestens n ld n + O(n) Vergleiche und hat damit Laufzeit Ω(n log n).

AVL-Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. AVL-Bäume 1/38

Algorithmen und Datenstrukturen I AVL-Bäume

Teil VII Indexstrukturen für Data Warehouse

Datenstrukturen und Algorithmen D-INFK

Oracle 10g Einführung

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Robert Sedgewick. Algorithmen in Java. Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen. Java-Beratung durch Michael Schidlowsky

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.

NAME, VORNAME: Studiennummer: Matrikel:

Informatik II Bäume zum effizienten Information Retrieval

Datenbanksysteme SS 2013

Kapitel 9: Physische Datenorganisation

4.4.2 Virtuelles Hashing Erweiterbares Hashing Das Gridfile Implementation von Hashverfahren in Java

Kapitel 12: Induktive

Robert Sedgewick. Algorithmen in Java. »il 1-4 Grundlagen Datenstrykturen Sortleren Suchen. java-beratung durch Michael Schidlowsky

Verkettete Datenstrukturen: Bäume

8.4 Suffixbäume. Anwendungen: Information Retrieval, Bioinformatik (Suche in Sequenzen) Veranschaulichung: DNA-Sequenzen

Algorithmen und Datenstrukturen II

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Physische Datenorganisat

Physische Datenorganisat

Transkript:

für Zeichendaten und Texte sowie mehrdimensionale Dateiorganisation und Zugriffspfade 3. Juli 2014

Inhaltsverzeichnis 1 Einleitung 2 Präfix B+-Baum 3 Tries 4 k-dimensionale Bäume 5 Grid-File 6 mehrdimensionales Hashing

Was wollen wir mit Indexstrukturen erreichen und welche Eingenschaften sollten sie haben? Effizientes Suchen Wenig Reorganisation/wenig Wartungsaufwand haben Sortierung erhalten für Range-Abfragen Nicht zu viel Speicher nutzen Schnell und fehlerfrei implementierbar sein

B+-Bäume sind gut, aber: Schlüsselwerte stehen in den Knoten. Diese können besonders lang sein, besonders für Zeichenketten.

Besser: Nur Präfixe in den Knoten. Prefix ist nur genau so lang, wie er sein muss. Besonders bei vielen Seperatoren pro Knoten macht sich kurze Schlüssellänge besonders bemerkbar. String-Vergleich ist eh ein Prefix-Vergleich. Das Finden das passenden Kind-Knotens kostet also nicht extra.

Trie/Präfixbaum Datenstruktur zum Abspeichern vieler Zeichenketten. Wurzel ist das leere Wort bzw. längster Prefix aller Wörter Knoten haben Prefix oder sind leer (Prefix ergibt sich dann durch Verkettung) Kanten haben nächstes Zeichen Blätter sind ganze Wörter oder Daten Trie von retrieval

Trie/Präfixbaum

Trie/Präfixbaum Nachteile: Datenstruktur kann sehr tief werden denn Tiefe = länge(längstes Wort) Viele Knoten/Kanten überflüssig bei Wegen ohne viele Verzweigungen zwei beliebig lange Wörter (Längend n, m) zwischen max(n, m) und n + m Knoten jedes weitere Wort maximal l Knoten Idee: Patricia-Trie

Patricia-Trie Knoten mit nur einem Kind werden entfernt An Kanten steht nicht nur ein Buchstabe sondern alle bis zur nächsten Verzweigung

Patricia-Trie

Patricia-Trie Geringe Tiefe selbst bei langen Wörtern zwei beliebig lange Wörter (Längend n, m) 3 Knoten jedes weitere Wort maximal +2 Knoten

Homogener k-d-baum k-dimensionaler binärer Suchbaum Gesamtschlüssel im Index ist Zusammensetzung aus k Teilschlüsseln Aufbau wie Binärbaum nur ein weiteres Feld ( Diskriminator Teilschlüssel zum Unterscheiden) Diskriminatoren in Reihenfolge nach Tiefe

Homogener k-d-baum Folgende Knoten an der Tafel: X Y A 60 40 B 75 70 C 30 60 D 45 30 E 90 10 F 45 85 G 40 70

Homogener k-d-baum Nachteile: Keine Balancierung Keine Bereichsanfragen oder Anfrage nach Teilschlüsseln (nur mit rekursivem Aufruf)

Heterogener k-d-baum k-dimensionaler binärer Suchbaum Keine Datensätze in Ästen weiterhin mit Diskriminator Datenraum wird geteilt (Divide and Conquer)

Heterogener k-d-baum

Heterogener k-d-baum Nachteile: Keine Balancierung Keine Bereichsanfragen oder Anfrage nach Teilschlüsseln (nur mit rekursivem Aufruf)

k-d-b*baum Mischung aus heterogenem k-d-baum und B*Baum Aufwändige Balancierung unter Beibehaltung des k-d Baum-Prinzips aber: durch Balancierung gleichschneller Zugriff auf alle Datensätze

Grid-File Zerlegen des Datenraums in k-dimensionale Quader (Zellen) Jede Zelle ein Bucket (benachbarte Zellen können sich Buckets teilen) Bei überlauf werden alle Zellen einer Dimensionsachse geteilt Exact-Match Anfragen brauchen nur zwei Zugriffe

Grid-Directory Grid besteht aus k eindimensionalen Feldern (Skalen). Dies sind die Achsen des Datenraums. Jede Skala ist ein Attribut (Teil des Schlüssels, Schlüsseldimension. Skala ist die Partition des zugehörigen Wertebereichs. Bsp.: [0, 500, 750, 1000] Grid-Directory ist k-dimensionales Array (zugriff über Skala). Eine Zelle zeigt auf eine Seite Grid-Region: mehrere Zellen können auf die selbe Seite zeigen (sind dann eine Region)

Grid-File Beispiel zum Gridfile an der Tafel A 1 A 2 45 D 02 A 87 S 75 M 55 K 03 Z 15 D 25 K 48 F

Grid-File Nachteile: Grid-Directory wächst nichtlinear Zellen können leer sein, da neue Zellen durch die gemeinsame Nähe in nur einer der k Dimensionen entstehen

mehrdimensionales Hashing Durch Bit-interleaving werden mehrere Dimensionen angebunden Beispiel: *0*0 *0*1 *1*0 *1*1 0*0* 0000 0001 0100 0101 0*1* 0010 0011 0110 0111 1*0* 1000 1001 1100 1101 1*1* 1010 1011 1110 1111

Quellen Datenbanken: Implementierungstechniken (Saake, Heuer) Wikipedia (Beispiel Trie)