Physische XML-Speicherstrukturen und Indizes



Ähnliche Dokumente
Kapitel 8. Indexstrukturen für XML-Dokumente. Werteindexe Volltextindexe Pfadindexe

Indexstrukturen in XML

Datenstrukturen und Algorithmen

Speicherung von XML in (objekt-)relationalen Datenbanken. Burkhard Schäfer

Kapitel 8: Physischer Datenbankentwurf

Aufgaben zu XPath und XQuery

Nachtrag zu binären Suchbäumen

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

Datenstrukturen & Algorithmen

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Binäre Bäume Darstellung und Traversierung

XSL Templates. Mit Templates arbeiten. XSL Templates

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Allgemeines. veröffentlicht unter lizensiert unter. Creative Commons BY-SA 3.0. XQuery in MS SQL Server 2005

Algorithmen und Datenstrukturen

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube Konstanz

Abschluss Version 1.0

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

XML 1. Einführung, oxygen. Ulrike Henny. IDE Summer School 2013, Chemnitz

XINDICE. The Apache XML Project Name: J acqueline Langhorst blackyuriko@hotmail.de

OPERATIONEN AUF EINER DATENBANK

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Dokumentation zur Versendung der Statistik Daten

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Algorithmen und Datenstrukturen Balancierte Suchbäume

Grundbegriffe der Informatik

Tutorium Algorithmen & Datenstrukturen

BSV Ludwigsburg Erstellung einer neuen Internetseite

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Query Transformation based on XSLT

Kapiteltests zum Leitprogramm Binäre Suchbäume

Vorlesung : Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

Transaction Validation for XML Documents based on XPath

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube Konstanz

Einstellen der Makrosicherheit in Microsoft Word

WS 2009/10. Diskrete Strukturen

Datenbanken. Prof. Dr. Bernhard Schiefer.

Dein Sprung in die Zukunft. Ausbildung und duales Studium bei Airbus. Anleitung zur Online-Bewerbung

1.5 Umsatzsteuervoranmeldung

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

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

Leere Zeilen aus Excel-Dateien entfernen

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

impact ordering Info Produktkonfigurator

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

SOL-IT insurancecube. Verwalten. Verbinden. Überblicken.

Effiziente XML-Workflows mit Adobe InDesign

Benutzer Anleitung Manegger Tourenbuch

Algorithmen und Datenstrukturen Suchbaum

Widerrufsbelehrung. Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen.

Doku zur Gebäudebrüter Datenbank

Dateiorganisation und Zugriffsstrukturen

Referenzielle Integrität SQL

Multimedia Technologie II

Man liest sich: POP3/IMAP

Inhaltsverzeichnis 1. ALLGEMEINES Posteingang Tägliche Kontrolle Postausgang AKTEN... 3

Scanning- Reservationslösung Gemeinden Benutzerhandbuch

Handbuch. Visitenkarten

Aufgabe 1: [Logische Modellierung]

Inhaltsverzeichnis Dokumentverwaltung Organisation von Dokumenten Ordner erstellen Dokumente im Dateisystem behandeln...

7. Übung - Datenbanken

Tutorial Einrichten von TurboCAD

1 topologisches Sortieren

15 Optimales Kodieren

Anmerkungen zur Übergangsprüfung

Produktschulung WinDachJournal

ANLEITUNG GERÄTEREGISTRATION AN KRZ.SMK

Handbuch für Easy Mail in Leicht Lesen

egovernment für das Open Source CMS Contao

Carsten Czarski, Nina Neuwirth Oracle Deutschland. Volltextsuche in XML-Dokumenten mit Oracle

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Algorithmen und Datenstrukturen 2

Wie verständlich sind Produktinformationen und Verträge? Haben Sie den Vertrag abgeschlossen? 36%

Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici. 12.Übung bis

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Virtuelle Fotografie (CGI)

5. Programmierschnittstellen für XML

KURZANLEITUNG CLOUD OBJECT STORAGE

