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