XML und Datenbanken Speicherungsmethoden Meike Klettke [email protected] www.xml-und-datenbanken.de 1 Inhalt Anforderungen an die Speicherung Motivation der Existenz verschiedener Varianten Vorstellung verschiedener Speicherungsverfahren – Speicherung und Indizierung – Speicherung der Graphstruktur – strukturierte Speicherung in Datenbanken Hybride Verfahren Weiterführende Literatur Meike Klettke 2 Anforderungen an die Speicherung von XML-Dokumenten Nach (Fiebig, Kanne, Moerkotte) Effektive Speicherung Effizienter Zugriff auf XML-Dokumente oder Teile davon – Transaktionsverwaltung – Unterstützung von XPath und XQuery – Unterstützung von SAX und DOM für Anwendungen Wiederherstellbarkeit der Dokumente (oder der Informationen aus den Dokumenten) Meike Klettke 3 Unterteilung von XMLDokumenten 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 dokumentzentrierte Anteile Beispiele: Veröffentlichungen, Amazon Meike Klettke <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> 4 Speicherungsmethoden Vorstellung von verschiedenen Methoden – Grundprinzip der Speicherung – Eigenschaften – Anfragemöglichkeiten Dabei Klassifikation bekannter Methoden Meike Klettke 5 Speicherung von XML-Dokumenten Speicherung als Ganzes Volltextindex Speicherung der Dokumentstruktur strukturierte Speicherung in Datenbanken Volltext- und XML-Index Information Retrieval Suchmaschinen Text Extender - Oracle Text - DB2 Text Extender - Informix Text Data Blades Meike Klettke 6 Exkurs: Information Retrieval Volltextindizierung = grundlegende Technologie im Information Retrieval Eingesetzt bei der Verarbeitung von – Textdokumenten – Universitätskatalogen oder in – Suchmaschinen – überall hinter solchen Feldern: Meike Klettke 7 Gewünschte Suchfunktionalität „wo findet man Informationen über objektrelationale Datenbanken?“ „wo ist der Begriff Information Retrieval definiert?“ „wo ist der Zusammenhang zwischen Datenbanken und Information Retrieval erläutert?“ „was sind Biomembranen?“ die Verarbeitung solcher Informationen: Inhalt des Gebietes Information Retrieval (nach Norbert Fuhr: = inhaltsbasierte Suche in Texten) beachten muss man Effizienz, in der Regel liegen große Textmengen zugrunde Anwendung in Suchmaschinen, spezielle Anforderungen dabei Meike Klettke 8 Typische Suchfunktionalität: google Meike Klettke 9 Suchfunktionalität: Bibliothek Meike Klettke 10 man sucht also ein Dokument.. zum Beispiel html, pdf, ps, in dem die in der Suche angegebenen Begriffe auftauchen Computer „versteht“ die Texte nicht, man kann also nur danach suchen, welche Wörter in den Texten vorkommen, wie oft, in welchem Zusammenhang ... Meike Klettke HTML-Dokument: <a href=„“> ... Information Retrieval ... Datenbanken ... Information ... Web ... Datenbank 11 Überblick über die Dokumentverarbeitung /1 „Such doch mal im Internet danach ...“ Notwendigkeit eines Indexes: damit Anfragen effizient ausgeführt werden können Inhaltsbasierte Suche in Volltexten Deskribierung Recherche Ergebnispräsentation Meike Klettke 12 2. Überblick über die Dokumentenverarbeitung Recherche Suche von Textdokumenten nach Vorgabe von Dokumentdeskriptoren Index Bewertung Deskribierung Ordnung der gefundenen Dokumente nach ihrer Güte Ranking, Relevance Feedback manuelle und automatische Verfahren zur Anreicherung des strukturierten Textes mit Deskriptoren Meike Klettke 13 Indexbildung /1 Suchmaschinen für das WWW realisieren eine Indexbildung über Webseiten Übrigens: Information-Retrieval-Systeme und Datenbanksysteme führen ebenfalls eine Indexbildung nach der Speicherung von Dokumenten durch Bei Indexbildung muss bereits feststehen, welche Arten von Informationen angefragt werden und wie die Anfragen aussehen Anfragen sind zeitkritisch, Indexbildung nicht ! Meike Klettke 14 Deskribierung Recherche Suche von Textdokumenten nach Vorgabe von Dokumentdeskriptoren Index Bewertung Deskribierung Ordnung der gefundenen Dokumente nach ihrer Güte Ranking, Relevance Feedback manuelle und automatische Verfahren zur Anreicherung des strukturierten Textes mit Deskriptoren Meike Klettke 15 Indexbildung /2 aus den Dokumenten werden die relevanten Stichworte extrahiert, diese fließen in den Index ein <a href=„“> ... Information Retrieval ... Datenbanken ... Information ... Web ... Datenbank Meike Klettke Datenbank Datenbanken Information, 2* Retrieval Web 16 Implementierung als invertierte Liste Dokumente d1..dn Term i d3 (15) Term j d2(45) Term k d2(335) d2(25,30) d4(50) d1(300) d1(435) • verschiedene Optimierungen dieser Indexstrukturen • Anfragen sind zeitkritisch, die Indexbildung nicht, Ziel sind also effiziente Zugriffe Meike Klettke 17 Übersicht über Verfahren zur Deskribierung statistische, wortbasierte Verfahren – Häufigkeit von Wörtern auswerten linguistische Verfahren – Stammwortreduktion – Erkennen von SatzzusammenDeskribierung hängen wissensbasierte Verfahren – Klassifikationen, Thesauren, Ontologien Meike Klettke Index 18 Häufigkeit der Terme auswerten / 1 Stoppwortliste eliminiert sehr häufige Worte – (diese würden sehr viele Einträge im Index bewirken, sind aber für die Recherche ungeeignet) – Beispiele – 10 häufigste Begriffe im Deutschen: • der, die, und, in, den, von, zu, das, mit, sich sehr seltene Begriffe werden gestrichen – (haben zwar die höchste Selektivität, würden die Anzahl der Begriffe im Index stark erhöhen und sind für die Recherche zu speziell) – Beispiele (aus Heuer, Saake, 2000): • BadHilfskraft • Datenbankimplmentierung Meike Klettke 19 Häufigkeit der Terme auswerten / 2 Zipf´sches Gesetz Häufigkeit (nach George Kingsley Zipf, 1902-1950) die Verteilung der Worte in einem Dokument richtet sich nach der Übersicht Diskriminationskraft der Terme zu seltene Terme Rang* * Sortierung der Terme nach abfallender Häufigkeit Salton, McGill, 1983 zur Suche eignen sich Begriffe mit mittlerer Häufigkeit am besten abnehmende Worthäufigkeit Stoppwortliste Meike Klettke Eliminierung seltener Begriffe 20 Bildung eines linguistischen Indexes / 1 Motivation: Suche nach dem Begriff soll auch Deklinationen bzw. Konjugationen einbeziehen Beispiele: – bei Eingabe des Suchbegriffes „Datenbank“ sollen auch Dokumente mit dem Begriff „Datenbanken“ gefunden werden – bei der Suche nach „fehlschlagen“ soll auch „fehlschlug“ und „fehlgeschlagen“ gefunden werden Verfahren: statt der exakten Begriffe wird die Grundform der Terme im Dokument gespeichert Verfahren verkleinert die invertierten Listen und führt sprachlich zusammengehörige Terme zu einem Eintrag zusammen Meike Klettke 21 Vorgehensweise bei der Bildung eines linguistischen Indexes / 2 – Wortnormalisierung (Groß- und Kleinschreibung, Umlaute) – Wortdekomposition (nur für deutsche Sprache) • Komposita (zusammengesetzte Begriffe) werden auseinandergenommen, • Beispiele: – West-mole, Ost-mole – Einzel-zimmer, Doppel-zimmer, Zweibett-zimmer, Vierbett-zimmer – Stammformreduktion, Verfahren zur Bestimmung der Grundformen durch: • Regeln (für die englische Sprache sind zahlreiche Verfahren bekannt) oder • Wörterbücher (besonders für die deutsche Sprache aufgrund vieler Unregelmäßigkeiten erforderlich) Meike Klettke 22 Recherche Recherche Index Suche von Textdokumenten nach Vorgabe von Dokumentdeskriptoren Bewertung Deskribierung Ordnung der gefundenen Dokumente nach ihrer Güte Ranking, Relevance Feedback manuelle und automatische Verfahren zur Anreicherung des strukturierten Textes mit Deskriptoren Meike Klettke 23 Verfahren zur Recherche Häufigste Retrievalmodelle - Boolesches Retrieval - Vektorraummodell - probabilistisches Modell Recherche Index Deskribierung und Recherche müssen mit den gleichen Methoden erfolgen (Stammwortreduktion, Stoppwortliste) Meike Klettke 24 Boolesches Retrieval / 1 Grundbaustein: Attribut - Attributwert - Paar verknüpft durch: and, or, not Nachteile: relativ geringe Möglichkeiten, Anfragen zu formulieren oft können Benutzer die Verarbeitung der Anfrage nicht einschätzen z.B. wurden bei Suchmaschinen Statistiken erhoben, dass die Anfragen durchschnittlich 1.7 Wörter enthalten Meike Klettke 25 Boolesches Retrieval / 2 Meike Klettke 26 Boolesches Retrieval auf invertierten Listen Dokumente d1..dn Term i d3 (15) d2(25,30) Term j d2(45) d1(300) Term k d2(335) d1(435) d4(50) • Beispielanfragen: •k • i or j • i and k • i and k and not j Meike Klettke 27 Vektorraummodell Dokumente und Anfragen werden als Vektoren betrachtet mit einem Ähnlichkeitsmaß (Abstandsfunktion) werden zu einer Anfrage die Ergebnisdokumente ermittelt es gibt zahlreiche Ähnlichkeitsmaße Ergebnis der Ähnlichkeitsfunktion kann für das Ranking verwendet werden Meike Klettke 28 Probabilistisches Modell Terme der Anfrage können gewichtet werden, damit hat der Benutzer die Möglichkeit, wichtigere und unwichtigere Teile einer Anfrage zu spezifizieren Terme des Dokumentes werden ebenfalls gewichtet – manuelle Verfahren: für Indizierende stellt die Angabe solcher Wahrscheinlichkeiten eine schwierige Aufgabe dar – automatische Verfahren: verwenden Termhäufigkeiten, Dokumentgröße, Position des Terms im Dokument, .. Ähnlichkeitsfunktion liefert ebenfalls ein Ranking Meike Klettke 29 Arten von Anfragen Boolesche Anfragen Stammformsuche Phrasensuche Proximity-Suche – maximaler Wortabstand, im gleichen Satz mit, Wortreihenfolge Phonetische Suche – Suche nach ähnlich klingenden Wörtern fehlertolerante Suche – Zulassen von x Fehlern Berücksichtigung der Dokumentstruktur Wichtungsfaktoren Meike Klettke 30 Bewertung Recherche Suche von Textdokumenten nach Vorgabe von Dokumentdeskriptoren Bewertung Deskribierung manuelle und automatische Verfahren zur Anreicherung des strukturierten Textes mit Deskriptoren Meike Klettke Index Ordnung der gefundenen Dokumente nach ihrer Güte Ranking, Relevance Feedback 31 Verfahren zur Bewertung Recherche Index Bewertung Ranking Bestimmung, in welcher Reihenfolge die ermittelten Ergebnisse präsentiert werden Relevance Feedback Dialog mit dem Benutzer, bei dem eine neue Ergebnisermittlung aufgrund von relevanter und nicht relevanter Dokumenten ermittelt wird Meike Klettke 32 Ranking Aufgabe: Reihenfolge für die Ausgabe der relevanten Dokumente wird gesucht Grundlegende Maße – Häufigkeit des Suchterms im Dokument – Anzahl der verschiedenen Suchterme eines Dokumentes – Anzahl der Dokumente, in denen der Suchterm auftritt – Dokumentgröße – ... – Aus Kombinationen dieser Maße ergeben sich Rankingfunktionen Boolesches Retrieval erlaubt kein Ranking (Ergebnis 0 oder 1), dieses wird oft nachträglich als 2. Schritt über der Menge der relevanten Dokumente ermittelt. Meike Klettke 33 Ende des Exkurses Vorgestellt wurden: Techniken zur Textverarbeitung Jetzt folgt: Anwendung für XML-Dokumente Meike Klettke 34 Grundprinzip der invertierten Liste Dokumente Stichworte 1 A D F 2 B C D 3 A C D Stichworte Dokumente E Bestimmung der Stichworte der Dokumente Meike Klettke A B C D E F 1 2 2 1 3 1 3 3 2 3 Invertierte Speicherung: Speicherung der Stichworte und der zugehörigen Dokumente 35 Volltext-Index Begriff hotel Warnemünde Rostock ort anreisebeschreibung Verweis <hotel> <hotelname>Hotel Hübner</hotelname> <adresse> <plz>18119</plz> <ort>Warnemünde</ort> <strasse>Seestraße</strasse> <nummer>12</nummer> </adresse> <anreisebeschreibung> Aus Richtung Rostock kommend ... </anreisebeschreibung> </hotel> - bekannte Methode (älter als relationale Datenbanken) - Verfahren aus dem Bereich der Dokumentverarbeitung Meike Klettke 36 Weiteres Beispiel Term Element nachricht autor nachname Fürst vorname Christian inhalt ueberschrift Vermarktungsfest text Wolfgang … Meike Klettke <nachricht id="ID0001" bedeutung="4"> <autor autor_id="A0001"> <nachname>Fürst</nachname> <vorname>Christian</vorname> <agentur>dpa</agentur> <e-mail>[email protected]</e-mail> </autor> <einordnung> <rubrik>Mozartjahr 2006</rubrik> … <inhalt> <ueberschrift>Ein Vermarktungsfest </ueberschrift> <text>Als Wolfgang Amadeus Mozart im Alter von 35 Jahren starb, .. </text> </inhalt> </nachricht> 37 Volltext-Index Nicht nur Suche nach exaktem Auftreten der Begriffe möglich, Verwendung von Statistischen wortbasierten Verfahren – (Stoppwortlisten, Streichen von selten vorkommenden Begriffen) Linguistischen Verfahren – Wortnormalisierung – (Groß-, Kleinschreibung, Getrennt- und Zusammenschreibung, Umlaute), – Wortdekomposition durch Regeln (engl.) oder Wörterbücher (dt.) – Stammwortreduktion Wissensbasierten Verfahren – (Einsatz von Ontologien und Thesauren zur Suche nach Synonymen sowie Über- und Unterbegriffen) Meike Klettke 38 Anfragen /1 boolesches Retrieval Kombination von Anfrageteilen mit AND, OR oder NOT Beispiele: – Hotel AND Warnemünde – (Hotel OR Pension) AND (Warnemünde OR Rostock) linguistische Anfragen – Stammwortsuche, phonetische Suche, Ähnlichkeitssuche usw. Meike Klettke 39 Anfragen /2 Position der Stichworte im Index erlaubt weitere Anfragen Beispiele: – Suchbegriff 'Datenbanken' tritt vor 'XML' im Dokument auf – der Begriff 'Information' folgt unmittelbar auf 'Retrieval‚ – 'XML' und 'Datenbanken' treten mit einem Abstand von höchstens 5 Wörtern auf Ergebnis der Anfragen ist in der Regel das vollständige Dokument Die Anfragen sind also Suchfunktionen Nicht realisierbar ist jedoch: • //hotel[adresse/ort/text()=“Warnemuende“] • Nur: hotel and adresse and ort and Warnemuende Meike Klettke 40 Eigenschaften des Volltext-Indexes Schemabeschreibung Nicht erforderlich Dokumentrekonstruktion XML-Dokumente bleiben im Original erhalten Anfragen Anfragen des Information Retrieval Updates Austausch der XMLDokumente erforderlich Weitere Besonderheiten Volltextfunktionen (SQL-MM) keine Auswertung des XMLMarkups Anwendung dokumentzentrierte XMLAnwendungen Meike Klettke 41 Systeme /1 Suchmaschinen fast alle herkömmlichen Suchmaschinen verwenden invertierte Listen zur Indexbildung IBM DB2 Text Extender Text Extender, ermöglicht die Speicherung von Volltextdokumenten innerhalb eines Datenbanksystems vier verschiedene Arten von Indizes können gebildet werden, Mögliche Suchanfragen: – – – – – Stammwortreduktion, exakte Suche, phonetische Suche, Ähnlichkeitssuche … Meike Klettke 42 Systeme /2 Oracle Text Verarbeitung von Volltext-Datentypen Information-Retrieval-Anfragen in Form von speziellen SQL-Anweisungen Mögliche Anfragen – Stammwortreduktion – Verwendung von Wildcards – Ähnlichkeits- und Phrasensuche Ranking der Ergebnisse erfolgt Relevance Feedback durch den Anwender ist möglich Meike Klettke 43 Speicherung von XML-Dokumenten Speicherung als Ganzes Volltextindex Speicherung der Dokumentstruktur strukturierte Speicherung in Datenbanken Volltext- und XML-Index DB2 Text Extender Oracle Text Informix Verity Text Search Data Blade XML-Suchmaschinen Meike Klettke 44 Volltext- und XML-Index - XML - Struktur kann in Anfragen ausgewertet werden Meike Klettke 45 Weiteres Beispiel Term Verweis Element Fürst Christian Mozartjahr Vermarktungsfest Wolfgang … Element Verweis Ordnung nachricht 1 autor 1 nachname 1 vorname 2 … inhalt 3 ueberschrift 1 text 2 Meike Klettke Vorgänger <nachricht id="ID0001" bedeutung="4"> <autor autor_id="A0001"> <nachname>Fürst</nachname> <vorname>Christian</vorname> <agentur>dpa</agentur> <e-mail>[email protected]</e-mail> </autor> <einordnung> <rubrik>Mozartjahr 2006</rubrik> … <inhalt> <ueberschrift>Ein Vermarktungsfest </ueberschrift> <text>Als Wolfgang Amadeus Mozart im Alter von 35 Jahren starb, .. </text> </inhalt> </nachricht> 46 Volltext- und XML-Index Strukturinformationen müssen aus dem Index erkennbar und wiederherstellbar sein, Zuordnung: Inhalten zum Markup sowie Hierarchische Schachtelung und Anordnung des Markup Meike Klettke 47 Anfragen /1 boolesches Retrieval – Hotel AND Warnemünde linguistische Anfragen – Stammwortsuche, phonetische Suche, Ähnlichkeitssuche usw. Position der Stichworte im Index erlaubt weitere Anfragen – Suchbegriff 'Datenbanken' tritt vor 'XML' im Dokument auf – der Begriff 'Information' folgt unmittelbar auf 'Retrieval‚ Durch das Anlegen eines Strukturindexes lässt sich das Markup auswerten: • • /unterkuenfte/hotel[adresse/ort/text()=“Warnemuende“ or adresse/ort/text()=“Rostock”] /unterkuenfte/hotel[contains(name/text(),”Strand”] Meike Klettke 48 Anfragen /2 Einsatz von XPath und XQuery ist dadurch möglich Anfragen, die das gesamte Dokument als Ergebnis liefern, lassen sich einfach realisieren, Anderenfalls muss das Dokument geparst werden und das Ergebnis daraus generiert werden. Meike Klettke 49 Eigenschaften des Volltext- und XML-Indexes Schemabeschreibung Nicht erforderlich Dokumentrekonstruktion XML-Dokumente bleiben im Original erhalten Anfragen Anfragen des Information Retrieval Auswertung des Markups in den Anfragen XML-Anfragen möglich Updates Austausch der XML-Dokumente erforderlich Weitere Besonderheiten Volltextfunktionen (SQL-MM) Anwendung dokumentzentrierte und semistrukturierte XML-Anwendungen Meike Klettke 50 Systeme DB2 Text Extender Speicherung von Volltextdokumenten innerhalb eines Datenbanksystems Auswertung von Markup ist möglich Dadurch Kombination von Volltextanfragen mit Auswertung von XML-Markup möglich Oracle Text XML-Unterstützung durch Auswertung von XML-Strukturen bewirkt, dass Volltextanfragen und Anfragen zur Struktur der Dokumente kombiniert werden können. Meike Klettke 51 Speicherung von XML-Dokumenten Speicherung als Ganzes Speicherung der Dokumentstruktur (einfache) Abbildung der Graphstruktur strukturierte Speicherung in Datenbanken Speicherung der Informationen des DOM Neil Bradley Florescu/Kossmann Shimura/Yoshikawa/Uemura Meike Klettke 52 Speicherung der Graphstruktur / 1 Elements: Element Type Value Order hotel 1 adresse 2 plz int 18119 1 ort string Warnemünde 2 strasse string Seestrasse 3 Vorgänger Attributes: Element Attribute Type Value url string www... autor string Müller • generische Speicherung der Struktur des XML-Dokumentes • werden mehrere XML-Dokumente in der Relation gespeichert, muss noch eine ID des XML-Dokumentes in der Relation ergänzt werden Meike Klettke 53 Weiteres Beispiel <nachricht id="ID0001" bedeutung="4"> <autor autor_id="A0001"> <nachname>Fürst</nachname> <vorname>Christian</vorname> <agentur>dpa</agentur> <e-mail>[email protected]</e-mail> </autor> <einordnung> <rubrik>Mozartjahr 2006</rubrik> … <inhalt> <ueberschrift>Ein Vermarktungsfest </ueberschrift> <text>Als Wolfgang Amadeus Mozart im Alter von 35 Jahren starb, .. </text> </inhalt> </nachricht> Meike Klettke ID Element n001 Wert Ordnung Vorgänger nachricht 1 - n002 autor 1 n001 n003 nachname Fürst 1 n002 n004 vorname Christian 2 n002 n005 agentur dpa 3 n002 n006 e-mail [email protected] e 4 n002 Element Attribut Typ Wert n001 id xs:ID ID0001 n001 bedeutung xs:int 4 n002 autor_id xs:ID A0001 54 Speicherung der Graphstruktur /2 Verwendung von Relationen zur Speicherung von Elementen und Attributen Elemente: DocID Elementname Typ Wert Ordnung Verweis auf Vorgänger Attribute: Attributname Typ Wert Verweis auf Element Damit ist die Zuordnung von Inhalten zur Struktur, sowie die vollständige Wiederherstellung der Struktur möglich Meike Klettke 55 Speicherung der Graphstruktur /3 DTD nicht erforderlich für einfache Anfragen verwendbar Durch Erweiterungen können Datentypen adäquat gespeichert und ausgewertet werden komplexere Anfragen über zwei oder mehr Elemente/ Attribute sind nicht effizient Meike Klettke 56 Anfragen Angepasstes SQL, durch Datenbankschema bestimmt: Elements: Beispiel: DocID Element d0001 hotel (Hotels in Warnemünde) d0001 select a.wert d0001 from Elemente a, Elemente b d0001 d0001 where (a.element= 'hotelname') and (b.element='ort') and (b.wert='Warnemünde') and (a.DocID=b.DocID) Meike Klettke Type Wert plz int 18119 ort string Warnemünde strasse string Seestrasse Descendant-of adresse 57 Anfragen XML-Anfragen sind möglich, XMLAnfragen SQL werden intern auf SQL-Anfragen (unter Berücksichtigung der Speicherstruktur) umgesetzt, Ergebnis der XML-Anfrage wird aus Ergebnis der Datenbankanfrage generiert Meike Klettke 58 Eigenschaften der Speicherung der Graphstruktur Schemabeschreibung Nicht erforderlich Dokumentrekonstruktion Möglich, aber sehr aufwändig Anfragen Updates effizient realisierbar Weitere Besonderheiten Anfragen über vielen Elementen und Attributen sind aufwändig Anwendung Daten-, dokumentzentrierte und semistrukturierte XML-Anwendungen Meike Klettke XML-Anfragen möglich angepasste Datenbankanfragen 59 Systeme Keine kommerziellen Systeme bekannt Verwendung in universitären Prototypen – Einsatz dort, weil einfache Realisierung, die eine schnelle Abspeicherung von XML-Dokumenten ermöglicht – Festes (und kleines) Datenbankschema Bei uns umgesetzt: – Diplomarbeit von Guido Rost • Speicherung und Realisierung von XQuery – Diplomarbeit von Björn Below • Realisierung von Updates auf dieser Struktur Meike Klettke 60 Speicherung von XML-Dokumenten Speicherung als Ganzes Speicherung der Dokumentstruktur (einfache) Abbildung der Graphstruktur strukturierte Speicherung in Datenbanken Speicherung der Informationen des DOM Richard Edwards infonyte eXcelon XIS (POET) Meike Klettke 61 Speicherung basierend auf DOM /1 DOMImplementation Informationen des Document Object Models bilden das Schema der Datenbank Node NodeList NamedNodeMap Attr CharacterData Comment Text CDataSection Verwendung relationaler oder objekt-orientierter Datenbanken oder Entwicklung eigener Speicherungsstrukturen Document DocumentFragment DocumentType Element Entity EntityReference Notation ProcessingInstruction Meike Klettke 62 Speicherung basierend auf DOM /2 Methoden der Klasse Node: - getChildren() - getFirstChild() - getNextSibling() - getNodeType() - getParentNode() - getPreviousSibling() - hasChildren() NodeID NodeType PreviousSibling Methoden der Klasse Element: - getAttributes() - getElementsByTagName(String) - getTagName() Methoden der Klasse Attribut: - getName() - getValue() Meike Klettke NodeID DocID ParentNode NextSibling FirstChild NodeID ElementID TagName AttributName AttributValue 63 Anfragen XMLAnfragen DOM-Methoden XML-Anfragen Meike Klettke SQL Angepasste Datenbankanfragen (unter Kenntnis der Speicherungsstruktur) 64 Eigenschaften der auf DOM basierenden Speicherung Schemabeschreibung Nicht erforderlich Dokumentrekonstruktion Möglich, aber sehr aufwändig Anfragen Updates effizient realisierbar Weitere Besonderheiten Anwendung Daten-, dokumentzentrierte und semistrukturierte XML-Anwendungen Meike Klettke XML-Anfragen möglich angepasste Datenbankanfragen Anfragen über vielen Elementen und Attributen sind aufwändig standardisierte und allgemein akzeptierte Schnittstelle 65 Systeme /1 Infonyte-DB verwendet zur Speicherung von XML-Dokumenten ein persistentes Document Object Model (PDOM) baut aber nicht auf existierende Datenbanken auf, sondern entwickelt Komponenten zur physischen Speicherung, die an die XML-Dokumente optimal angepasst sind Anfragesprache: Richtung XQuery Tamino modellbasierte Speicherung von XML-Dokumenten XML-Anfragen auf den gespeicherten Dokumenten sind durch die Verwendung von XPath realisierbar Entwicklung geht Richtung XQuery Meike Klettke 66 Systeme /2 Sonic XML Server (früher unter den Namen eXcelon) verwendet zur Speicherung von XML-Dokumenten das Document Object Model Alle Informationen, die in dieser API enthalten sind, werden in einer objektorientierten Datenbank objectstore adäquat gespeichert. Anfragen: OQL Berkeley DB XML Generische Speicherung Indexverfahren Anfragen: XPath, XQuery Metadaten können zugeordnet werden Meike Klettke 67 Systeme /3 mittlerweile unterstützen sowohl Oracle als auch DB2 eine native XML-Speicherung – Datentyp: XML, – Anfragen: XPath, XQuery, – Volltext- und Strukturindex, ... Meike Klettke 68 Speicherung von XML-Dokumenten Speicherung als Ganzes Speicherung der Dokumentstruktur strukturierte Speicherung in Datenbanken Vollständiges (+automatisches) Mapping Benutzerdefiniertes Mapping Shanmugasundaram et al. (Ronald Bourret) (Deutsch/Fernandez/ Suciu : Stored) Klettke/Meyer POET Meike Klettke 69 Abbildung der XML-Struktur auf Struktur relationaler Datenbanken XML-Dokument <hotel HotelID="H0001"> <hotelname>Hotel Hübner </hotelname> <adresse> <ort>Warnemünde</ort> <strasse>Seestraße</strasse> ... </adresse> <preise> <einzelzimmer>98 </einzelzimmer> ... </preise> </hotel> Hotel: Adresse: Preise: HotelID Hotelname Adresse Preise H0001 Hotel Hübner A0001 P0001 AdresseID Ort Strasse A0001 Warnemünde Seestraße PreiseID Einzelzimmer P0001 98 ... ... - DTD oder XML-Schema ist erforderlich - typgerechte Speicherung Meike Klettke 70 Weiteres Beispiel nachricht: <nachricht id="ID0001" bedeutung="4"> <autor autor_id="A0001"> <nachname>Fürst</nachname> <vorname>Christian</vorname> <agentur>dpa</agentur> <e-mail>[email protected]</e-mail> </autor> <einordnung> <rubrik>Mozartjahr 2006</rubrik> … <inhalt> <ueberschrift>Ein Vermarktungsfest </ueberschrift> <text>Als Wolfgang Amadeus Mozart im Alter von 35 Jahren starb, .. </text> </inhalt> </nachricht> Meike Klettke id bedeutung autor inhalt ID0001 4 A0001 P0001 autor: ID autor_id nachname Vorname agentur e x00001 A0001 Fürst Christian dpa f inhalt: ID ueberschrift text y00001 Ein Vermarktungsfest Als Wolfgang Amadeus Mozart im Alter von 35 Jahren starb, .. 71 Abbildung der XML-Struktur auf objektorientierte Datenbanken XML-Dokument Hotel: HotelID H0001 <hotel url="www.hotel-huebner.de"> <hotelname>Hotel Hübner</hotelname> <adresse> <ort>Warnemünde</ort> <strasse>Seestraße</strasse> ... </adresse> <preise> <einzelzimmer>98</einzelzimmer> ... </preise> </hotel> Hotelname Hotel Hübner Adresse Ort Strasse Warnemünde Seestraße Preise ... einzelzimmer ... 98 - DTD oder XML-Schema ist erforderlich - typgerechte Speicherung - Datenbanken mit vielen Nullwerten Meike Klettke 72 Weiteres Beispiel <nachricht id="ID0001" bedeutung="4"> <autor autor_id="A0001"> <nachname>Fürst</nachname> <vorname>Christian</vorname> <agentur>dpa</agentur> <e-mail>[email protected]</e-mail> </autor> <einordnung> <rubrik>Mozartjahr 2006</rubrik> … <inhalt> <ueberschrift>Ein Vermarktungsfest </ueberschrift> <text>Als Wolfgang Amadeus Mozart im Alter von 35 Jahren starb, .. </text> </inhalt> </nachricht> id ID0001 Meike Klettke • adäquatere Darstellung von hierarchischen Informationen • gut abbildbar: Sequenzen von Elementen, Attribute • schlecht abbildbar: mixed content bedeutung 4 autor ... autor_id nachname vorname agentur e-mail A0001 Fürst Christian dpa fuerst@dp a.de 73 Erzeugen des Datenbankschemas für eine DTD (straight-forward) /1 Elemente: XML-Element Sequenz von Elementen Alternative von Elementen Element mit Quantifizierer ? Elemente mit Quantifizierer +,* Geschachtelte Elemente Meike Klettke Attribut einer Relation Attribute einer Relation Attribute einer Relation Attribut mit Nullwerten Menge oder Liste von Attributen (SET OF, LIST OF) TUPLE OF 74 Erzeugen des Datenbankschemas für eine DTD (straight-forward) /2 Attribute: XML-Attribut IMPLIED REQUIRED Defaultwert Meike Klettke Attribut einer Relation Nullwert erlaubt Nullwert nicht erlaubt Defaultwert 75 Beispiel für die straight-forward Abbildung / 1 <!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 e-mail (#PCDATA)> book: isbn front title author first Meike Klettke second body edition references publisher e-mail 76 Beispiel für die straight-forward Abbildung / 2 XML document: 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 e-mail (#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, edition VARCHAR(20), publisher VARCHAR(40) NOT NULL), body ... references ... ); Meike Klettke 77 Problemfälle bei der Abbildung: Alternativen /1 Beispiel: <!ELEMENT unterkunft (hotel | pension | campingplatz)*> drei Speicherungsvarianten sind möglich 1. alle Alternativen in einer Relation Hotel Kategorie Hotel- ... Pensionsname name Meike Klettke Pension Zimmer Aus-- Preise stattung Campingplatz Klassifikation .. .. 78 Problemfälle bei der Abbildung: Alternativen /2 Beispiel: <!ELEMENT unterkunft (hotel | pension | campingplatz)*> 2. Aufspaltung in separate Relationen Hotel Kategorie Hotel- ... name Pension Pensionsname Campingplatz Klassifikation Meike Klettke Zimmer .. Aus-- Preise stattung .. 79 Problemfälle bei der Abbildung: Alternativen /3 Beispiel: <!ELEMENT unterkunft (hotel | pension | campingplatz)*> 3. Verwendung eines Attributes vom Typ XML unterkunft <pension> <pensionsname>Zum Kater</pensionsname> <zimmer>...</zimmer> ... </pension> <hotel> <kategorie>4 </kategorie> <hotelname>Strand Hotel Hübner </hotelname> </hotel> Meike Klettke 80 Problemfälle bei der Abbildung: Rekursionen Rekursionen (in DTDs) Vorgehensweise: – – – Markieren der Knoten Aufspaltung in separate Relationen Verwendung von Referenzen (primary/foreign key) Beispiel: <!ELEMENT publications (book | article | conference)*> <!ELEMENT book (front, body, references)> <!ELEMENT references (publications+)> publications: publications: book references public. book ... Meike Klettke ID book references 81 Problemfälle bei der Abbildung: 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 1 Sie können unser Haus auf verschiedenen Wegen erreichen: 2 Auto per Bahn: 1 km ab Bahnhof Warnemünde 3 4 Bahn per Auto: 19 km ab Autobahn A19 Rostock—Berlin Sie finden uns direkt an der Uferpromenade. Meike Klettke 82 Problemfälle bei der Abbildung: Mixed Content Abbildung in Relationen nur sehr schlecht geeignet geeignet ist in diesem Fall: XML-Datentyp ... ... 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> Meike Klettke 83 Problemfälle bei der Abbildung: Inhaltsmodell ANY <!ELEMENT zusatzinformationen ANY> Das heißt, im Element zusatzinformationen können beliebige Inhalte sowie alle in der DTD deklarierten Elemente auftreten <zusatzinformationen> Am 31.12. stehen in <ort>Warnemünde</ort> keine Parkplätze zur Verfügung. <bahn>Die S-Bahn verkehrt an diesem Tag nach einem Sonderfahrplan im 7,5-Minuten-Takt.</bahn> </zusatzinformationen> Abbildung auf ein Datenbankschema? Meike Klettke 84 Anfragen Datenbankanfragen (Struktur der Datenbanken muss bekannt sein) XML-Anfragen Prozess der Abbildung der XML-Dokumente auf Datenbanken muss protokolliert sein, damit Datenbankanfragen für XML-Anfragen generiert und Ergebnisse für die XML-Anfragen generiert werden können. Meike Klettke 85 Vor- und Nachteile Vorteile: bei der Speicherung strukturierter Daten Anfragen, Datentypen, Aggregatfunktionen, Sichten Integration in andere Datenbanken Nachteile: bei der Speicherung semi- und unstrukturierter Daten großes Schema, schwach gefüllte Datenbanken, viele Nullwerte Keine flexiblen Datentypen, Speicherung von Alternativen problematisch Fehlende Information Retrieval Anfragen, keine Volltextoperationen möglich Meike Klettke 86 Strukturierte Speicherung in Datenbanken Schemabeschreibung Zur Speicherung erforderlich Dokumentrekonstruktion Nur eingeschränkt möglich (Protokollierung des Abbildungsprozesses) Anfragen Updates Weitere Besonderheiten Anwendung Datenzentrierte XML-Anwendungen Meike Klettke Datenbankanfragen XML-Anfragen möglich Als Datenbankupdates realisierbar Updates, die Strukturen verändern bewirken aber Datenbankevolution Föderationen mit bestehenden Datenbanken möglich 87 Systeme POET zu jedem Element der DTD oder der XML-Schema-Beschreibung wird eine korrespondierende Java-Klasse erzeugt Diese wird innerhalb des Systems gespeichert, indem dazu eine Relation generiert wird Ist kein Schema für eine Dokumentkollektion vorhanden, so wird hier eine Datenbank mit festem Schema eingesetzt. Diese Schema entspricht den Informationen des Document Object Model. (siehe vorn) Oracle 8i / Oracle 9i /10g Zum Datenbanksystem Oracle werden seit der Version 8i Tools angeboten, die die XML-Speicherung unterstützen. Bestandteil des Oracle XML Developer's Kit (XDK) Verfügbar sind zum Beispiel XML-Parser und XSL-Transformator Meike Klettke 88 Speicherung von XML-Dokumenten Speicherung als Ganzes Speicherung der Dokumentstruktur strukturierte Speicherung in Datenbanken Vollständiges (+automatisches) Mapping Benutzerdefiniertes Mapping Deutsch/Fernandez/ Suciu : Stored Ronald Bourret DB2 XML Extender Meike Klettke 89 Benutzerdefiniertes Mapping /1 Bei allen bisherigen Methoden konnte die Art der Speicherung nicht beeinflusst werden Jetzt folgt eine flexible Methode Mappingvorschrift wird durch den Benutzer spezifiziert Struktur der XML-Dokumente und Datenbankschema können unabhängig voneinander entworfen werden (und relativ autonom sein) Auch möglich: Speicherung von XML-Dokumenten in existierende Datenbanken Meike Klettke 90 Benutzerdefiniertes Mapping /2 XML-Dokument Mapping Vorschrift <hotel url="www.hotel-huebner.de"> <hotelname>Hotel Hübner</hotelname> <adresse> <ort>Warnemünde</ort> <strasse>Seestraße</strasse> ... <ClassMap> <ElementType Name="hotel"/> <ToClassTable> <Table Name="Hotelpreise"/> </ToClassTable> <PropertyMap> </adresse> <preise> <einzelzimmer>198</einzelzimmer> ... </preise> </hotel> <Attribute Name="url"/> <ToColumn> <Column Name="Hotel_URL"/> </ToColumn> </PropertyMap> <PropertyMap> <ElementType Name="hotelname"/> <ToColumn> <Column Name="Name"/> </ToColumn> </PropertyMap> ... </Classmap> Hotelpreise Datenbank Meike Klettke Hotel_URL Name www.hotel-huebner.de Hotel Hübner Einzelzimmer 198 91 Mappingvorschrift 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> Meike Klettke Verbindung zwischen Elementen und Relationen Verbindung zwischen Elementen/Attributen und Datenbankattributen 92 Mappingvorschrift in Oracle <?xml version="1.0" encoding=“ISO-8859-1“?> <xs:schema xmlns:xdb="http://xmlns.oracle.com/xdb„ xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace=http://www.oracle.com/xsd/auftrag.xsd elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="Auftrag" xdb:SQLName="AUFTRAG„ xdb:SQLType="AUFTRAG_T„ xdb:defaultTable="AUFTRAG_TAB"> <xs:complexType> <xs:sequence> <xs:element name="Auftragsnr„ type="xs:integer" xdb:SQLName="A_NR" xdb:SQLType="INTEGER" /> <xs:element name="Kunde" type="xs:string„ xdb:SQLName="KUNDE„ xdb:SQLType="VARCHAR2" /> <xs:element name="Datum" type="xs:date„ xdb:SQLName="DATUM" xdb:SQLType="DATE" /> <xs:element name="Produkt„ maxOccurs="unbounded„ xdb:SQLName="PRODUKTE" xdb:SQLType="PRODUKT_T„ xdb:defaultTable="PRODUKT_TAB„ xdb:SQLInline="false"> .... </xs:schema> Beispiel von Ulrike Schwinn: Meike Klettke 93 Anfragen Datenbankenanfragen (Struktur der Datenbanken muss bekannt sein) XML-Anfragen nur sehr eingeschränkt Prozess der Abbildung der XML-Dokumente auf Datenbanken muss protokolliert sein, und alle für die Anfrage relevanten Daten müssen gespeichert sein Meike Klettke 94 Eigenschaften Schemabeschreibung Zur Speicherung erforderlich Dokumentrekonstruktion Meist nicht möglich (Voraussetzungen: Protokollierung des Abbildungsprozesses, vollständige Abbildung) Anfragen Datenbankanfragen Updates Weitere Besonderheiten Anwendung Datenzentrierte XML-Anwendungen Meike Klettke Als Datenbankupdates realisierbar Updates, die Strukturen verändern bewirken aber Datenbankevolution Integration in bestehende Datenbanken möglich XML-Dokumente und DB voneinander unabhängig 95 Systeme /1 IBM DB2 XML-Extender Speicherung von XML-Dokumenten im Datenbanksystem DB2 über eine Mappingvorschrift (DAD - Data Access Definition) wird angegeben, wie die Zuordnung von Elementen und Attributen eines Dokuments auf die Attribute der Datenbank erfolgen soll. Die Syntax der DAD-Dateien ist XML Oracle objektrelationale Speicherung des XMLType Art der Speicherung wird durch ein annotiertes XML-Schema beschrieben, dieses enthält eine Zuordnung von Datenbankinformationen zu den XMLBestandteilen Dadurch benutzerdefinierte Speicherung Zugriff auf die so gespeicherten XML-Dokumente mit XPath oder SQL Meike Klettke 96 Systeme /2 Microsoft SQL-Server speichert XML-Dokumente in Datenbanken anwenderdefiniertes Mapping wird verwendet, das durch ein annotiertes XDR-Schema festgelegt wird. Annotationen beschreiben die Zuordnung zwischen XMLDokument und relationaler Datenbank, zum Beispiel: sql:relation und sql:field, bestimmen die Zuordnung zwischen Elementen und Attributen zu Datenbankrelationen und Datenbankattributen. Meike Klettke 97 Speicherung von XML-Dokumenten Als Dateien / Clobs Speicherung der Dokumentstruktur Strukturierte Speicherung in Datenbanken Volltextindex Abbildung der Graphstruktur Vollständiges Mapping Volltextindex und XML-Index Abbilden des DOM-Modells Benutzerdefiniertes Mapping Für dokument-zentrierte XML-Dokumente Für semistrukturierte XML-Dokumente Für daten-zentrierte XML-Dokumente Meike Klettke 98 Was ist native Speicherung? Als Dateien / Clobs Speicherung der Dokumentstruktur Strukturierte Speicherung in Datenbanken Volltextindex Abbildung der Graphstruktur Vollständiges Mapping Volltextindex und XML-Index Abbilden des DOM-Modells Benutzerdefiniertes Mapping Textbasierte native Speicherung Meike Klettke Modellbasierte native Speicherung 99 Hybride Speicherung – Motivation Es gibt eine Reihe von Methoden zur Speicherung von XMLDokumenten. Welche eignet sich für XML-Dokumente, die sowohl daten- als auch dokumentzentriert sind? Algorithmus zur Bestimmung von daten- und dokumentzentrierten Anteilen eines XML-Dokument Entsprechende Speicherung Meike Klettke 100 Hybride Ansätze Auswahl unterschiedlicher Speicherungsmethoden für verschiedene Dokumentanteile <hotel> <hotelname>Strand Hotel Hübner</hotelname> <adresse> <plz>18119</plz> <ort>Warnemünde</ort> <strasse>Seestraße</strasse> <nummer>12</nummer> <telefon>0381/5434-0</telefon> </adresse> <hausbeschreibung> Sie finden unser elegant und komfortabel eingerichtetes 4-Sterne Hotel direkt an der Strandpromenade von Warnemünde mit Blick auf Leuchtturm, Hafeneinfahrt und Ostsee. </hausbeschreibung> </hotel> Sie finden unser elegant und komfortabel eingerichtetes 4-Sterne Hotel direkt an der Strandpromenade von Warnemünde mit Blick auf Leuchtturm, Hafeneinfahrt und Ostsee. Hotel Strand Hotel Hübner Meike Klettke Ort Warnemünde Strasse Seestraße Telefon 0381/5434-0 101 Weiteres Beispiel nachricht: <nachricht id="ID0001" bedeutung="4"> <autor autor_id="A0001"> <nachname>Fürst</nachname> <vorname>Christian</vorname> <agentur>dpa</agentur> <e-mail>[email protected]</e-mail> </autor> <einordnung> <rubrik>Mozartjahr 2006</rubrik> … <inhalt> <ueberschrift>Ein Vermarktungsfest </ueberschrift> <text>Als Wolfgang Amadeus Mozart im Alter von 35 Jahren starb, .. </text> </inhalt> </nachricht> Meike Klettke id bedeutung autor inhalt ID0001 4 A0001 P0001 autor: ID autor_id nachname Vorname x00001 A0001 Fürst Christian ... <inhalt> <ueberschrift>Ein Vermarktungsfest </ueberschrift> <text>Als Wolfgang Amadeus Mozart im Alter von 35 Jahren starb, .. </text> </inhalt> 102 Hybride Datenbanken = objekt-relationale Datenbanken mit Attributen vom Typ XML Beispiel: front title XML companion author Neil Bradley publisher Addison Wesley content XML builds on the principles of two existing languages, <emph>HTML</emph> and <emph>SGML</emph> to create a simple mechanism .. XML builds on the principles of two existing languages, <emph>HTML</emph> and <emph>SGML</emph> to create a simple mechanism .. „strukturierte“ Anteile des XML-Dokumentes als objektrelationale Strukturen „unstrukturierte“ Anteile als Attribute vom Typ XML Meike Klettke 103 Integration der hybriden Speicherung in die Klassifikation Als Dateien / Clobs Speicherung der Dokumentstruktur Strukturierte Speicherung in Datenbanken Volltextindex Abbildung der Graphstruktur Vollständiges Mapping Volltextindex und XML-Index Abbilden des DOM-Modells Benutzerdefiniertes Mapping • Erkennen von dokument- und datenzentrierten Anteilen • Speicherung mit verschiedenen Verfahren Meike Klettke 104 Anwendungen Alle Multimedia-Anwendungen profitieren von einer hybriden Speicherung Vorgehensweise: – Multimediadokumente im Original speichern (XML) – Metadaten strukturiert speichern Anwendungen: – Text: • Mecklenburger Jahrbücher • GETESS – Image: • eNote history (historische Notenhandschriften) • Proteinbilder – Audio • KSWS? .. und diverse andere Projekte – Video Meike Klettke 105 Systeme Hybride Speicherungsverfahren werden durch Datenbanksysteme unterstützt, die mehrere Speicherungsmöglichkeiten für XML-Dokumente anbieten. Oracle – Speicherung eines XMLType als CLOB oder objektrelational, Kombination der Varianten kann durch entsprechende Angaben im annotierten XML Schema erfolgen DB2 – Speicherung von XML-Dokumenten als xmlcolumn und xmlcollection, Kombination in der gegenwärtigen Version nicht möglich ! Meike Klettke 106 Überblick zu Speicherungsverfahren Dokumentverarbeitung XML Konzeptueller Entwurf von XMLDokumenten <..> <..> <..> </..> </..> </..> Datenbanken konzeptuelle Ebene Meike Klettke logische Ebene physische Ebene 107 Zusammenfassung XML-Datenbanken – Vielzahl von Verfahren und Techniken existieren nebeneinander – oft aus den Bereichen Datenbanken und Dokumentverarbeitung – generell: es gibt keine „beste Lösung“ für alle XMLDokumente – geeignetste Lösung ist abhängig von konkreten Erfordernissen – Viele Systeme bieten mehrere Varianten an Meike Klettke 108 Literatur /1 – Neil Bradley, The XML companion, Addison Wesley, 1998 – Yoshikawa, M., Amagasa, T., Shimura, T., Uemura, S., XRel: A PathBased Approach for Storage and Retrieval of XML Documents Using Relational Databases: ACM Transactions on Internet Technology, Volume 1, Nummer 1, S. 110-141, 2001 – Daniela Florescu, Donald Kossmann, Storing and Querying XML Data Using an RDBMS, Bulletin of the Technical Committee on Data Engineering, volume 22, number 3, September 1999, pp. 27-34 – Dieter Scheffner, Rainer Conrad: Access Support Tree & TextArray: A Model for Physical Storage of XML Documents, Workshop WebDatenbanken, 2001 – Guido Rost: Implementierung von XQuery auf objekt-relationalen Datenbanken, Diplomarbeit, Universität Rostock, Fachbereich Informatik, 2002 Meike Klettke 109 Literatur /2 – Richard Edwards, Sian Hope: Persistent DOM: An Architecture for XML Repositories in Relational Databases, Intelligent Data Engineering and Automated Learning --- IDEAL, 2000, S. 416—421 – Georg Lausen, Pedro José Marrón: On Processing XML in LDAP, Proceedings of 27th International Conference on Very Large Data Bases, VLDB, 2001, S. 601--610 – Jayaval Shanmugasundaram, Kristin Tufte, Gang He, Chun Zhang, David DeWitt, Jeffrey Naughton, Relational Databases for Querying XML Documents - Limitations and Opportunities, Proceedings of the 25th VLDB Conference, Edinburgh, Scotland, 1999, pp. 302-314 – Ronald Bourret, C. Bornhövd, A.P. Buchmann, A Generic Load/ Extract Utility for Data Transfer between XML Documents and Relational Databases, Second International Workshop on Advanced Issues of E-Commerce and Web-based Information Systems, WECWIS'00 Meike Klettke 110 Literatur /3 – Ronald Bourret, XML-DBMS - Middleware for Transferring Data between XML Documents and Relational Databases, http://www.rpbourret.com/xmldbms/index.htm – Klemens Böhm: Verwendung objektorientierter Datenbanktechnologie zur Verwaltung strukturierter Dokumente, Dissertation, Technische Hochschule Darmstadt, 1997 – Meike Klettke, Holger Meyer, XML and Object-Relational Databases Enhancing Structural Mappings Based on Statistics, WebDB 2000, Mai 2000 – Alin Deutsch, Mary F. Fernandez, Dan Suciu, Storing Semistructured Data with STORED, SIGMOD 1999, Proceedings ACM SIGMOD International Conference on Management of Data, June 1999, Philadephia, Pennsylvania, USA, ACM Press, 1999, pp. 431-442 – Beate Porst, Untersuchung zu Datentyperweiterungen für XMLDokumente und ihre Anfragemethoden am Beispiel von DB2 und Informix, Diplomarbeit, Universität Rostock, Fachbereich Informatik, 2000 Meike Klettke 111 Literatur /4 – www.ibm.com – www.oracle.com/xml – Ulrike Schwinn (Oracle): XML in der Oracle Datenbank „relational and beyond“, BTW 2003 – www.exceloncorp.com – Rüdiger Eichin, Excelon: Prozeßmanagement auf der Basis von XML, Fachgruppentreffen, GI-Fachgruppe Datenbanksysteme, Darmstadt, 2002 – eXtensible Information Server (XIS), Native XML Data Management System, www.exceloncorp.com/products/xis/ – www.microsoft.com Meike Klettke 112 Literatur /5 – www.softwareag.com/tamino – Harald Schöning, Jürgen Wäsch: Tamino --- An Internet Database System, Advances in Database Technology --- EDBT 2000, LNCS 1777, S. 383—387 – Walter Waterfeld: Realisierungsaspekte eines XML Datenbanksystems, BTW 2001 – www. fastobjects.com – www.infonyte.com – Thomas Tesch, Peter Fankhauser, Tim Weitzel (infonyte): Skalierbare Verarbeitung von XML-Dokumenten in Datenbanken, BTW 2003 – Meike Klettke, Holger Meyer, XML and databases, http://www.xml-und-datenbanken.de Meike Klettke 113