Options- und Freitext-Modul Update-Anleitung

Überprüfung der digital signierten E-Rechnung

Theoretische Grundlagen der Informatik

Wie findet das Navi den Weg?

E EDP. Elektronische Dokumentationsplattform immer und überall aktuell

5. Programmierschnittstellen für XML

Serien- mit oder ohne Anhang

Ihr Ideen- & Projektmanagement-Tool

LineQuest-Leitfaden LineQuest Dialog-Portal. Generieren der LineQuest-Auswertungsdatei

Hilfe zur ekim. Inhalt:

e-books aus der EBL-Datenbank

Ein einfaches Modell zur Fehlerfortpflanzung

Transkript:

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

Zugriffspfade Werteindex, atomar Elementinhalte, Attributwerte, strukturierte Anteile eins XML-Dokumentes Volltextindex einzelnen Worte des Volltextes, ganzen Sätzen oder Phrasen einer natürlichen Sprache, Zugriff mit Information Retrieval-Techniken. Struktur- und Pfadindex effiziente Auswertung von Anfragen 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- oder mehrdimensionaler 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 Hashing Punktanfragen, O(c) dynamische Index-Bäume am Beispiel B + -Baum Bereichsanfragen, Präfixsuche Signatur-Bäume n-dimensionaler Zugriff, Ähnlichkeitssuche Physische XML-Speicherstrukturen und Indizes p. 5

2.1 Erweiterbares Hashing d = 3 d = 3 A I N d = 2 00 01 10 11 d = 2 A I M N d = 2 B d = 2 C d = 2 D O T H S Q 000 001 010 011 100 101 110 111 d = 2 B d = 2 C d = 2 D O T H d = 3 M R S Q (a) vor (b) nach dem Einfügen von R Physische XML-Speicherstrukturen und Indizes p. 6

2.2 B + -Baum B H P A B D E F H J K M P R S T U Abbildung 2: B + -Baum, Ordnung M = 4 Physische XML-Speicherstrukturen und Indizes p. 7

B + -Baum (cont d) L B H P A B D E F H R S T U J K L M P Abbildung 3: nach dem Einfügen von L Physische XML-Speicherstrukturen und Indizes p. 8

2.3 Signaturbaum 1100 1100 1100 1000 1000 1100 1100 1110 1100 1110 0100 1100 0100 1000 1000 0110 0100 1100 1100 1110 0111 0011 1000 1000 1000 0010 0110 0100 0001 0010 0000 0001 0010 0001 0011 0001 0111 0011 0111 0001 0111 0001 0111 0010 0111 0011 Abbildung 4: Baum, Ordnung M = 4 und m = 2 Physische XML-Speicherstrukturen und Indizes p. 9

Signaturbaum (cont d) 1100 1110 0111 0011 0001 0000 0010 0001 0011 0001 0010 0001 0111 0011 0111 0001 0111 0001 0111 0010 0111 0011 Abbildung 5: Suche nach der Signatur 00100001 Physische XML-Speicherstrukturen und Indizes p. 10

3 Volltextindex Anfragen an Volltext kann man grob in drei Formen unterteilen: Stichwortbasierte Suche, Mustersuche und Strukturierte Anfragen. Physische XML-Speicherstrukturen und Indizes p. 11

3.1 Invertierte Datei <hotel 1 > <name 2 >Am 3 Leuchtturm 4 </name 5 > <beschreibung 6 > Das 7 Hotel 8 befindet 9 sich 10 gegenüber 11 dem 12 Hotel 13 <hotel 14 ><name 15 >Neptun 16 </name 17 ></hotel 18 >. 19 </beschreibung 20 > </hotel 21 > 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 19. am befindet beschreibung doc1 3 doc1 9 doc1 6 20 das das dem doc1 doc1 7 12 leuchtturm gegenüber hotel doc1 11 doc1 1 8 13 14 18 21 leuchtturm name doc1 4 neptun doc1 2 5 15 17 doc1 16 Physische XML-Speicherstrukturen und Indizes p. 14

