• Keine Ergebnisse gefunden

Indexstrukturen in Datenbanken

N/A
N/A
Protected

Academic year: 2022

Aktie "Indexstrukturen in Datenbanken"

Copied!
24
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Indexstrukturen in Datenbanken

f¨ur Zeichendaten und Texte sowie mehrdimensionale Dateiorganisation und Zugriffspfade

Mario Wenzel

3. Juli 2014

Mario Wenzel

Indexstrukturen in Datenbanken

(2)

Inhaltsverzeichnis

1 Einleitung 2 Pr¨afix B+-Baum 3 Tries

4 k-dimensionale B¨aume 5 Grid-File

6 mehrdimensionales Hashing

(3)

Was wollen wir mit Indexstrukturen erreichen und welche Eingenschaften sollten sie haben?

Effizientes Suchen

Wenig Reorganisation/wenig Wartungsaufwand haben Sortierung erhalten f¨ur Range-Abfragen

Nicht zu viel Speicher nutzen

Schnell und fehlerfrei implementierbar sein

Mario Wenzel

Indexstrukturen in Datenbanken

(4)

B+-B¨aume sind gut, aber:

Schl¨usselwerte stehen in den Knoten. Diese k¨onnen besonders lang sein, besonders f¨ur Zeichenketten.

(5)

Besser: Nur Pr¨afixe in den Knoten. Prefix ist nur genau so lang, wie er sein muss.

Besonders bei vielen Seperatoren pro Knoten macht sich kurze Schl¨ussell¨ange besonders bemerkbar.

String-Vergleich ist eh ein Prefix-Vergleich. Das Finden das passenden Kind-Knotens kostet also nicht extra.

Mario Wenzel

Indexstrukturen in Datenbanken

(6)

Trie/Pr¨ afixbaum

Datenstruktur zum Abspeichern vieler Zeichenketten.

Wurzel ist das leere Wort bzw. l¨angster Prefix aller W¨orter Knoten haben Prefix oder sind leer (Prefix ergibt sich dann durch Verkettung)

Kanten haben n¨achstes Zeichen Bl¨atter sind ganze W¨orter oder Daten Trie von reTrieval

(7)

Trie/Pr¨ afixbaum

Mario Wenzel

Indexstrukturen in Datenbanken

(8)

Trie/Pr¨ afixbaum

Nachteile:

Datenstruktur kann sehr tief werden denn Tiefe = l¨ange(l¨angstes Wort)

Viele Knoten/Kanten ¨uberfl¨ussig bei Wegen ohne viele Verzweigungen

zwei beliebig lange W¨orter (L¨angend n, m)→ zwischen max(n, m) und n + m Knoten

jedes weitere Wort→ maximal l Knoten Idee: Patricia-Trie

(9)

Patricia-Trie

Knoten mit nur einem Kind werden entfernt

An Kanten steht nicht nur ein Buchstabe sondern alle bis zur n¨achsten Verzweigung

Mario Wenzel

Indexstrukturen in Datenbanken

(10)

Patricia-Trie

(11)

Patricia-Trie

Geringe Tiefe selbst bei langen W¨ortern

zwei beliebig lange W¨orter (L¨angend n, m)→ 3 Knoten jedes weitere Wort→ maximal +2 Knoten

Mario Wenzel

Indexstrukturen in Datenbanken

(12)

Homogener k-d-Baum

k-dimensionaler bin¨arer Suchbaum

Gesamtschl¨ussel im Index ist Zusammensetzung aus k Teilschl¨usseln

Aufbau wie Bin¨arbaum nur ein weiteres Feld (”Diskriminator Teilschl¨ussel zum Unterscheiden) Diskriminatoren in Reihenfolge nach Tiefe

(13)

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

Mario Wenzel

Indexstrukturen in Datenbanken

(14)

Homogener k-d-Baum

Nachteile:

Keine Balancierung

Keine Bereichsanfragen oder Anfrage nach Teilschl¨usseln (nur mit rekursivem Aufruf)

