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

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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