Modellbasierte Speicherung

Werbung
Kapitel 5
Abbildung von XML auf Datenbanken
Drei-Ebenen-Modell
Textbasierte Abbildung
Modellbasierte Abbildung
Strukturbasierte Abbildung
Hybride Ansätze
Motivation
z
XMLXML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden
werden
–
–
Datenzentrische Anwendungen
Dokumentzentrische Anwendungen
z
Mehrere Varianten zur Modellierung von XMLXML-Dokumenten und deren Struktur
z
Konsequenz: Dokumente unterscheiden sich stark je nach Anwendung
–
–
z
Problemstellungen
–
–
z
Struktur vs. Inhalt
Regelmässig vs. unregelmässig
Speicherung von XML-Dokumenten
Effiziente Verarbeitung von Anfragen auf den gespeicherten Dokumenten bzw. Daten
Es gibt eine Vielzahl von Methoden zur Speicherung
–
–
Erste Zielsetzung: Methoden kennen lernen und verstehen
Zweite Zielsetzung: Methoden einordnen zu können
„
„
„
Grundprinzipien
Vor- und Nachteile
Verwendung
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-2
Drei-Ebenen-Modell von Informationssystemen
Drei-Ebenen
z
–
Konzeptuelle Ebene
„
–
Logische Ebene
„
„
–
abstrakte Datenrepräsentation
logische Datenrepräsentation
Dateninhalte (Instanzen)
Physische Ebene
„
„
Speicherungsstrukturen
Zugriffsstrukturen
Anwendung des Drei-Ebenen-Modells auf
z
–
–
–
Datenbanken
Dokumentverarbeitung
XML-Verarbeitung
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-3
Drei-Ebenen-Architektur von Datenbanken
konzeptuelle
Ebene
logische
Ebene
physische
Ebene
Abstraktes DB-Schema
z.B. ER-Schema
Konkretes DB-Schema
z.B. Tabellenschema
Speicherungsstruktur
Zugriffspfade
z.B. B-Baum-Indexe
Abstrakte Instanzen
z.B. Entities
Konkrete Instanzen
z.B. Tabellen und Tupel
Datensätze in
DB-Seiten
z
Konzeptuelle Ebene: ERM, RMSDM, UML, ...
z
Logische Ebene: Relationenmodell, NF2-Modell, OR-Modelle, ...
z
Physische Ebene: interne Speicherung, Indexierung, Änderungen
(Updates), Transaktionsverarbeitung, Anfrageoptimierung
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-4
Drei-Ebenen-Architektur in der Dokumentverarbeitung
z
konzeptuelle
Ebene
logische
Ebene
physische
Ebene
Formatvorlage
Dokumentstruktur
Datei
Dokument
Zugriffsstruktur
z.B.: Volltext-Index
Konzeptuelle Ebene:
–
–
Editoren
grundsätzliche Vereinbarung der Dokumentstruktur
(Einleitung vor Zusammenfassung etc.)
z
Logische Ebene: Dokumentenmodell, Dokumentenausprägungen
z
Physische Ebene: interne Speicherung, Indexierung, Anfrageverarbeitung
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-5
Drei-Ebenen-Architektur für XML-Anwendungen
konzeptuelle
Ebene
logische
Ebene
<..>
<..>
<..>
Dokumentstruktur
z.B.: XML-Schema
physische
Ebene
</..>
</..>
</..>
XML-Dokumente,
XML-Elemente
z
Konzeptuelle Ebene: XML-Schema, DTDs
z
Logische Ebene: XML-Dokumente, XML-Elemente, etc.
z
Physische Ebene - Speicherung:
–
–
–
?
Speicherungsstruktur
Zugriffsstruktur
Bislang immer in Form einer Datei – nur bei kleinen Datenbeständen sinnvoll
Wie speichert man grosse Dokumente?
Wie kann man Abfragen möglichst effizient unterstützen?
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-6
Charakterisierung von XML-Dokumenten
z
–
–
z
strukturiert, regulär
Beispiele: Produktkataloge,
Bestellungen, Rechnungen
<content>
XML builds on the principles of two existing
languages, <emph>HTML</emph> and
<emph>SGML</emph> to create a simple
mechanism ...
The generalized markup concept ...
</content>
Dokumentzentrierte Dokumente
–
–
z
<order>
<customer>Meyer</customer>
<position>
<isbn>1-234-56789-0</isbn>
<number>2</number>
<price currency=''Euro''>30.00</price>
</position>
</order>
Datenzentrierte Dokumente
unstrukturiert, irregulär
Beispiele: wissenschaftliche Artikel,
Bücher, E-Mails, Web-Seiten
Semistrukturierte Dokumente
–
–
datenzentrierte und
dokumentzentrierte Anteile
Beispiele: Veröffentlichungen, Amazon,
MS Press (example chapters)
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
<book>
<author>Neil Bradley</author>
<title>XML companion</title>
<isbn>1-234-56789-0</isbn>
<content>
XML builds on the principles of two
existing languages, <emph>HTML
</emph> and ...
</content>
</book>
5-7
Beudeutung des Dokumentcharakters
Dokumentcharakter
Konzeptuelle
Ebene
Logische
Ebene
Physische
Ebene
dokumentenzentriert
semistrukturiert
datenzentriert
Modellierung von
Struktur und Inhalt
Modellierung von Struktur
und Inhalt
Modellierung von
Struktur
Baumbasierte Editoren
"OEM-Modell"
ER, OML, UML
Dokumentmodell
Daten- und Dokumentmodell
Datenmodell
Anfragen/Updates an
Struktur und Inhalt
Anfragen/Updates an Struktur
und Inhalt
Anfragen/Updates an
Inhalt
XML, SGML
XML, OEM
XML, RDM, OODM
XQuery, XPath, DOM,
IR-Anfragen
XQuery, XPath, UnQL, LOREL,
XIRQL
XQuery, SQL, OQL
Struktur auf Werteebene
Struktur auf Schema- und
Werteebene
Struktur auf
Schemaebene
Dateien, Volltextindex,
Strukturindex
Semistrukturierte Datenbank,
Data Guide, Volltextindex,
Pfadindexe
(objekt-)relationale
Datenbanken, B-Baumbzw. Hash-Indexe
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-8
Zusammenfassung: Architektur
Dokumentverarbeitung
<..>
<..>
XML
<..>
</..>
</..>
</..>
Datenbanken
konzeptuelle
Ebene
logische
Ebene
physische
Ebene
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-9
Anforderungen an die physische Ebene
z
z
Ordnungserhaltende und verlustfreie Speicherung von
XML-Dokumenten
Effizienter Zugriff auf XML-Dokumente oder Teile davon
–
Kurze Antwortzeiten für
„
„
–
–
–
–
–
Anfragen
Änderungsoperationen
??
physische
Ebene
physische
Ebene
Physisches Design auf der Speicherungsebene
Indexierungsverfahren
Transaktionsverwaltung
Unterstützung von XPath und XQuery
Unterstützung von SAX und DOM für Anwendungen
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-10
Klassifikation der Ansätze für die physische Ebene
z
Textbasierte Verfahren
–
z
Modellbasierte Verfahren
–
–
–
z
Speicherung der XML-Dokumente als Zeichenkette
Ausnutzen des Datenmodells von XML zur Speicherung
Generische Speicherung der Graphstruktur von XML
Speicherung der DOM-Informationen
Strukturbasierte Verfahren
–
–
–
Abbildung auf objektorientierte und (objekt-)relationale Datenbanken
Ableiten des DB-Schemas aus XML-Struktur
Einsatz von benutzerdefinierten Abbildungsverfahren
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-11
Textbasierte Speicherung
Textbasierte
Speicherung
Volltextindex
Information Retrieval
Suchmaschinen
Text Extender für ORDBS
- Oracle Text
- DB2 Text Extender
- Informix Text Data Blade
Modellbasierte
Speicherung
Pfadindex
Strukturbasierte
Speicherung
Vollständige
automatische
Abbildung
Benutzerdefinierte
Abbildung
DB2 Text Extender
Oracle Text
Informix Verity Text
Search Data Blade
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-12
Textbasierte Speicherung
z
Der komplette XML-Dokumenttext wird als Zeichenkette abgespeichert
–
–
z
Operationen auf Dokumenten als Ganzes sind sehr effizient
–
–
z
Datei im Dateisystem
CLOB (Character-Large-OBject) im Datenbanksystem
Lesen des kompletten Dokuments
Schreiben des kompletten Dokuments
Zugriff mit feinerer Granularität erfordert zusätzliche Unterstützung
–
–
→
Volltextindex
Pfadindex
diese und weitere Indexstrukturen werden in Kapitel 8 behandelt
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-13
Kritik der textbasierten Speicherung
z
Schemabeschreibung
–
z
z
nicht erforderlich
Dokumentrekonstruktion
–
z
–
z
Dokumente bleiben im Original
erhalten
–
–
Anfragen des Information Retrieval
Auswertung des Markup in den
Anfragen
XML-Anfragen möglich
–
z
Zeichenkette muss beim Zugriff
geparst werden → aufwändig
Keine Nebenläufigkeit beim Lesen
und Schreiben → keine Parallelität
Einsatz
–
–
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
Volltextfunktionen
Effizienz
–
Anfragen
–
Weitere Besonderheiten
für dokumentzentrierte XMLAnwendungen
auch für semistrukturierte
Anwendungen
5-14
Modellbasierte Speicherung
Textbasierte
Speicherung
Volltextindex
Modellbasierte
Speicherung
Strukturbasierte
Speicherung
Vollständiges
automatisches
Abbildung
Pfadindex
Benutzerdefiniertes
Abbildung
Florescu/Kossmann
Shimura/Yoshikawa/Uemura
infonyte
eXcelon XIS
(POET)
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-15
Modellbasierte Speicherung
z
Idee: generische Speicherung der Graphstrukturen von XML-Dokumenten
–
–
–
z
XML-Elemente, XML-Attribute, ... sind die Knoten des Graphen
Schachtelung der Elemente gibt die Kanten
Knoten erhalten (intern) eine ID durch Traversierung des Graphen
Verwendung von Relationen bzw. Objektklassen zur Speicherung von
Elementen und Attributen
Elemente
ID Elementname Wert Verweis auf Vorgänger Ordnung
Attribute
ID
Attributname
Wert
Verweis auf Element
z
Vollständige Wiederherstellung der Struktur ist möglich
z
Erweiterungen zur adäquaten Speicherung von Datentypen sind möglich
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-16
Modellbasierte Speicherung: EDGE, BINARY
store
…
auction
description
Men
...
Edge-Tabelle
store
price
5.20
key
D1
…
D4
D1
…
D4
D1
D4
auction
description
Space
and stars
price
47.11
id
1
parent label
NULL store
1
4
NULL
1
6
17
23
1
4
6
content
NULL
store
auction
NULL
NULL
auction
price
description
NULL
5.20
Space and
stars…
…
Varianten:
• BINARY: horizontale Partitionierung
von EDGE nach label
• Herausfaktorisieren der
Inhalte der Blattknoten
XML-Dokumente
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-17
Modellbasierte Speicherung: Anfragen (1)
z
Angepasstes SQL, durch Datenbankschema bestimmt
z
Beispiel: Gebe ''Schnäppchen'' mit Preis aus
SELECT a.content, b.content
FROM Edge a, Edge b
WHERE (a.label = 'price')
AND (a.content < 10.00)
AND (b.label = 'description')
AND (b.parent = a.parent)
AND (a.key = b.key)
key
D1
…
D4
D1
…
D4
D1
D4
id parent label
1
NULL store
content
NULL
1
4
NULL
NULL
6
17
23
NULL store
1
auction
1
4
6
auction
NULL
price
5.20
description Space and
stars…
…
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-18
Modellbasierte Speicherung: Anfragen (2)
XML-Anfragen
XQuery
SQL
DB
z
XML-Anfragen (XPath, XQuery) werden intern als SQL-Anfragen (unter
Berücksichtigung der Speicherstruktur) umgesetzt
z
Ergebnis der XML-Anfrage wird aus dem Ergebnis der Datenbankanfrage
generiert
–
–
''Labelling'' der Ergebnistupel
Ergebnis ist im XML-Format
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-19
Modellbasierte Speicherung:
Speicherung des DOM (1)
DOMImplementation
Node
NodeList
NamedNodeMap
Attr
z
Informationen des Document Object
Models werden in Datenbanken
gespeichert
CharacterData
Comment
Text
CDataSection
z
Alternative Speicherungsverfahren
–
–
–
(objekt-)relationale Datenbanken
objektorientierte Datenbanken
Entwicklung eigener
Speicherungsstrukturen
Document
DocumentFragment
DocumentType
Element
Entity
EntityReference
Notation
ProcessingInstruction
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-20
Modellbasierte Speicherung:
Speicherung des DOM (2)
Knoten vom
Typ: ELEMENT
2 title
The Autobiography
of Benjamin Franklin
1 book
Knoten vom
Typ: ATTR
3 price
8.99
Knoten vom
Typ: TEXT
NodeID
NodeType
DocID
ParentNode
1
ELEMENT
1
NULL
2
ELEMENT
1
1
3
ATTRIBUTE
1
1
4
TEXT
1
2
NodeID
TagName
NodeID
Content
1
book
4
"The Auto..."
2
title
NodeID
PreviousSibling
NextSibling
FirstChild
1
NULL
NULL
2
2
NULL
NULL
4
3
NULL
NULL
NULL
NodeID
ElementID
AttributName
AttributValue
3
1
price
8.99
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-21
Modellbasierte Speicherung: DOM-Methodenaufrufe
XML-Anfragen
DOM
SQL
DB
z
XML-Anfragen (DOM-Methodenaufrufe) werden intern als SQL-Anfragen
(unter Berücksichtigung der Speicherstruktur) umgesetzt
z
Ergebnis des Methodenaufrufs wird aus dem Ergebnis der
Datenbankanfrage generiert
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-22
Eigenschaften der modellbasierten Speicherung
z
Schemabeschreibung
–
z
Zur Speicherung nicht erforderlich
–
–
Möglich, aber sehr aufwändig
–
Anfragen
–
–
z
Effizienz
Dokumentrekonstruktion
–
z
z
XML-Anfragen möglich
Angepasste Datenbankanfragen
z
Einsatz
–
Weitere Besonderheiten
–
Navigation ausgehend von
gegebenem Kontext ist effizient
Wiederherstellen des Dokuments ist
ineffizient
Auswertung von Pfadausdrücken sehr
ineffizient
Anfragen über vielen
Elementen/Attributen sind
aufwändig
für daten- und dokumentzentrierte,
sowie semistrukturierte XMLAnwendungen
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-23
Strukturbasierte Speicherung: automatisches
Abbildung
Textbasierte
Speicherung
Volltextindex
Modellbasierte
Speicherung
Pfadindex
Strukturbasierte
Speicherung
Vollständige
automatische
Abbildung
Benutzerdefinierte
Abbildung
Shanmugasundaram et al.
Deutsch/Fernandez/Suciu: STORED
Klettke/Meyer
POET
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-24
DB-Schema aus einer DTD
oder einem XML-Schema ableiten
z
Motivation
–
XML als Austauschformat
„
„
–
–
z
XML-Inhalte sollen in einer herkömmlichen Datenbank gespeichert werden
Verzicht auf nativen Zugriff wird toleriert
Problematik
–
–
z
Vorgegebene DTD oder
Vorgegebenes XML-Schema
DB-Schema möglichst automatisch aus DTD generieren
DTD-Strukturinformationen möglichst gut ausnutzen
Grundsätzliches Vorgehen
–
–
–
–
DTD in eine Baumdarstellung überführen
Knoten sind die Elementtypen, Attribute, etc. (Typebene!!!)
Kanten sind die Schachtelungsbeziehungen der Elementtypen und deren
Restriktionen
Baum traversieren und Knoten und Kanten anhand von Regeln in DB-Tabellen
umwandeln
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-25
Erzeugen des Datenbankschemas für eine DTD
z
Regeln zur Umsetzung von Elementtypen:
–
XML-Elementtyp
Sequenz von Elementtypen
Alternative von Elementtypen
Elementtyp mit Quantifizierer ?
Elementtyp mit Quantifizierer +,*
–
Geschachtelte Elementtypen
–
–
–
–
z
Spalte einer Tabelle
Spalte einer Tabelle
Spalte einer Tabelle
Spalte mit Nullwerten
Menge (Liste) von Spalten
(SET OF, LIST OF)
TUPLE OF
Regeln zur Umsetzung von Attributen:
–
–
–
–
XML-Attribut
IMPLIED
REQUIRED
Defaultwert
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
Spalte einer Tabelle
Nullwert erlaubt
Nullwert nicht erlaubt
DEFAULT Constraint
5-26
Abbildung von XML auf relationale Datenbanken
XML-Dokument:
<Hotel>
<HotelID>H0001</HotelID>
<Name>Hotel Hübner</Name>
<Adresse>
<PLZ>18119</PLZ>
<Ort>Warnemünde</Ort>
<Strasse>Seestrasse</Strasse>
<Nr>12</Nr>
</Adresse>
<Preise>
<Einzelzimmer> 198 </Einzelzimmer>
<Doppelzimmer> 299 </Doppelzimmer>
</Preise>
</Hotel>
Hotel:
Adresse:
Preise:
HotelID
Hotelname
Adresse
Preise
H0001
Hotel Hübner
A0001
P0001
AdresseID
PLZ
Ort
Strasse
Nr
A0001
18119
Warnemünde
Seestraße
12
PreiseID
Einzelzimmer
Doppelzimmer
P0001
198
299
z
DTD ist typischerweise erforderlich
z
Anfragen verwenden SQLSQL-Funktionalität
z
RDBMSRDBMS-Datentypen werden eingesetzt (Preise sind numerisch)
z
Problem: Abbildung von Kollektionstypen
– Aufteilung auf zusätzliche Relationen
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-27
Abbildung mit STORED
z
STORED: Semistructured TO Relational Data
z
Grundidee: Anwendung von Data Mining-Techniken auf XML-Struktur,
um eine gute Abbildung auf Tabellen zu bestimmen
z
Verfahren:
–
Eingabe
„
„
„
–
Ausgabe
„
„
–
Relationales Schema
STORED-Queries: Abbildungsvorschriften für XML-Dokumente auf DB-Tabellen
Algorithmus
„
„
„
–
XML-Dokumente (oder eine repräsentative Stichprobe der Kollektion)
Anfrage-Workload
Restriktionen des Plattenplatzes, der Tabellenzahl im RDBMS, ...
Bestimmung der XML-Teilbäume mit dem grössten Support in der Kollektion und in
den Anfragen
Diese Teilbäume werden in Tabellen materialisiert
Unregelmässige Daten werden in Overflow-Tabellen nach dem Edge-Ansatz
gespeichert
Keine DTD oder XML-Schema erforderlich!
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-28
Abbildung mit STORED: Beispiel
FROM '//book'
{
'title' : v1
'price' : v2
}
STORE book(v1,v2)
Teilbäume mit
hohem Support
price
title
Men
...
Side Table book
…
book
book
title
Space
and
stars
5.20
STORED
query
price
key
D1
D2
D3
D4
…
unusual
47.11
… title
Men…
Earth…
Stars…
Space and stars…
price
5.20
100.00
42.00
47.11
A value
Overflow
Source
D4
XML-Dokumente in Baumdarstellung
Ordinal Name
Datatype
3
unusual string
Target
v1
Value Table string
vid
v1
value
A value
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-29
Abbildung von XML auf objektrelationale Datenbanken
XML-Dokument:
Hotel:
HotelID
H0001
<Hotel>
<HotelID>H0001</HotelID>
<Name>Hotel Hübner</Name>
<Adresse>
<PLZ>18119</PLZ>
<Ort>Warnemünde</Ort>
<Strasse>Seestrasse</Strasse>
<Nr>12</Nr>
</Adresse>
<Preise>
<Einzelzimmer> 198 </Einzelzimmer>
<Doppelzimmer> 299 </Doppelzimmer>
</Preise>
</Hotel>
Hotelname
Hotel Hübner
<Adresse>
<Preise>
PLZ
Ort
Strasse
Nr
Einzelzimmer
Doppelzimmer
18119
Warnemünde
Seestrasse
12
198
299
z
DTD ist typischerweise erforderlich
z
Anfragen verwenden SQLSQL-Funktionalität
z
"Natürliche" Abbildung auf Tupeltypen, Kollektionstypen
z
Datenbanken häufig mit vielen Nullwerten wegen Irregularität der Dokumente
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-30
Beispiel
XML-DTD:
Informix-Syntax:
<!ELEMENT book (front, body, references)>
<!ATTLIST book isbn CDATA #REQUIRED>
<!ELEMENT front (title, author+, edition?, publisher)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (first, second, e-mail?)>
<!ELEMENT first (#PCDATA)>
<!ELEMENT second (#PCDATA)>
<!ELEMENT email (#PCDATA)>
CREATE TABLE book (
isbn VARCHAR(20) NOT NULL,
front ROW (
title VARCHAR(100) NOT NULL,
author LIST (
ROW (
first VARCHAR(30) NOT NULL,
second VARCHAR(50) NOT NULL,
email VARCHAR(30)
) NOT NULL
) NOT NULL,
edition VARCHAR(20),
publisher VARCHAR(40) NOT NULL
),
body CLOB NOT NULL,
references CLOB NOT NULL
);
<!ELEMENT body (#PCDATA)>
<!ELEMENT references (#PCDATA)>
<!ELEMENT publisher (#PCDATA)>
<!ELEMENT edition (#PCDATA)>
Book:
isbn
title
first
<front>
{author}
second email
body
edition
references
publisher
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-31
Abbildung von Alternativen
z
XML erlaubt die Angabe von Alternativen (Vereinigungsoperator!)
z
Beispiel:
<!ELEMENT unterkunft (hotel | pension | campingplatz)*>
z
Drei Speicherungsvarianten sind möglich
–
–
–
Jede Alternative als separate Tabellenspalte speichern
Aufspaltung der Alternativen in separate Tabellen
Verwendung einer Tabellenspalte vom Typ XML
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-32
Variante 1 – Alle Alternativen in einer Tabelle
z
Beispiel: <!ELEMENT unterkunft (hotel | pension | campingplatz)*>
<Pension>
<Name>
Zum Kater
</Name>
<Zimmer>42</Zimmer>
</Pension>
<Hotel>
<Kategorie>4</Kategorie>
<Hotelname>
Hotel Hübner
</Hotelname>
</Hotel>
<Campingplatz>
<Sterne>4</Sterne>
<Name>Meerblick</Name>
</ Campingplatz>
z
<Hotel>
Kategorie
<Pension>
Hotelname
Name
NULL
NULL
4
Hotel Hübner NULL
NULL
NULL
<Campingplatz>
Zimmer Sterne
Zum Kater 42
NULL
Name
NULL
NULL
NULL
NULL
NULL
NULL
4
Meerblick
Problem: viele NULL-Werte (Speicherplatzverschwendung)
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-33
Variante 2 – Aufspaltung auf mehrere Tabellen
z
Beispiel: <!ELEMENT unterkunft (hotel | pension | campingplatz)*>
<Pension>
<Name>
Zum Kater
</Name>
<Zimmer>42</Zimmer>
</Pension>
<Hotel>
<Kategorie>4</Kategorie>
<Hotelname>
Hotel Hübner
</Hotelname>
</Hotel>
<Campingplatz>
<Sterne>4</Sterne>
<Name>Meerblick</Name>
</ Campingplatz>
z
Hotel:
Kategorie
4
Hotel Hübner
Name
Pension:
Hotelname
Zimmer
Zum Kater 42
Campingplatz: Sterne
4
Name
Meerblick
Bei Anfragen Vereinigung der Tabellen zur Zusammenführung nötig
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-34
Variante 3 – Verwendung einer Spalte vom Typ XML
z
Beispiel: <!ELEMENT unterkunft (hotel | pension | campingplatz)*>
Unterkunft
<Pension>
<Name>
Zum Kater
</Name>
<Zimmer>42</Zimmer>
</Pension>
<Hotel>
<Kategorie>4</Kategorie>
<Hotelname>
Hotel Hübner
</Hotelname>
</Hotel>
<Campingplatz>
<Sterne>4</Sterne>
<Name>Meerblick</Name>
</ Campingplatz>
z
<Pension>
<Name>
Zum Kater
</Name>
<Zimmer>42</Zimmer>
</Pension>
<Hotel>
<Kategorie>4</Kategorie>
<Hotelname>
Hotel Hübner
</Hotelname>
</Hotel>
<Campingplatz>
<Sterne>4</Sterne>
<Name>Meerblick</Name>
</ Campingplatz>
Spalte Unterkunft
ist vom Typ XML!
XML-Typ bietet native Methoden zum Zugriff mit XML-Anfragen oder
DOM-Methoden auf die Daten
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-35
Abbildung von rekursiven Datendefinitionen
z
DTDs beispielsweise können rekursiv sein
z
Unendliche Rekursion auf der Instanzenebene einer DB nicht möglich
z
Vorgehensweise:
–
–
–
–
z
Markieren der Knoten
Aufspaltung in separate Tabellen
Verwendung von Primär-/Fremdschlüsseln in RDBMS
Verwendung von Referenztypen in ORDBMS
Beispiel: <!ELEMENT book (front, body, references)>
<!ELEMENT references (book+)>
<book> ...
<references>
<book>...
<references>
...
</references>
</book>
</references>
</book>
book
<references>
references>
ID book references
book references
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-36
Abbildung von Elementordnungen
z
Reihenfolge kann von Bedeutung sein
z
In diesen Fällen: Einführung eines zusätzlichen Attributes
z
Beispiel:
<Buch>
Ordnung Kapitel
<Kapitel>Einführung</Kapitel>
1
Einführung
<Kapitel>Theoretische Grundlagen</Kapitel>
2
Theoretische Grundlagen
<Kapitel>Konzeption</Kapitel>
3
Konzeption
<Kapitel>Beispiel</Kapitel>
4
Beispiel
5
Zusammenfassung
<Kapitel>Zusammenfassung</Kapitel>
</Buch>
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-37
Abbildung von Mixed Content, ANY
z
Abbildung auf flache Tabellen nur sehr schlecht geeignet
z
Rückgriff auf textbasierte Speicherung für Teile des Dokuments
... Anreisebeschreibung
... <anreisebeschreibung>
Sie können unser Haus auf verschiedenen Wegen erreichen:
<bahn>per Bahn: 1 km ab Bahnhof Warnemünde</bahn>
<auto>per Auto: 19 km ab Autobahn A19 Rostock-Berlin</auto>
Sie finden uns direkt an der Uferpromenade.
</anreisebeschreibung>
z
Gar nicht darstellbar: Inhaltsmodell ANY
–
–
Beliebiger Inhalt, beliebige Elementtypen
Kann häufig erst auf der Instanzenebene entschieden werden, welche
Speicherungsstruktur geeignet ist
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-38
Abbildung von Mixed Content
<anreisebeschreibung>
Sie können unser Haus auf verschiedenen Wegen erreichen:
<bahn>per Bahn: 1 km ab Bahnhof Warnemünde</bahn>
<auto>per Auto: 19 km ab Autobahn A19 Rostock-Berlin</auto>
Sie finden uns direkt an der Uferpromenade.
</anreisebeschreibung>
Ordnung
#PCDATA
Bahn
Auto
1
Sie können unser Haus auf
verschiedenen Wegen erreichen:
NULL
NULL
2
NULL
per Bahn: 1 km ab
Bahnhof Warnemünde
NULL
3
NULL
NULL
per Auto: 19 km ab Autobahn
A19 Rostock-Berlin
4
Sie finden uns direkt an der
Uferpromenade.
NULL
NULL
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-39
Anfragen bei strukturbasierter Speicherung
mit automatischer Abbildung
z
Datenbankanfragen
–
–
–
–
z
Struktur der Datenbanken muss bekannt sein
SQL-Anfragen
OQL-Anfragen
...
XML-Anfragen
–
–
–
Prozess der Abbildung der XML-Dokumente auf Datenbanken muss
protokolliert sein
Datenbankanfrage für XML-Anfrage muss (automatisch) generiert werden
können
Ergebnisse für die XML-Anfragen muss generiert werden können
(Labelling in der DB-Engine)
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-40
Vor- und Nachteile strukturbasierter Speicherung
mit automatischer Abbildung
z
Vorteile
–
–
z
Anfragen, Datentypen, Aggregatfunktionen, Sichten
Integration in andere Datenbanken bei der Speicherung strukturierter Daten
Nachteile
–
–
–
Grosses Schema, schwach gefüllte Datenbanken (viele Nullwerte)
Keine flexiblen Datentypen, Speicherung von Alternativen problematisch
Wenig Flexibilität bei Anfragen
„
„
„
Keine Information-Retrieval-Anfragen ohne zusätzliche Erweiterungen möglich
Keine Volltextoperationen bei der Speicherung semi- und unstrukturierter Daten
Häufig kein nativer Zugriff mehr möglich
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-41
Strukturbasierte Speicherung in Datenbanken
mit automatischem Mapping
z
Schemabeschreibung
–
–
z
Nur eingeschränkt möglich
(Protokollierung des
Abbildungsprozesses)
Anfragen
–
–
Weitere Besonderheiten
–
z
Dokumentrekonstruktion
–
z
Zur Speicherung erforderlich bei DTDAnalyse
Nicht erforderlich bei STORED
z
Effizienz
–
z
Föderationen mit bestehenden
Datenbanken möglich
hoch durch Einsatz der DB-Engine
Einsatz
–
für datenzentrierte XMLAnwendungen
Datenbankanfragen
XML-Anfragen möglich
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-42
Strukturbasierte Speicherung:
benutzerdefinierte Abbildung
Textbasierte
Speicherung
Volltextindex
Modellbasierte
Speicherung
Pfadindex
Strukturbasierte
Speicherung
Vollständige
automatische
Abbildung
Benutzerdefinierte
Abbildung
Deutsch/Fernandez/Suciu: STORED
DB2 XML Extender
Ronald Bourret
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-43
Benutzerdefinierte Abbildung
z
Bei allen bisherigen Methoden konnte die Art der Speicherung in der
Datenbank nicht beeinflusst werden
z
Benutzerdefinierte Abbildungen lassen den Nutzer steuern, welche
Speicherungsstruktur zum Einsatz kommt
z
Struktur der XML-Dokumente und Datenbankschema können
unabhängig voneinander entworfen werden (und relativ autonom sein)
z
Auch möglich: Speicherung von XML-Dokumenten in existierenden
Datenbanken
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-44
Benutzerdefinierte Abbildung – Beispiel
XML-Dokument
Abbildungsvorschrift
<Hotel url="www.hotel-huebner.de">
<HotelID>H0001</HotelID>
<Name>Hotel Hübner</Name>
<Adresse>
<PLZ>18119</PLZ>
<Ort>Warnemünde</Ort>
<Strasse>Seestrasse</Strasse>
<Nr>12</Nr>
</Adresse>
<Preise>
<Einzelzimmer> 198 </Einzelzimmer>
</Preise>
</Hotel>
Preise:
<ClassMap>
<ElementType Name="Hotel"/>
<ToClassTable>
<Table Name="Preise">
</ToClassTable>
<PropertyMap>
<Attribute Name="url"/>
<ToColumn Name="Hotel_url">
</ToColumn>
</PropertyMap>
...
</ClassMap>
Hotel_url
Name
Einzelzimmer
www.hotelhuebner.de
Hotel Hübner
198
Abbildungsvorschrift stellt die Verbindung zwischen XML(-Schema) und Datenbanken dar
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-45
Abbildungsvorschrift
z
Beispiel nach Ronald Bourret
<ClassMap>
<ElementType Name="hotel"/>
<ToClassTable>
<Table Name="Hotelpreise"/>
</ToClassTable>
<PropertyMap>
<Attribute Name="url"/>
<ToColumn>
<Column Name="Hotel_ULR"/>
</ToColumn>
</PropertyMap>
...
</ClassMap>
z
Verbindung zwischen
Elementen und
Tabellen
Verbindung zwischen
Elementen/Attributen
und Tabellenspalten
Häufig wird die Abbildungsdefinition mit schon bestehender SchemaInformation kombiniert
–
–
Annotation der DTD
Annotation eines XML-Schemas
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-46
Anfragen mit benutzerdefinierter Abbildung
z
Datenbankanfragen
–
–
–
–
z
Struktur der Datenbanken muss bekannt sein
SQL
OQL
...
XML-Anfragen nur sehr eingeschränkt
–
–
Protokollierung des Abbildungsprozesses von XML-Dokumenten auf
Datenbanken
Alle für die Anfrage relevanten Daten müssen gespeichert sein
(verlustfreie Abbildung)
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-47
Eigenschaften der Speicherung
mittels benutzerdefinierter Abbildung
z
Schemabeschreibung
–
z
Zur Speicherung erforderlich
Meist nicht möglich
(Voraussetzung: Protokollierung des
Abbildungsprozesses,
vollständige Abbildung)
Anfragen
–
–
Weitere Besonderheiten
–
Dokumentrekonstruktion
–
z
z
z
Effizienz
–
z
Integration in bestehende
Datenbanken möglich
hoch durch Einsatz der DB-Engine
Einsatz
–
für datenzentrierte XMLAnwendungen
Datenbankanfragen
XML-Anfragen in Ausnahmefällen
möglich
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-48
Hybride Ansätze (1)
z
Es gibt eine Reihe von Methoden zur Speicherung von XML-Dokumenten
z
Unterstützung von Dokumenten, die sowohl daten- als auch
dokumentzentrierte Anteile aufweisen, ist schwierig
–
–
Speicherungsverfahren für datenzentrische Anteile sind nicht für
dokumentzentrische geeignet und umgekehrt
Keines der bisher bekannten Verfahren deckt die Anforderungen ab
z
Einsatz unterschiedlicher Speicherungsmethoden für diese verschiedene
Dokumentanteile
z
Kombination mehrerer der vorher vorgestellten Verfahren
–
–
z
Kombination von textbasierter mit strukturbasierter Speicherung
Kombination von strukturbasierter Speicherung mit XML-Typ
Beispiel
–
–
–
Verwendung von objektrelationalen Datenbanken mit Typ XML
''Strukturierte'' Anteile des XML-Dokumentes als objektrelationale Strukturen
''Unstrukturierte'' Anteile als Attribute vom Typ XML
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-49
Hybride Ansätze (2)
z
Probleme
–
–
z
Erkennen der stark strukturierten und irregulären Anteile
Separieren dieser Anteile
Grundidee der hybriden Verfahren zum Erstellen eines
Datenbankschemas
–
–
–
–
–
Aufbau eines DTD-Graphen (oder XML-Schema-Graphen)
Bestimmen eines Masses für die Signifikanz jedes Knotens
Festlegen eines Shredding-Grades, der die Granularität des entstehenden
Datenbankschemas bestimmt
Ableitung der Tabellenspalten vom Typ XML
Abbildung der strukturierten Anteile auf objektrelationale Datenbanken
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-50
Integration der hybriden Speicherung
in die Klassifikation
Textbasierte
Speicherung
Volltextindex
Modellbasierte
Speicherung
Strukturbasierte
Speicherung
Vollständiges
automatisches
Abbildung
Volltext- und
XML-Index
Benutzerdefiniertes
Abbildung
ShreddingGrad
dokumentenzentriert
semistrukturiert
datenzentriert
• Erkennen von daten- und dokumentzentrierten Anteilen
• Speicherung mit verschiedenen Verfahren
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-51
Einordnung der Systeme
Textbasierte
Speicherung
Modellbasierte
Speicherung
Strukturbasierte
Speicherung
IBM DB2
eXcelon
IBM DB2
Oracle
Infonyte
Oracle
IBM Informix
Tamino
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-52
Zusammenfassung
z
Verschiedene Verfahren zur Speicherung von XML-Dokumenten
–
Textbasierte Verfahren
„
„
–
Modellbasierte Verfahren
„
–
Generische Abbildung des Graphenmodells von XML auf DBMS
Strukturbasierte Verfahren
„
„
–
Speicherung des ganzen XML-Dokumentes als Zeichenkette
Ggf. Indexierung mit Volltext- oder Pfadindexes
Erkennen und Analysieren der Struktur der XML-Dokumente
Ableiten eines DB-Schemas aus der XML-Struktur
Hybride Verfahren
„
Kombination mehrerer der zuvor genannten Verfahren
z
Es gibt keine Lösung, die alle denkbaren XML-Dokumente optimal
abdeckt
z
Sinnvolle Lösung ist stark von der Anwendung abhängig
Vorlesung "XML und Datenbanken" - WS 2004/2005 (Dr. C Türker)
5-53
Herunterladen