(15)

Heterogener k-d-Baum

k-dimensionaler bin¨arer Suchbaum Keine Datens¨atze in ¨Asten

weiterhin mit ”Diskriminator”

Datenraum wird geteilt (Divide and Conquer)

Mario Wenzel

Indexstrukturen in Datenbanken

(16)

Heterogener k-d-Baum

(17)

Heterogener k-d-Baum

Nachteile:

Keine Balancierung

Keine Bereichsanfragen oder Anfrage nach Teilschl¨usseln (nur mit rekursivem Aufruf)

Mario Wenzel

Indexstrukturen in Datenbanken

(18)

k-d-B*Baum

Mischung aus heterogenem k-d-Baum und B*Baum Aufw¨andige Balancierung unter Beibehaltung des k-d Baum-Prinzips

aber: durch Balancierung gleichschneller Zugriff auf alle Datens¨atze

(19)

Grid-File

Zerlegen des Datenraums in k-dimensionale Quader (Zellen) Jede Zelle ein Bucket (benachbarte Zellen k¨onnen sich Buckets teilen)

Bei ¨uberlauf werden alle Zellen einer Dimensionsachse geteilt Exact-Match Anfragen brauchen nur zwei Zugriffe

Mario Wenzel

Indexstrukturen in Datenbanken

(20)

Grid-Directory

Grid besteht aus k eindimensionalen Feldern (Skalen). Dies sind die Achsen des Datenraums. Jede Skala ist ein Attribut (Teil des Schl¨ussels, Schl¨usseldimension.

Skala ist die Partition des zugeh¨origen Wertebereichs. Bsp.:

[0,500,750,1000]

Grid-Directory ist k-dimensionales Array (zugriff ¨uber Skala).

Eine Zelle zeigt auf eine Seite

Grid-Region: mehrere Zellen k¨onnen auf die selbe Seite zeigen (sind dann eine Region)

(21)

Grid-File

Beispiel zum Gridfile an der Tafel

A1 A2 45 D 02 A 87 S

75 M

55 K 03 Z 15 D 25 K 48 F

Mario Wenzel

Indexstrukturen in Datenbanken

(22)

Grid-File

Nachteile:

Grid-Directory w¨achst nichtlinear

Zellen k¨onnen leer sein, da neue Zellen durch die gemeinsame N¨ahe in nur einer der k Dimensionen entstehen

(23)

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

Mario Wenzel

Indexstrukturen in Datenbanken

(24)

Quellen

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

Referenzen

ÄHNLICHE DOKUMENTE

Aufgabe 1 1 Punkt Geben Sie f¨ ur jede Aussage an, ob sie f¨ ur das folgende ER-Diagramm wahr (W) oder falsch (F) ist3.

Geben Sie den Namen aller Alben (album name) aus, die von einer vor 1975 ge- gr¨ undeten Band und einem Label mit mehr als 90 Mitarbeitern ver¨ offentlicht

Ubersetzen Sie das folgende ER-Diagramm in ein ¨ relationales Schema und geben Sie die Fremdschl¨ usselbeziehungen mittels Projektions- und Teilmengenoperatoren an..

In this paper, we argue for reconsidering prefix trees as in-memory index structures and we present the generalized trie, which is a prefix tree with variable prefix length for

Der Beweiser offenbart dem Verifizierer sein Paßwort w, dieser berechnet f (w) und ¨uberpr ¨uft, ob der Wert in der Benutzer-Datei f ¨ur den Beweiser

Ziel: A und B wollen (mithilfe von ¨offentlichen Schl ¨usseln, Master Keys) einen gemeinsamen, geheimen Schl ¨ussel (Session Key) bestimmen.. Dieser kann dann beispielsweise f

Within this contribution we provide an overview on joint transmitter- and receiver-side antenna subset selection methods for frequency selective channels and deploy them in

Our basic algorithm is based on three significant ideas: First, we use hashing to check whether an address D matches any prefix of a particular length; second, we use binary search