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 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, s, Webseiten) Semistrukturierte Dokumente (datenzentrierte und dokumentenzentrierte Anteile Beispiele: Veröffentlichungen, Amazon) Meyer XML builds on the principles of two existing languages, HTML and SGML to create a simple mechanism.. The generalized markup concept.. Neil Bradley XML companion XML builds on the principles of two existing languages, HTML and..
© Prof. T. Kudraß, HTWK Leipzig Warum XML in Datenbanken XML als SGML-Nachfolger – entstehende Dokumente müssen gespeichert werden XML 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: < 5 – element < 7.1 – 6.1 element = Hugo – Hugo
© 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 bzw. der Wert des Attributs ISBN von Buch bzw. Dokumente, in denen ein Element Buch ein Attribut ISBN hat /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 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-QL W3C: Datenquelle als URI Aufbau: WHERE Suchmuster IN Quelle CONSTRUCT Ausgabemuster Beispiel-Anfrage in XML-QL (WHERE-Klausel): WHERE $1 IN CONSTRUCT $1 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) 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: AND Author] Wildcard – 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 Ebene Dokument- verarbeitung Dokumenten Entwurf von XML- Konzeptueller logische Ebene konzeptuelle XML Datenbanken Klettke / Meyer XML-Datenbanken
© Prof. T. Kudraß, HTWK Leipzig Logische Ebene logische Ebene datenzentriert semistrukturiert dok-zentriert Datenmodell Anfragen/Updates an Inhalt XML, RDBM, OODBM XQuery, SQL, OQL Daten- und Dokumentmodell Struktur und Inhalt Anfragen/Updates an XML, OEM XQuery, Lorel Dokumentmodell Anfragen/Updates an Struktur und Inhalt XML,SGML XQuery, 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 Ebene physische
© 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 datenzentriert semistrukturiert dok-zentriert relationale, objekt-relationale oder objekt-orientierte Datenbanken generische Speicherung von Graphen oder DOM-Informationen Dateien Volltextindex, Strukturindex Struktur auf Werteebene Struktur auf Schema- und Werteebene Struktur auf Schemaebene Ebene physische
© Prof. T. Kudraß, HTWK Leipzig Volltextindex und XML-Index Volltextindex Als Dateien / Clobs Speicherung der Dokumentstruktur Strukturierte Speicherung in Datenbanken Vollständiges Mapping Benutzer- definiertes Mapping Abbilden des DOM-Modells Abbildung der Graphstruktur 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
© Prof. T. Kudraß, HTWK Leipzig Volltext-Index - bekannte Methode (älter als relationale Datenbanken) - Boolesches Retrieval (AND, OR, NOT) Verweis Warnemünde Warnemünde 12 Hotel Hübner Aus Richtung Rostock kommend... Begriff anreisebeschreibung ort Rostock hotel Seestraße
© 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 Seestraße... Vorgänger Warnemünde Element Hotel Hübner Volltext-Index XML-Index Element ort Aus Richtung Rostock kommend fahren Sie auf der hotel adresse Stadtautobahn bis nach Warnemünde strasse Term Warnemünde Rostock anreise- beschreibung
© Prof. T. Kudraß, HTWK Leipzig Eigenschaften 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 Müller ort plz ValueTypeDescendant-of string strasse Warnemünde Seestrasse hotel string Element adresse int18119 AttributeValueType 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 NodeNodeListNamedNodeMap 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() NodeIDNodeTypeDocIDParentNode NodeIDElementIDAttributNameAttributValue PreviousSiblingNextSiblingFirstChild NodeIDTagName
© 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 Leipzig Abbildung der XML- Struktur auf relationale Datenbanken - DTD ist erforderlich - Anfragen verwenden SQL - Funktionalität - Datentypen Hotel Hübner Warnemünde Seestraße XML-Dokument HotelIDHotelnameAdressePreise H0001Hotel HübnerA0001P0001 AdresseIDOrtStrasse... A0001WarnemündeSeestraße PreiseIDEinzelzimmer... P Hotel: Preise: Adresse:
© Prof. T. Kudraß, HTWK Leipzig Abbildung der XML- Struktur auf objekt-orientierte Datenbanken - DTD ist erforderlich - Anfragen verwenden SQL - Funktionalität - Datentypen - Datenbanken mit vielen Nullwerten HotelIDHotelnameAdressePreise OrtStrasse...einzelzimmer... H0001Hotel HübnerWarnemündeSeestraße198 Hotel: XML-Dokument Hotel Hübner Warnemünde Seestraße
© 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), Bluestones 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_URL Hotelpreise NameEinzelzimmer Datenbank Hotel Hübner Warnemünde Seestraße... XML-DokumentMapping 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/ 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 / Sie finden unser elegant und komfortabel eingerichtetes 4-Sterne Hotel direkt an der Strandpromenade von Warnemünde mit Blick auf Leuchtturm, Hafeneinfahrt und Ostsee. Strand Hotel Hübner Warnemünde Seestraße
© 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 ?