physische xml-speicherstrukturen und indizes · doc1 doc1 4 2 5 15 17 16 doc1 doc1 doc1 doc1 doc1...

39
Physische XML-Speicherstrukturen und Indizes Holger Meyer Database Research Group University of Rostock E-Mail: [email protected] Physische XML-Speicherstrukturen und Indizes – p. 1

Upload: others

Post on 11-Jun-2020

33 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Physische XML-Speicherstrukturen und Indizes · 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

Physische XML-Speicherstrukturen undIndizes

Holger Meyer

Database Research Group

University of Rostock

E-Mail: [email protected]

Physische XML-Speicherstrukturen und Indizes – p. 1

Page 2: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 3: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 4: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 5: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 6: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 7: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 8: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 9: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 10: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 11: Physische XML-Speicherstrukturen und Indizes · 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

3 Volltextindex

Anfragen an Volltext kann man grob in drei Formenunterteilen:

Stichwortbasierte Suche,

Mustersuche und

Strukturierte Anfragen.

Physische XML-Speicherstrukturen und Indizes – p. 11

Page 12: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 13: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 14: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 15: Physische XML-Speicherstrukturen und Indizes · 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

3.2 Tries

Hotel

Leitung

Leuchtturm

H

Le

i

uc h t t

e Leuchten

Physische XML-Speicherstrukturen und Indizes – p. 15

Page 16: Physische XML-Speicherstrukturen und Indizes · 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

3.3 Patricia-Baum

Hotel

Leuchtturm

Leitung0H

e

t

i2L Leuchten

u 5

Physische XML-Speicherstrukturen und Indizes – p. 16

Page 17: Physische XML-Speicherstrukturen und Indizes · 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

3.4 Suffixbaum

leuchtturm euchtturm chtturm htturm rm m

urmturmchtturm rm

tu

Physische XML-Speicherstrukturen und Indizes – p. 17

Page 18: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 19: Physische XML-Speicherstrukturen und Indizes · 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

Vergleich Volltextindizes

Kriterium Invert. Suffix Signatur-Datei Array baum

exakte Suche√ √ √

Bereichsanfragen√ √ −

Präfixsuche√ √ −

Teilzeichenketten − √ −partielle Anfragen − √ √

Physische XML-Speicherstrukturen und Indizes – p. 19

Page 20: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 21: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 22: Physische XML-Speicherstrukturen und Indizes · 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

Aufbau einer PDOM-Datei

DICT NPI DICT’ NPI’

(a) vor

DICT’ NPI’

(b) nach Reorganisa-

tion

Physische XML-Speicherstrukturen und Indizes – p. 22

Page 23: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 24: Physische XML-Speicherstrukturen und Indizes · 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

Dokument und Clustering in Natix

Proxy−Knoten

Physische XML-Speicherstrukturen und Indizes – p. 24

Page 25: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 26: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 27: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 28: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 29: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 30: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 31: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 32: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 33: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 34: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 35: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 36: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 37: Physische XML-Speicherstrukturen und Indizes · 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

6.4 Pfad-Indizierung in SphinX

Schema notwendig

Schemagraph und B+-Baum

akkurat, eindeutige Pfadindizierung

GPE

Physische XML-Speicherstrukturen und Indizes – p. 37

Page 38: Physische XML-Speicherstrukturen und Indizes · 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

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

Page 39: Physische XML-Speicherstrukturen und Indizes · 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

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