physische xml-speicherstrukturen und indizes · doc1 doc1 4 2 5 15 17 16 doc1 doc1 doc1 doc1 doc1...
Post on 11-Jun-2020
33 Views
Preview:
TRANSCRIPT
Physische XML-Speicherstrukturen undIndizes
Holger Meyer
Database Research Group
University of Rostock
E-Mail: hm@GUUG.de
Physische XML-Speicherstrukturen und Indizes – p. 1
Inhalt
1. Überblick XML-Dateiorganisation und Zugriffpfade
2. Werteindizes
3. Volltextindizes
4. XML-Dateiorganisation
5. Struktur- und Pfadindizes
6. Zusammenfassung
Physische XML-Speicherstrukturen und Indizes – p. 2
1 Dateiorganisation und
Zugriffspfade
Werteindex, atomar Elementinhalte, Attributwerte,strukturierte Anteile eins XML-Dokumentes
Volltextindex einzelnen Worte des Volltextes, ganzenSätzen oder Phrasen einer natürlichen Sprache,Zugriff mit Information Retrieval-Techniken.
Struktur- und Pfadindex effiziente Auswertung vonAnfragen unter Einbeziehung der Dokumentstruktur.
physische Speicherstrukturen zur Ablage von XML-Fragmenten
Physische XML-Speicherstrukturen und Indizes – p. 3
1.1 Kriterien
Dateiorganisationsform oder Zugriffspfad
Primärindex oder Sekundärindizes
Statische oder dynamische Strukturen
Ein- oder Mehrattributindex, ein- odermehrdimensionaler Index
Erhaltung einer Ordnung
Form der unterstützen Anfragen: Punktanfragen,Bereichsanfragen, partielle Anfragen, vage Anfragen
Pfadindex: Schemainformation vorhanden oder nicht
Pfadindex: akkurat, eindeutig, vollständig
Physische XML-Speicherstrukturen und Indizes – p. 4
2 Werteindex
Hash-Strukturen am Beispiel Erweiterbares HashingPunktanfragen, O(c)
dynamische Index-Bäume am Beispiel B+-BaumBereichsanfragen, Präfixsuche
Signatur-Bäume
n-dimensionaler Zugriff, Ähnlichkeitssuche
Physische XML-Speicherstrukturen und Indizes – p. 5
2.1 Erweiterbares Hashing
QHDd’ = 2
TCd’ = 2
SOBd’ = 2
MA I Nd’ = 2
00
01
10
11
d = 2
(a) vor
QHDd’ = 2
SOBd’ = 2
TCd’ = 2
M Rd’ = 3
d’ = 3A I N
111
110
101
100
011
010
001
000
d = 3
(b) nach dem Einfügen
von „R“
Abbildung 1: Verzeichnisverdoppelung, h(k) = k
mod 13
Physische XML-Speicherstrukturen und Indizes – p. 6
2.2 B+-Baum
A B D E F H J K M P
B H P
R S T U
Abbildung 2: B+-Baum, Ordnung M = 4
Physische XML-Speicherstrukturen und Indizes – p. 7
B+-Baum (cont’d)
P
L
T USR
PMLKJ
HFEDBA
B H
Abbildung 3: nach dem Einfügen von „L“Physische XML-Speicherstrukturen und Indizes – p. 8
2.3 Signaturbaum
1100 1110
1100
1100
1100
1100
1000
1000
0111
1100 1110
0011
1100 1110
0100
1000 0110
1100 0100
0100 1100
1000
1000
1000
1000
0010
0110
0100
0000
0001
0001
0001
0010
0010
0111
0111
0111
0111
0001
0001
0010
0011
0111
0011
0011
0001
Abbildung 4: Baum, Ordnung M = 4 und m = 2Physische XML-Speicherstrukturen und Indizes – p. 9
Signaturbaum (cont’d)
0111
0111
0111
0111
0001
0001
0010
0011
0111
1100 1110
0011
0111
0011
0011
0001
0000
0001
0001
0001
0010
0010
Abbildung 5: Suche nach der Signatur 00100001
Physische XML-Speicherstrukturen und Indizes – p. 10
3 Volltextindex
Anfragen an Volltext kann man grob in drei Formenunterteilen:
Stichwortbasierte Suche,
Mustersuche und
Strukturierte Anfragen.
Physische XML-Speicherstrukturen und Indizes – p. 11
3.1 Invertierte Datei
<hotel1><name2>Am3 Leuchtturm4</name5><beschreibung6>
Das7 Hotel8 befindet9 sich10 gegenüber11 dem12 Hotel13
<hotel14><name15>Neptun16</name17></hotel18>.19
</beschreibung20></hotel21>
Physische XML-Speicherstrukturen und Indizes – p. 12
Invertierte Listen — Beispiel
Word Vorkommen
. { 19 }
am { 3 }
befindet { 9 }
beschreibung { 6, 20 }
das { 7 }
dem { 12 }
gegenber { 11 }
hotel { 1, 8, 13, 14, 18, 21 }
leuchtturm { 4 }
name { 2, 5, 15, 17 }
neptun { 16 }
Physische XML-Speicherstrukturen und Indizes – p. 13
B+-Baum, Ordnung M = 4
doc1
doc1
4
2 5 15 17
16
doc1
doc1
doc1
doc1
doc1
doc1
doc1
9
doc1 3
doc1
7
12
11
das
leuchtturm
am
befindet
beschreibung
das
dem
gegenüber
hotel
leuchtturm
name
neptun
.
19
6 20
13 14 181 8 21
Physische XML-Speicherstrukturen und Indizes – p. 14
3.2 Tries
Hotel
Leitung
Leuchtturm
H
Le
i
uc h t t
e Leuchten
Physische XML-Speicherstrukturen und Indizes – p. 15
3.3 Patricia-Baum
Hotel
Leuchtturm
Leitung0H
e
t
i2L Leuchten
u 5
Physische XML-Speicherstrukturen und Indizes – p. 16
3.4 Suffixbaum
leuchtturm euchtturm chtturm htturm rm m
urmturmchtturm rm
tu
Physische XML-Speicherstrukturen und Indizes – p. 17
3.5 Suffix Arrays
4 2 5 10 9 6 7 3 81
l e u c h t t u r m
Physische XML-Speicherstrukturen und Indizes – p. 18
Vergleich Volltextindizes
Kriterium Invert. Suffix Signatur-Datei Array baum
exakte Suche√ √ √
Bereichsanfragen√ √ −
Präfixsuche√ √ −
Teilzeichenketten − √ −partielle Anfragen − √ √
Physische XML-Speicherstrukturen und Indizes – p. 19
4 Dokumentspeicherung
komplette physische Speicherung von XML-Dokumenten
→ Speicherung der (DOM-)Knoten, Clustering
Indizierung der Baum- oder Graphenstruktur einesXML-Dokumentes
→ Pfadindizes, XPath sind nicht General PathExpression (GPE)
Physische XML-Speicherstrukturen und Indizes – p. 20
4.1 Persistentes DOM in Infonyte-DB
persistente Speicherung der durch DOM impliziertenStruktur
pro XML-Dokument eine Datei
seitenorganisiert: Knotenseite aus 128 DOM-Knoten
Knotenindex (Node page index, NPI), Elementindex(Dictionary, DICT)
Strukturindex auf Basis Knotensignatur
Volltextindex auf Basis invertierter Dateien
Xpath, XSLT, XQL, XQuery
Physische XML-Speicherstrukturen und Indizes – p. 21
Aufbau einer PDOM-Datei
DICT NPI DICT’ NPI’
(a) vor
DICT’ NPI’
(b) nach Reorganisa-
tion
Physische XML-Speicherstrukturen und Indizes – p. 22
4.2 Hybride Speicherung in Natix
Knotenstruktur analog DOM,
seitenbasierte Speicherung,
Clustering: Teilbäume, Proxy-Knoten,
B-Baum-ähnliche Struktur, Splitting, Merging
Physische XML-Speicherstrukturen und Indizes – p. 23
Dokument und Clustering in Natix
Proxy−Knoten
Physische XML-Speicherstrukturen und Indizes – p. 24
5 Struktur-/Pfadindizes
allgemeine Pfadausdrücke (GPE)
mit oder ohne Schema (DTD, XML Schema)
eindeutig, jeder Pfad genau einmal
akkurat, alle Pfade exakt abgebildet
vollständig, ganze Pfade, nicht nur Teilpfade
Physische XML-Speicherstrukturen und Indizes – p. 25
6 Pfadauswertung
einfache Pfade: /a/b, a/b/c
Achsennavigation: Vorgänger, Nachfolger,Geschwister, . . .
einfache Muster: a//b, a/*/b
komplizierter: // und * in Kombination
allgemein: Pattern matching in Bäumen, reguläreAusdrücke, NFA (O(nm))
Physische XML-Speicherstrukturen und Indizes – p. 26
6.1 XML-sensitiver Volltextindex
<hotel1><name2>Am3 Leuchtturm4</name5><beschreibung6>
Das7 Hotel8 befindet9 sich10 gegenüber11 dem12 Hotel13
<hotel14><name15>Neptun16</name17></hotel18>.19
</beschreibung20></hotel21>
hotel
beschreibungname
hotel
name
text()text()
/
text() text()
"Am Leuchtturm" "Neptun" "."
"Das Hotel befindet sich gegenüber dem Hotel" Physische XML-Speicherstrukturen und Indizes – p. 27
Numerierungsschemata
Kodierung der Knotenabfolge → Achsenavigation,Volltextoperationen
Dietz (pre-, post-order), Element-Subelement,Vorgänger/Nachfolger, Phrasen,Position-Size, Updates,Bitvektor, Element-Subelement,Vorgänger/Nachfolger, Subskript, Hierarchie
Grundlagen: Bereichsalgebren, Suche in metrischenRäumen
Physische XML-Speicherstrukturen und Indizes – p. 28
Numerierungsschemata (cont’d)
<14, 18>
<15, 17>
<16, 16>
<19, 19><3, 4>
<2, 5>
<7, 13>
<6, 20>
<1, 21>
(c) Dietz
(15, 5)
(10, 30)
(50, 10)
(45, 40)
(70, 7)
(72, 3)
(80, 2)
(1, 100)
(65,14)
(d) Size
1.2
1
1.1
1.1.1 1.2.1 1.2.2
1.2.2.1
1.2.2.1.1
1.2.3
(e) Bitvektor
Physische XML-Speicherstrukturen und Indizes – p. 29
Numerierungsschemata (cont’d)
201510500
5
10
15
20
x (pre)
y (post)
ancestor(11,11)
descendant(13,19)
Physische XML-Speicherstrukturen und Indizes – p. 30
Elementindizierung
Wortposition (Start-Tag, Ende-Tag)
CONTAINS-Anfragen, SQL/MM Fulltext
einfache Pfadanfragen, Element-Subelement
Aufbau analog Volltextindex mit Wortpositionen
Element Vorkommen
beschreibung {(6, 20)}hotel {(1, 21), (14, 18)}name {(2, 5), (15, 17)}
Physische XML-Speicherstrukturen und Indizes – p. 31
Anfragen
Anfragetyp: elem//subelemselect sub.*from element e, element subwhere e.begin < sub.beginand sub.end < e.endand e.name = elemand sub.name = subelem
Physische XML-Speicherstrukturen und Indizes – p. 32
6.2 XASR
Pfadindizierung, Pre-Post-Order, Vaterknoten,
Element-Subelement-Anfragen → Verbundfolgen
docid position dparent elementdmin dmax
4711 1 21 0 hotel4711 2 5 1 name4711 6 20 1 beschreibung4711 14 18 6 hotel4711 17 17 14 name
Physische XML-Speicherstrukturen und Indizes – p. 33
Anfragen
Anfragetyp: elem/subelemselect sub.*from element e, element subwhere e.dmin = sub.dparentand e.name = elemand sub.name = subelem
Physische XML-Speicherstrukturen und Indizes – p. 34
6.3 Index Fabric
Vollständige Pfade, ausgewählte Teilpfade für häufigeAnfragen
akkurat, eindeutig
kein Schema
Mehr-Ebenen-Patricia-Baum
spezielle ElementkodierungElementnamen als Zeichen eines erweitertenAlphabetsPräfixnotationBeispiel Hotelnamen: hotel → H, name → N
„H N Am Leuchtturm“„H N Neptun“
Physische XML-Speicherstrukturen und Indizes – p. 35
Mehr-Ebenen-Patricia-Baum
2
0
LeuchtturmLeuchtenLeitung
0
2
Hotel
5e t
H L
ui"Leucht"
"Le"L
u
Layer 0Layer 1
""""
Physische XML-Speicherstrukturen und Indizes – p. 36
6.4 Pfad-Indizierung in SphinX
Schema notwendig
Schemagraph und B+-Baum
akkurat, eindeutige Pfadindizierung
GPE
Physische XML-Speicherstrukturen und Indizes – p. 37
SphinX Index-Struktur
gegenuber dem HotelDas Hotel befindet sichAm
LeuchtturmNeptun
name
beschreibungname
hotel
hotel
hotel
name beschreibung
B+−BaumB+−Baum
Dokument−Graph Schema−Graph
Abbildung 6: Dokument- und Schemagraph
Physische XML-Speicherstrukturen und Indizes – p. 38
7 Zusammenfassung
Vielzahl weiterer Techniken: Dataguides, 1-Index,2-Index, T-Index, ToXin, . . .
Unterstützung nicht nur für einfache Pfadausdrücke,sondern GPE
Aufwand für GPE: analog zu regulären Ausdrücken,NFA, DFA
Verbesserung wenn Schema vorhanden (Dokument-vs. Schemagraph)
Physische XML-Speicherstrukturen und Indizes – p. 39
top related