Date post: | 05-Apr-2015 |
Category: |
Documents |
Upload: | ilma-wellner |
View: | 109 times |
Download: | 1 times |
Verwaltung von XML-Dokumenten
© Prof. T. Kudraß, HTWK Leipzig
Motivation XML-Dokumente können für sehr verschiedene
Anwendungen eingesetzt werden Aussehen der Dokumente unterscheidet sich
stark
Vielzahl von Methoden zur Speicherung existiert
verschiedene Abfragemethoden Mehrere Varianten zur Modellierung von XML-
Dokumenten und deren Struktur
© Prof. T. Kudraß, HTWK Leipzig
Daten oder Dokumente (1) „Lesbare Dokumente“ (dokumentzentriert)
– sind selten genau gleich strukturiert– Reihenfolge ist wichtig– sinntragende Daten auf allen Ebenen, viel Mixed
Content– Volltextsuche ist unabdingbar, aber nicht
ausreichend– Beispiele
Zeitschriftenbeiträge, Bücher Gebrauchsanweisungen, Handbücher e-Mail Präsentationen Verträge
– 70% der relevanten Geschäftsinformationen in Textdokumenten
© Prof. T. Kudraß, HTWK Leipzig
Daten oder Dokumente (2) Datenzentrierte Dokumente
– wie Daten im herkömmlichen Sinn (z.B. in relationalen Datenbanken)
– Reihenfolge ist oft nicht relevant– sind einheitlich und meist einfach strukturiert– haben Datentypen– sinntragende Daten in Blattelementen oder
Attributen– Mixed Content ist die Ausnahme (oder Dekoration)– Beispiele:
Telefonbücher wissenschaftliche Daten Fahrpläne, Flugpläne Bestellungen
© Prof. T. Kudraß, HTWK Leipzig
Daten und Dokumente Semistrukturierte Daten
– Strukturiert: Felder– Unstrukturiert: binäre Daten wie Text, Video- und Audio-
Streams, Bilder (in XML: External Entities, CDATA Sections)– unregelmäßiges Auftreten von Hyperlinks
Mangel an Struktur– Mischform aus datenzentriert und dokumentenzentriert– Struktur implizit oder verborgen– Integration von Daten aus heterogenen Quellen (hierfür
strukturiertes Modell oft zu restriktiv)– Bestimmte Anfragetypen ignorieren Schema bewußt (z.B.
Zeichenkettensuche über gesamte Datenbank hinweg) Beispiel Krankenakten:
– Krankenakten Daten: Geburtsdatum, Adresse, etc, binäre Daten: Röntgenbilder Dokumente: Diagnose, Anamnese etc.
© Prof. T. Kudraß, HTWK Leipzig
Klassifikation: Beispiel
Datenzentrierte Dokumente (strukturiert, regulär
Beispiele: Produktkataloge, Bestellungen, Rechnungen)
Dokumentzentrierte Dokumente (unstrukturiert, irregulär
Beispiele: wissenschaftliche Artikel,
Bücher, E-Mails, Webseiten)
Semistrukturierte Dokumente (datenzentrierte und dokumentenzentrierte
Anteile
Beispiele: Veröffentlichungen, Amazon)
<order> <customer>Meyer</customer> <position> <isbn>1-234-56789-0</isbn> <number>2</number> <price currency=„Euro“>30.00</price> </position></order>
<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>
<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>
© Prof. T. Kudraß, HTWK Leipzig
Warum XML in DatenbankenXML als SGML-Nachfolger
– entstehende Dokumente müssen gespeichert werdenXML als Austauschformat
– Originaldaten werden in XML transformiert Austauschdaten müssen aber ebenfalls gespeichert werden
(z.B. beim Empfänger)
Nur die Speicherung in Datenbanken garantiert– mächtige und effiziente Suchfunktionen– transaktionsorientierte Speicherung– Mehrbenutzerbetrieb
Anwendungen– Dokumentenverwaltung– Website-Management– Verkaufsunterstützung– Information Publishing
© Prof. T. Kudraß, HTWK Leipzig
XML-Datenbanksysteme (1) kann beliebige XML-Dokumente als solche
speichern kann XML-spezifische Anfragesprache
verarbeiten liefert XML als Ergebnis einer Anfrage
– Dokumente und Extrakte
effiziente struktur-und wertebasierte Anfragen unterstützt Daten- und Dokumentsicht (Mixed
Content, Kommentare etc.) erlaubt eine schematische Beschreibung der
Dokumente (Validierung möglich)
© Prof. T. Kudraß, HTWK Leipzig
XML-Datenbanksysteme (2) DB-Eigenschaften (Transaktionen,
Skalierbarkeit etc.) standardkonform Sammlung von XML-Dokumenten? Sammlung von XML-Dokumentfragmenten? Unabhängigkeit von der Speicherungsstruktur Indizierung? Validierung Sicherheit Erweiterbarkeit
© Prof. T. Kudraß, HTWK Leipzig
Speichern & Liefern von Dokumenten Round-Trip-Problem
– Gespeicherte Dokumente werden “unverändert“ geliefert
Der ganze Inhalt– Prolog– Kommentare– Processing Instructions
Was heißt “unverändert“
© Prof. T. Kudraß, HTWK Leipzig
Anfragetypen: Werteorientiert @attribute < 5
– <element attribute=“4“/>
element < 7.1– <element>6.1</element>
element = “Hugo“– <element>Hugo</element>– <element><subelement>
Hugo</subelement></element>
– <element><B>H</B>ugo</element>
© Prof. T. Kudraß, HTWK Leipzig
Anfragetypen: Textorientiert
documents containing “XML“ documents containing “XML“ OR “HTML“ but
not “SGML“ documents containing “XML“ within two words
of “database“ documents with word similar to “XML“ (ranking)
© Prof. T. Kudraß, HTWK Leipzig
Anfragetypen: Strukturorientiert siehe XPath Query Language //Buch bzw. /[//Buch]
alle Buch-Elemente bzw. Dokumente, in denen ein Element “Buch“ vorkommt
//Buch/@ISBN bzw. /[//Buch/@ISBN]der Wert des Attributs ISBN von Buch bzw. Dokumente, in denen ein Element “Buch“ ein Attribut “ISBN“ hat
/Buch/@* /Buch/Titel /Buch/Autor[1] /Buch/*[1] Titel AFTER /Buch/Autor
© Prof. T. Kudraß, HTWK Leipzig
Weitere Anfragetypen Linkorientiert
– Dokumente, die auf eine bestimmte Stelle zeigen– Dokumente, die aus einem Dokument referenziert
werden
Metadatenorientiert– Dokumente, die seit dem 1.1.2002 geändert wurden– Dokumente, die von Matthias Conrad gespeichert
wurden
Kombinationen daraus– //Buch[Preis < 50 AND Titel CONTAINS “XML“]
© Prof. T. Kudraß, HTWK Leipzig
Anfragesprachen Es gibt noch keine normierte Anfragesprache für XML
– die XML Query Working Group (W3C) arbeitet daran
Anforderungen an die Anfragesprache liegen vor– deklarativ– protokoll-unabhängig– auf allen Arten von Dokumenten (dokument- oder
datenzentrisch), mit und ohne DTD– Operationen auf Hierarchie und Reihenfolge– Unterstützung von Sortierung von Aggregation– XML-Repräsentation einer Query– Berücksichtigung von Namespaces– Unterstützung von Referenzen innerhalb und außerhalb von
Dokumenten
© Prof. T. Kudraß, HTWK Leipzig
XML-QLW3C: http://www.w3.org/TR/NOTE-xml-qlDatenquelle als URIAufbau:
WHERE Suchmuster IN Quelle CONSTRUCT Ausgabemuster
Beispiel-Anfrage in XML-QL (WHERE-Klausel):WHERE
<BOOK> <NAME><LAST>$1</LAST></NAME> </BOOK> IN “www.booklist.com/books.xml“
CONSTRUCT <RESULT> $1 </RESULT>
Anfrage extrahiert Daten aus einem XML-Dokument, die in der Struktur BOOK-NAME-LAST zu finden sind und erzeugt Ergebnis-Dokument
© Prof. T. Kudraß, HTWK Leipzig
XPath Für die Verwendung in XSLT und XPointer
entworfen Beim W3C normiert (W3C Recommendation)
http://www.w3.org/TR/xpath.html Navigation in einem Dokument
– Location Path Achsen zur Navigation child, descendant, parent, ancestor, sibling, following,
preceding, attribute, namespace, self, z.B. descendant::Name/child::Vorname
Kurznotation ist verfügbar: //Name/Vorname
© Prof. T. Kudraß, HTWK Leipzig
XPath (Forts.) Filter
– [expression]– Beispiel: //Buch[@ISBN=“3-557-06021-7“ AND Author]
Wildcard– //*[@*=“Hugo“]
Position [pos]– /book/author[1]
kann auf Processing Instructions und Kommentare zugreifen
Weitere Query Languages– XQL: basiert auf XPath, W3C-Proposal– Quilt: Basis für XQuery (zur Zeit diskutierter Sprachvorschlag)– IPSI-QL (erste Implementierung)
© Prof. T. Kudraß, HTWK Leipzig
Ziel: Anfrageergebnis wohlgeformtes XML unterschiedliche Granulate
– Dokument– Menge von Dokumenten (mengenorientierte
Anfrage) erfordert systemdefinierte Wurzel
– Element / Menge von Elementen (aus Dokument)– Attributwerte / Menge von Attributwerten– Elementwert / Menge von Elementwerten
Anfrageergebnisse
© Prof. T. Kudraß, HTWK Leipzig
XML-Architektur
<..>
physische
EbeneEbene
Dokument-verarbeitung
DokumentenEntwurf von XML-
Konzeptueller
</..></..>
logischeEbene
<..>
konzeptuelle
</..><..>XML
Datenbanken
Klettke / Meyer “XML-Datenbanken“
© Prof. T. Kudraß, HTWK Leipzig
Logische Ebene
logischeEbene
<..><..>
</..>
</..><..> </..>
dat
enze
ntr
iert
sem
istr
uk
turi
ert
dok
-zen
trie
rtDatenmodellAnfragen/Updates anInhalt
XML, RDBM, OODBMXQuery, SQL, OQL
Daten- und Dokumentmodell
Struktur und InhaltAnfragen/Updates an
XML, OEMXQuery, Lorel
Dokumentmodell
Anfragen/Updates anStruktur und Inhalt
XML,SGMLXQuery, XPath, DOM,IR-Anfragen
© Prof. T. Kudraß, HTWK Leipzig
Realisierung Physische Ebene
Speicherung der XML-Dokumente als Ganzes und Indizierung (textbasiert native)
– Volltextindex– Volltext- und Strukturindex
Speicherung der Graphenstruktur (modellbasiertes natives Verfahren)
– generische Graphspeicherung– Speicherung der DOM-Informationen
strukturierte Abbildung auf Datenbanken– relationale Datenbanken– objekt-orientierte und objekt-relationale Datenbanken– Einsatz von benutzerdefinierten Mappingverfahren
Ebenephysische
© Prof. T. Kudraß, HTWK Leipzig
Bedeutung des Dokumentcharakters XML-Dokumente können die ganze Bandbreite
von Daten bis zu Volltextdokumenten ein-nehmen– dokumentzentriert, semistrukturiert, datenzentriert
dementsprechend unterschiedliche Speiche-rungsverfahren von der Dokumenten-verarbeitung bis zur DB-Technologie
weiterhin: Neuentwicklung von Methoden
keine optimale Lösung für alle Anwendungen, Dokumentcharakter spielt entscheidende Rolle!
© Prof. T. Kudraß, HTWK Leipzig
Architektur: physische Ebene
date
nzen
trie
rtse
mis
truk
turi
ert
dok-
zent
rier
t
relationale, objekt-relationaleoder objekt-orientierteDatenbanken
generische Speicherung von Graphen oderDOM-Informationen
Dateien Volltextindex, Strukturindex
Struktur auf Werteebene
Struktur auf Schema-und Werteebene
Struktur auf Schemaebene
Ebenephysische
© Prof. T. Kudraß, HTWK Leipzig
Volltextindex und XML-Index
Volltextindex
Als Dateien / Clobs
Speicherung derDokumentstruktur
StrukturierteSpeicherung
in Datenbanken
VollständigesMapping
Benutzer-definiertesMapping
Abbilden des DOM-Modells
Abbildung derGraphstruktur
Für dokument-zentrierte XML-Dokumente
Für daten-zentrierte XML-Dokumente
Für semistrukturierte XML-Dokumente
Speicherung von XML-Dokumenten
© Prof. T. Kudraß, HTWK Leipzig
Grundprinzip der invertierten Liste
1
2
2
1
3
1
A
B
D
E
C
F
2
1
3
A D F
3
3
3C DB
A C D E
2
Bestimmung der Stichworteder Dokumente
Dokumente Stichworte
Invertierte Speicherung:
Speicherung der Stichworte undder zugehörigen Dokumente
Stichworte Dokumente
© Prof. T. Kudraß, HTWK Leipzig
Volltext-Index
- bekannte Methode (älter als relationale Datenbanken)- Boolesches Retrieval (AND, OR, NOT)
Verweis
Warnemünde
<adresse> <plz>18119</plz> <ort>Warnemünde</ort>
<nummer>12</nummer> </adresse> <anreisebeschreibung>
</anreisebeschreibung></hotel>
<hotelname>Hotel Hübner</hotelname>
Aus Richtung Rostock kommend ...
<hotel>
Begriff
anreisebeschreibung
ort
Rostock
hotel
<strasse>Seestraße</strasse>
© Prof. T. Kudraß, HTWK Leipzig
Eigenschaften des Volltext-Indexes Schemabeschreibung
– nicht erforderlich
Dokumentrekonstruktion – Dokumente bleiben im Original erhalten
Anfragen – Anfragen des Information Retrieval
Weitere Besonderheiten– Volltextfunktionen (vgl. SQL-MM)– keine Auswertung des XML-Markups
Einsatz – für dokumentzentrierte XML-Anwendungen
Produkte – Oracle InterMedia Text, DB2 Text Extender
© Prof. T. Kudraß, HTWK Leipzig Kombinierter Volltext- und XML-Index
- XML - Struktur kann in Anfragen ausgewertet werden
Verweis
Verweis
Seestraße <strasse>Seestraße</strasse>
. . .
Vorgänger
<ort>Warnemünde</ort> <plz>18119</plz>
Element
<adresse><hotelname>Hotel Hübner</hotelname>
Volltext-Index
XML-Index
Element
ort
Aus Richtung Rostock kommend fahren Sie auf der
hotel
adresse
Stadtautobahn bis nach Warnemünde
strasse
<hotel>
</adresse><anreisebeschreibung>
Term
Warnemünde
Rostock
anreise-beschreibung
<anreisebeschreibung></hotel>
© Prof. T. Kudraß, HTWK LeipzigEigenschaften des kombinierten Volltext- und XML-Indexes
Schemabeschreibung – nicht erforderlich
Dokumentrekonstruktion – Dokumente bleiben im Original erhalten
Anfragen – Anfragen des Information Retrieval – Auswertung des Markup in den Anfragen– XML-Anfragen möglich
Weitere Besonderheiten– Volltextfunktionen (vgl. SQL-MM)
Einsatz – für dokumentzentrierte XML-Anwendungen– auch für semistrukturierte Anwendungen
Produkte – Oracle InterMedia Text, DB2 Text Extender
© Prof. T. Kudraß, HTWK Leipzig
Speicherung der Graphstruktur
• generische Speicherung der Struktur des XML-Dokumentes
Element
www...
Müller
ort
plz
ValueType Descendant-of
string
stringstrasse
Warnemünde
Seestrasse
hotel
string
Element
adresse
int 18119
Attribute ValueType
url
autor
string
Attributes:
Elements:
© Prof. T. Kudraß, HTWK Leipzig Eigenschaften der Speicherung der Graphenstruktur
Schemabeschreibung – Zur Speicherung nicht erforderlich
Dokumentrekonstruktion – Möglich, aber sehr aufwendig
Anfragen – XML-Anfragen möglich– Angepaßte Datenbankanfragen
Weitere Besonderheiten– Anfragen über vielen Elementen/Attributen sind aufwendig
Einsatz – für daten- und dokumentzentrierte, sowie semistrukturierte XML-
Anwendungen
Produkte – Algorithmen von Florescu/Kossmann, Bradley u.a.
© Prof. T. Kudraß, HTWK Leipzig
Speicherung des DOM / 1 Informationen des
Document Object Models werden in Datenbanken gespeichert
Verwendung relationaler oder objekt-orientierter Datenbanken oder
Entwicklung eigener Speicherungsstrukturen
Comment
ProcessingInstruction
Document
DocumentFragment
DocumentType
Element
Entity
EntityReference
Notation
Text
CDataSection
DOMImplementation Node NodeList NamedNodeMap
CharacterData
Attr
© Prof. T. Kudraß, HTWK Leipzig
Speicherung des DOM / 2
Methoden der Klasse Node: - getChildren() - getFirstChild() - getNextSibling() - getNodeType() - getParentNode() - getPreviousSibling() - hasChildren() Methoden der Klasse Element: - getAttributes() - getElementsByTagName(String) - getTagName() Methoden der Klasse Attribut: - getName() - getValue()
NodeID NodeType DocID ParentNode
NodeID ElementID AttributName AttributValue
PreviousSibling NextSibling FirstChild
NodeID TagName
© Prof. T. Kudraß, HTWK Leipzig Eigenschaften der Speicherung von DOM
Schemabeschreibung – Zur Speicherung nicht erforderlich
Dokumentrekonstruktion – Möglich, aber auswändig
Anfragen – XML-Anfragen möglich– Angepasste Datenbankanfragen
Weitere Besonderheiten– Standardisierte und allgemein akzeptierte Schnittstelle
Einsatz – für daten- und dokumentzentrierte, sowie semistrukturierte
XML-Anwendungen Produkte
– infonyte (IPSI Darmstadt), eXcelon XIS (POET), ozone (SMB)
© Prof. T. Kudraß, HTWK LeipzigAbbildung der XML- Struktur auf relationale Datenbanken
- DTD ist erforderlich - Anfragen verwenden SQL - Funktionalität- Datentypen
<hotel url="www.hotel-huebner.de">
<hotelname>Hotel Hübner</hotelname> <adresse> <ort>Warnemünde</ort>
...
</adresse> <preise> <einzelzimmer>198</einzelzimmer>
</preise>...
</hotel>
<strasse>Seestraße</strasse>
XML-Dokument HotelID Hotelname Adresse Preise
H0001 Hotel Hübner A0001 P0001
AdresseID Ort Strasse ...
A0001 Warnemünde Seestraße
PreiseID Einzelzimmer ...
P0001 198
Hotel:
Preise:
Adresse:
© Prof. T. Kudraß, HTWK LeipzigAbbildung der XML- Strukturauf objekt-orientierte Datenbanken
- DTD ist erforderlich - Anfragen verwenden SQL - Funktionalität- Datentypen- Datenbanken mit vielen Nullwerten
HotelID Hotelname Adresse Preise
Ort Strasse ... einzelzimmer ...
H0001 Hotel Hübner Warnemünde Seestraße 198
Hotel:
XML-Dokument
<hotel url="www.hotel-huebner.de">
<hotelname>Hotel Hübner</hotelname> <adresse> <ort>Warnemünde</ort>
...
</adresse> <preise> <einzelzimmer>198</einzelzimmer>
</preise>...
</hotel>
<strasse>Seestraße</strasse>
© Prof. T. Kudraß, HTWK Leipzig Strukturierte Speicherung in Datenbanken
Schemabeschreibung – Zur Speicherung erforderlich
Dokumentrekonstruktion – Nur eingeschränkt möglich (Protokollierung des
Abbildungsprozesses) Anfragen
– Datenbankanfragen– XML-Anfragen möglich
Weitere Besonderheiten– Föderationen mit bestehenden Datenbanken möglich
Einsatz – für datenzentrierte XML-Anwendungen
Produkte – Algorithmen: Bourret, Suciu (STORED), Shanmugasundaram u.a.– Oracle XDK (XSU), Bluestone’s XML Suite
© Prof. T. Kudraß, HTWK Leipzig
Benutzerdefiniertes Mapping
- Flexible Methode- Integration von XML-Dokumenten in existierende Datenbanken- Ein Mapping muss von Benutzer spezifiziert werden
Hotel Hübner
Hotel_URLHotelpreise
Name Einzelzimmer
www.hotel-huebner.de
198Datenbank
<ClassMap>
<ToClassTable>
</ToClassTable><Table Name="Hotelpreise"/>
<ElementType Name="hotel"/><hotel url="www.hotel-huebner.de">
<hotelname>Hotel Hübner</hotelname> <adresse> <ort>Warnemünde</ort>
... </adresse> <preise> <einzelzimmer>198</einzelzimmer>
</preise>...
</hotel>
<strasse>Seestraße</strasse><PropertyMap>
<ToColumn>
</ToColumn></PropertyMap><PropertyMap>
<ToColumn>
</ToColumn></PropertyMap>...
<Attribute Name="url"/>
<Column Name="Hotel_URL"/>
<ElementType Name="hotelname"/>
<Column Name="Name"/>
</Classmap>
XML-Dokument Mapping Vorschrift
© Prof. T. Kudraß, HTWK Leipzig Speicherung mittels benutzerdefiniertem Mapping
Schemabeschreibung – Zur Speicherung erforderlich
Dokumentrekonstruktion – Meist nicht möglich (Voraussetzung: Protokollierung des
Abbildungsprozesses, vollständige Abb.) Anfragen
– Datenbankanfragen– XML-Anfragen in Ausnahmefällen möglich
Weitere Besonderheiten– Integration in bestehende Datenbanken möglich
Einsatz – für datenzentrierte XML-Anwendungen
Produkte – DB2 XML Extender, Oracle XDK, Oracle 9iR2
© Prof. T. Kudraß, HTWK Leipzig
Hybride Ansätze
Auswahl
unterschiedlicher
Speicherungsmethoden
für verschiedene
Dokumentanteile
Hotel
0381/5434-0
Ort Strasse Telefon
Strand Hotel Hübner Warnemünde Seestraße
komfortabel eingerichtetes 4-Sterne Hotel direkt an der Strandpromenade von Warnemünde mit Blick auf Leuchtturm, Hafeneinfahrt
Sie finden unser elegant und
und Ostsee.
<hotel>
<adresse><plz>18119</plz>
<nummer>12</nummer> <telefon>0381/5434-0</telefon>
</adresse> <hausbeschreibung> Sie finden unser elegant und
</hotel>
komfortabel eingerichtetes 4-Sterne Hotel direkt an der Strandpromenade von Warnemünde mit Blick auf Leuchtturm, Hafeneinfahrt und Ostsee. </hausbeschreibung>
<hotelname>Strand Hotel Hübner</hotelname>
<ort>Warnemünde</ort> <strasse>Seestraße</strasse>
© Prof. T. Kudraß, HTWK Leipzig
Beschränkungen der Ansätze (1) Speicherung als Ganzes
– Locking nur auf Dokumentebene möglich– Bearbeitung von Teildokumenten schwieriger– oft nur proprietäre Lösungen implementierbar– Einschränkungen bei Anfragen (z.B. wertbasierte Suche)
Speicherung der Dokumentstruktur (bei Abbildung der Graphstruktur in Relationen):
– Anfragesprache: nur SQL keine adäquaten Anfragekonstrukte Anfrageformulierung schwierig Änderungen auf SQL-Ebene können Struktur des Dokuments
zerstören– schlechte Performance
Shredding der Relationen ->komplexe Joins umfangreiche Sperren)
© Prof. T. Kudraß, HTWK Leipzig
Beschränkungen der Ansätze (2) strukturierte Speicherung in Datenbanken
– Dokumente mit a priori bekanntem Schema, d.h. geringe Flexibilität bei Schemaänderung
– unterschiedliche Schemamächtigkeit Rekursion? Mixed Content?
– Keine vollständige Abbildung von Dokumenten Reihenfolgeerhaltung Prolog, Kommentare, Processing Instructions
– strukturorientierte Anfragen schwierig
© Prof. T. Kudraß, HTWK Leipzig
Abschließende Frage
verschiedene Ansätze unter
einem Dach (in relationaler
Datenbank), z.B. Oracle
oder
Umstieg auf native
XML-Datenbanksysteme ?