3.2 Tries H Hotel L e i u Leitung e c h t t Leuchten Leuchtturm Physische XML-Speicherstrukturen und Indizes p. 15

3.3 Patricia-Baum H Hotel 0 i Leitung L 2 u 5 e Leuchten t Leuchtturm Physische XML-Speicherstrukturen und Indizes p. 16

3.4 Suffixbaum leuchtturm euchtturm u chtturm htturm t rm m chtturm rm turm urm Physische XML-Speicherstrukturen und Indizes p. 17

3.5 Suffix Arrays l e u c h t t u r m 4 2 5 1 10 9 6 7 3 8 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 eines XML-Dokumentes Pfadindizes, XPath sind nicht General Path Expression (GPE) Physische XML-Speicherstrukturen und Indizes p. 20

4.1 Persistentes DOM in Infonyte-DB persistente Speicherung der durch DOM implizierten Struktur 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 Reorganisation 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äre Ausdrücke, NFA (O(nm)) Physische XML-Speicherstrukturen und Indizes p. 26

6.1 XML-sensitiver Volltextindex <hotel 1 > <name 2 >Am 3 Leuchtturm 4 </name 5 > <beschreibung 6 > Das 7 Hotel 8 befindet 9 sich 10 gegenüber 11 dem 12 Hotel 13 <hotel 14 ><name 15 >Neptun 16 </name 17 ></hotel 18 >. 19 </beschreibung 20 > </hotel 21 > / hotel name beschreibung 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 metrischen Räumen Physische XML-Speicherstrukturen und Indizes p. 28

Numerierungsschemata (cont d) <1, 21> (1, 100) 1 <2, 5> <6, 20> (10, 30) (45, 40) 1.1 1.2 <3, 4> <7, 13> <14, 18> <19, 19> (15, 5) (50, 10) (65,14) (80, 2) 1.1.1 1.2.1 1.2.2 1.2.3 <15, 17> (70, 7) 1.2.2.1 <16, 16> (72, 3) 1.2.2.1.1 (c) Dietz (d) Size (e) Bitvektor Physische XML-Speicherstrukturen und Indizes p. 29

Numerierungsschemata (cont d) y (post) descendant(13,19) 20 15 10 ancestor(11,11) 5 0 0 5 10 15 20 x (pre) 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//subelem select sub.* from element e, element sub where e.begin < sub.begin and sub.end < e.end and e.name = elem and 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 element dmin dmax 4711 1 21 0 hotel 4711 2 5 1 name 4711 6 20 1 beschreibung 4711 14 18 6 hotel 4711 17 17 14 name Physische XML-Speicherstrukturen und Indizes p. 33

Anfragen Anfragetyp: elem/subelem select sub.* from element e, element sub where e.dmin = sub.dparent and e.name = elem and sub.name = subelem Physische XML-Speicherstrukturen und Indizes p. 34

6.3 Index Fabric Vollständige Pfade, ausgewählte Teilpfade für häufige Anfragen akkurat, eindeutig kein Schema Mehr-Ebenen-Patricia-Baum spezielle Elementkodierung Elementnamen als Zeichen eines erweiterten Alphabets Präfixnotation Beispiel Hotelnamen: hotel H, name N H N Am Leuchtturm H N Neptun Physische XML-Speicherstrukturen und Indizes p. 35

Mehr-Ebenen-Patricia-Baum Layer 1 Layer 0 "" 0 H "" 0 L L "Le" 2 u i 2 u "Leucht" 5 e t Hotel Leitung Leuchten Leuchtturm 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 name Dokument Graph hotel beschreibung Schema Graph hotel hotel name beschreibung Am Leuchtturm Das Hotel befindet sich gegenuber dem Hotel name Neptun B+ Baum B+ Baum 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 (Dokumentvs. Schemagraph) Physische XML-Speicherstrukturen und Indizes p. 39