XML und Datenbanken Speicherungsmethoden Meike Klettke meikeinformatik unirostock
XML und Datenbanken Speicherungsmethoden Meike Klettke meike@informatik. uni-rostock. de www. xml-und-datenbanken. de 1
Inhalt n n n 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) n n n 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 Informationen aus den Dokumenten) Meike Klettke 3
Unterteilung von XML-Dokumenten 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 n Vorstellung von verschiedenen Methoden – Grundprinzip der Speicherung – Eigenschaften – Anfragemöglichkeiten n Dabei Klassifikation bekannter Methoden Meike Klettke 5
Speicherung von XML-Dokumenten Speicherung als Ganzes Volltextindex Speicherung der Dokumentstrukturierte Speicherung in Datenbanken Volltext- und XML-Index Information Retrieval Suchmaschinen Text Extender - Oracle Text - DB 2 Text Extender - Informix Text Data Blades Meike Klettke 6
Exkurs: Information Retrieval n n 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 n n n n „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. . n n 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: n damit Anfragen effizient ausgeführt werden können Inhaltsbasierte Suche in Volltexten n Deskribierung Recherche Ergebnispräsentation Meike Klettke 12
2. Überblick über die Dokumentenverarbeitung Recherche Suche von Textdokumenten nach Vorgabe von Dokumentdeskriptoren Index Bewertung Deskribierung manuelle und automatische Verfahren zur Anreicherung des strukturierten Textes mit Deskriptoren Meike Klettke Ordnung der gefundenen Dokumente nach ihrer Güte Ranking, Relevance Feedback 13
Indexbildung /1 n n 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 manuelle und automatische Verfahren zur Anreicherung des strukturierten Textes mit Deskriptoren Meike Klettke Ordnung der gefundenen Dokumente nach ihrer Güte Ranking, Relevance Feedback 15
Indexbildung /2 n 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 Datenbanken Information, 2* Retrieval Web 16
Implementierung als invertierte Liste Dokumente d 1. . dn Term i d 3 (15) Term j d 2(45) Term k d 2(335) d 2(25, 30) d 4(50) d 1(300) d 1(435) • verschiedene Optimierungen dieser Indexstrukturen • Anfragen sind zeitkritisch, die Indexbildung nicht, Ziel sind also effiziente Zugriffe Meike Klettke 17
Übersicht über Verfahren zur Deskribierung n n n statistische, wortbasierte Verfahren – Häufigkeit von Wörtern auswerten linguistische Verfahren – Stammwortreduktion – Erkennen von Satzzusammen. Deskribierung hängen wissensbasierte Verfahren – Klassifikationen, Thesauren, Ontologien Meike Klettke Index 18
Häufigkeit der Terme auswerten / 1 n 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 n 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): • Bad. Hilfskraft • 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 zu seltene Terme Diskriminationskraft der Terme zu häufige Terme Rang* * Sortierung der Terme nach abfallender Häufigkeit Salton, Mc. Gill, 1983 zur Suche eignen sich Begriffe mittlerer Häufigkeit am besten abnehmende Worthäufigkeit Stoppwortliste Meike Klettke Eliminierung seltener Begriffe 20
Bildung eines linguistischen Indexes / 1 n Motivation: Suche nach dem Begriff soll auch Deklinationen bzw. Konjugationen einbeziehen Beispiele: n n – 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 Index Suche von Textdokumenten nach Vorgabe von Dokumentdeskriptoren Bewertung Deskribierung manuelle und automatische Verfahren zur Anreicherung des strukturierten Textes mit Deskriptoren Meike Klettke Ordnung der gefundenen Dokumente nach ihrer Güte Ranking, Relevance Feedback 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 n n n 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 d 1. . dn Term i d 3 (15) d 2(25, 30) Term j d 2(45) d 1(300) Term k d 2(335) d 1(435) d 4(50) • Beispielanfragen: • k • i or j • i and k and not j Meike Klettke 27
Vektorraummodell n n 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 n n n 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 n n n n 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 Index Recherche Bewertung n Ranking n 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 n n n 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: n Techniken zur Textverarbeitung Jetzt folgt: n 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 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="ID 0001" bedeutung="4"> <autor_id="A 0001"> <nachname>Fürst</nachname> <vorname>Christian</vorname> <agentur>dpa</agentur> <e-mail>fuerst@dpa. de</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 n Statistischen wortbasierten Verfahren – (Stoppwortlisten, Streichen von selten vorkommenden Begriffen) n Linguistischen Verfahren – Wortnormalisierung – (Groß-, Kleinschreibung, Getrennt- und Zusammenschreibung, Umlaute), – Wortdekomposition durch Regeln (engl. ) oder Wörterbücher (dt. ) – Stammwortreduktion n 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: n – Hotel AND Warnemünde – (Hotel OR Pension) AND (Warnemünde OR Rostock) n linguistische Anfragen – Stammwortsuche, phonetische Suche, Ähnlichkeitssuche usw. Meike Klettke 39
Anfragen /2 Position der Stichworte im Index erlaubt weitere Anfragen Beispiele: n – 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 n Ergebnis der Anfragen ist in der Regel das vollständige Dokument Die Anfragen sind also Suchfunktionen n Nicht realisierbar ist jedoch: n • //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 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 n fast alle herkömmlichen Suchmaschinen verwenden invertierte Listen zur Indexbildung IBM DB 2 Text Extender n Text Extender, ermöglicht die Speicherung von Volltextdokumenten innerhalb eines Datenbanksystems n vier verschiedene Arten von Indizes können gebildet werden, n Mögliche Suchanfragen: – – – Stammwortreduktion, exakte Suche, phonetische Suche, Ähnlichkeitssuche … Meike Klettke 42
Systeme /2 Oracle Text n Verarbeitung von Volltext-Datentypen n Information-Retrieval-Anfragen in Form von speziellen SQL-Anweisungen n Mögliche Anfragen – Stammwortreduktion – Verwendung von Wildcards – Ähnlichkeits- und Phrasensuche n Ranking der Ergebnisse erfolgt n Relevance Feedback durch den Anwender ist möglich Meike Klettke 43
Speicherung von XML-Dokumenten Speicherung als Ganzes Volltextindex Speicherung der Dokumentstrukturierte Speicherung in Datenbanken Volltext- und XML-Index DB 2 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="ID 0001" bedeutung="4"> <autor_id="A 0001"> <nachname>Fürst</nachname> <vorname>Christian</vorname> <agentur>dpa</agentur> <e-mail>fuerst@dpa. de</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 n Strukturinformationen müssen aus dem Index erkennbar und wiederherstellbar sein, n Zuordnung: Inhalten zum Markup sowie Hierarchische Schachtelung und Anordnung des Markup n Meike Klettke 47
Anfragen /1 n boolesches Retrieval – Hotel AND Warnemünde n linguistische Anfragen – Stammwortsuche, phonetische Suche, Ähnlichkeitssuche usw. n Position der Stichworte im Index erlaubt weitere Anfragen – Suchbegriff 'Datenbanken' tritt vor 'XML' im Dokument auf – der Begriff 'Information' folgt unmittelbar auf 'Retrieval‚ n 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 n Einsatz von XPath und XQuery ist dadurch möglich n Anfragen, die das gesamte Dokument als Ergebnis liefern, lassen sich einfach realisieren, Anderenfalls muss das Dokument geparst werden und das Ergebnis daraus generiert werden. n Meike Klettke 49
Eigenschaften des Volltext- und XML-Indexes Schemabeschreibung Nicht erforderlich Dokumentrekonstruktion XML-Dokumente bleiben im Original erhalten 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 DB 2 Text Extender n Speicherung von Volltextdokumenten innerhalb eines Datenbanksystems n Auswertung von Markup ist möglich n Dadurch Kombination von Volltextanfragen mit Auswertung von XML-Markup möglich Oracle Text n XML-Unterstützung durch Auswertung von XML-Strukturen n 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 Graphstrukturierte 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 ort string Warnemünde 2 strasse string Seestrasse Vorgänger 1 3 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="ID 0001" bedeutung="4"> <autor_id="A 0001"> <nachname>Fürst</nachname> <vorname>Christian</vorname> <agentur>dpa</agentur> <e-mail>fuerst@dpa. de</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 n 001 Wert Ordnung Vorgänger nachricht 1 - n 002 autor 1 n 003 nachname Fürst 1 n 002 n 004 vorname Christian 2 n 005 agentur dpa 3 n 002 n 006 e-mail fuerst@dpa. d e 4 n 002 Element Attribut Typ Wert n 001 id xs: ID ID 0001 n 001 bedeutung xs: int 4 n 002 autor_id xs: ID A 0001 54
Speicherung der Graphstruktur /2 n Verwendung von Relationen zur Speicherung von Elementen und Attributen Elemente: Doc. ID Elementname Typ Wert Ordnung Verweis auf Vorgänger n n Attribute: Attributname Typ Wert Verweis auf Element n Damit ist die Zuordnung von Inhalten zur Struktur, sowie die vollständige Wiederherstellung der Struktur möglich Meike Klettke 55
Speicherung der Graphstruktur /3 n n DTD nicht erforderlich für einfache Anfragen verwendbar n Durch Erweiterungen können Datentypen adäquat gespeichert und ausgewertet werden n komplexere Anfragen über zwei oder mehr Elemente/ Attribute sind nicht effizient Meike Klettke 56
Anfragen Angepasstes SQL, durch Datenbankschema bestimmt: Elements: Beispiel: Doc. ID Element d 0001 hotel (Hotels in Warnemünde) d 0001 select a. wert d 0001 from Elemente a, Elemente b d 0001 where (a. element= 'hotelname') and (b. element='ort') and (b. wert='Warnemünde') and (a. Doc. ID=b. Doc. ID) Meike Klettke Type Wert Descendant-of adresse plz int 18119 ort string Warnemünde strasse string Seestrasse 57
Anfragen XML-Anfragen sind möglich, XMLAnfragen n n 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 n XML-Anfragen möglich n angepasste Datenbankanfragen Updates effizient realisierbar Weitere Besonderheiten Anfragen über vielen Elementen und Attributen sind aufwändig Anwendung Daten-, dokumentzentrierte und semistrukturierte XML-Anwendungen Meike Klettke 59
Systeme n n n 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 Graphstrukturierte Speicherung in Datenbanken Speicherung der Informationen des DOM Richard Edwards infonyte e. Xcelon XIS (POET) Meike Klettke 61
Speicherung basierend auf DOM /1 DOMImplementation n Informationen des Document Object Models bilden das Schema der Datenbank Node. List Named. Node. Map Attr Character. Data Comment Text CData. Section n n Verwendung relationaler oder objekt-orientierter Datenbanken oder Entwicklung eigener Speicherungsstrukturen Document. Fragment Document. Type Element Entity. Reference Notation Processing. Instruction Meike Klettke 62
Speicherung basierend auf DOM /2 Methoden der Klasse Node: - get. Children() Node. ID Node. Type Doc. ID Parent. Node - get. First. Child() - get. Next. Sibling() - get. Node. Type() Previous. Sibling Next. Sibling First. Child - get. Parent. Node() - get. Previous. Sibling() - has. Children() Methoden der Klasse Element: Node. ID Tag. Name - get. Attributes() - get. Elements. By. Tag. Name(String) - get. Tag. Name() Methoden der Klasse Attribut: - get. Name() Node. ID Element. ID Attribut. Name Attribut. Value - get. Value() Meike Klettke 63
Anfragen XMLAnfragen n n DOM-Methoden XML-Anfragen Meike Klettke SQL n Angepasste Datenbankanfragen (unter Kenntnis der Speicherungsstruktur) 64
Eigenschaften der auf DOM basierenden Speicherung Schemabeschreibung Nicht erforderlich Dokumentrekonstruktion Möglich, aber sehr aufwändig Anfragen n XML-Anfragen möglich n angepasste Datenbankanfragen Updates effizient realisierbar Weitere Besonderheiten n Anfragen über vielen Elementen und Attributen sind aufwändig n standardisierte und allgemein akzeptierte Schnittstelle Anwendung Meike Klettke Daten-, dokumentzentrierte und semistrukturierte XML-Anwendungen 65
Systeme /1 Infonyte-DB n verwendet zur Speicherung von XML-Dokumenten ein persistentes Document Object Model (PDOM) n baut aber nicht auf existierende Datenbanken auf, sondern entwickelt Komponenten zur physischen Speicherung, die an die XML-Dokumente optimal angepasst sind n Anfragesprache: Richtung XQuery Tamino n modellbasierte Speicherung von XML-Dokumenten n XML-Anfragen auf den gespeicherten Dokumenten sind durch die Verwendung von XPath realisierbar n Entwicklung geht Richtung XQuery Meike Klettke 66
Systeme /2 Sonic XML Server (früher unter den Namen e. Xcelon) n verwendet zur Speicherung von XML-Dokumenten das Document Object Model n Alle Informationen, die in dieser API enthalten sind, werden in einer objektorientierten Datenbank objectstore adäquat gespeichert. n Anfragen: OQL Berkeley DB XML n Generische Speicherung n Indexverfahren n Anfragen: XPath, XQuery n Metadaten können zugeordnet werden Meike Klettke 67
Systeme /3 n mittlerweile unterstützen sowohl Oracle als auch DB 2 eine native XML-Speicherung – Datentyp: XML, – Anfragen: XPath, XQuery, – Volltext- und Strukturindex, . . . Meike Klettke 68
Speicherung von XML-Dokumenten Speicherung als Ganzes Speicherung der Dokumentstrukturierte 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 Hotel. ID="H 0001"> <hotelname>Hotel Hübner </hotelname> <adresse> <ort>Warnemünde</ort> <strasse>Seestraße</strasse>. . . </adresse> <preise> <einzelzimmer>98 </einzelzimmer>. . . </preise> </hotel> Hotel: Adresse: Preise: Hotel. ID Hotelname Adresse Preise H 0001 Hotel Hübner A 0001 P 0001 Adresse. ID Ort Strasse A 0001 Warnemünde Seestraße Preise. ID Einzelzimmer P 0001 98 . . . - DTD oder XML-Schema ist erforderlich - typgerechte Speicherung Meike Klettke 70
Weiteres Beispiel nachricht: <nachricht id="ID 0001" bedeutung="4"> <autor_id="A 0001"> <nachname>Fürst</nachname> <vorname>Christian</vorname> <agentur>dpa</agentur> <e-mail>fuerst@dpa. de</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 ID 0001 4 A 0001 P 0001 autor: ID autor_id nachname Vorname agentur e x 00001 A 0001 Fürst Christian dpa f inhalt: ID ueberschrift text y 00001 Ein Vermarktungsfest Als Wolfgang Amadeus Mozart im Alter von 35 Jahren starb, . . 71
Abbildung der XML-Struktur auf objektorientierte Datenbanken XML-Dokument Hotel: Hotel. ID H 0001 <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="ID 0001" bedeutung="4"> <autor_id="A 0001"> <nachname>Fürst</nachname> <vorname>Christian</vorname> <agentur>dpa</agentur> <e-mail>fuerst@dpa. de</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 ID 0001 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 A 0001 Fürst Christian dpa fuerst@dp a. de 73
Erzeugen des Datenbankschemas für eine DTD (straight-forward) /1 Elemente: n XML-Element Sequenz von Elementen Alternative von Elementen Element mit Quantifizierer ? Elemente mit Quantifizierer +, * n Geschachtelte Elemente n n Meike Klettke Attribut 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: n n 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)*> n drei Speicherungsvarianten sind möglich n 1. alle Alternativen in einer Relation Hotel Kategorie Hotel-. . . Pensionsname Meike Klettke Pension Zimmer Aus-- Preise stattung Campingplatz Klassifikation . . 78
Problemfälle bei der Abbildung: Alternativen /2 Beispiel: <!ELEMENT unterkunft (hotel | pension | campingplatz)*> n 2. Aufspaltung in separate Relationen Hotel Kategorie Hotel-. . . name Zimmer Pensionsname Campingplatz Klassifikation . . Meike Klettke Aus-- Preise stattung . . 79
Problemfälle bei der Abbildung: Alternativen /3 Beispiel: <!ELEMENT unterkunft (hotel | pension | campingplatz)*> n 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 n n Rekursionen (in DTDs) Vorgehensweise: – Markieren der Knoten – Aufspaltung in separate Relationen – Verwendung von Referenzen (primary/foreign key) n Beispiel: <!ELEMENT publications (book | article | conference)*> <!ELEMENT book (front, body, references)> <!ELEMENT references (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 A 19 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 A 19 Rostock—Berlin Sie finden uns direkt an der Uferpromenade. Meike Klettke 82
Problemfälle bei der Abbildung: Mixed Content n Abbildung in Relationen nur sehr schlecht geeignet n 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 A 19 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 n Datenbankanfragen (Struktur der Datenbanken muss bekannt sein) n 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 n n Anfragen, Datentypen, Aggregatfunktionen, Sichten Integration in andere Datenbanken Nachteile: bei der Speicherung semi- und unstrukturierter Daten n 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 n Datenbankanfragen n XML-Anfragen möglich Updates n Als Datenbankupdates realisierbar n Updates, die Strukturen verändern bewirken aber Datenbankevolution Weitere Besonderheiten n Föderationen mit bestehenden Datenbanken möglich Anwendung Meike Klettke Datenzentrierte XML-Anwendungen 87
Systeme POET n n n zu jedem Element der DTD oder 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 8 i / Oracle 9 i /10 g n n n Zum Datenbanksystem Oracle werden seit der Version 8 i Tools angeboten, 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 Dokumentstrukturierte Speicherung in Datenbanken Vollständiges (+automatisches) Mapping Benutzerdefiniertes Mapping Deutsch/Fernandez/ Suciu : Stored Ronald Bourret DB 2 XML Extender Meike Klettke 89
Benutzerdefiniertes Mapping /1 n Bei allen bisherigen Methoden konnte die Art der Speicherung nicht beeinflusst werden n Jetzt folgt eine flexible Methode Mappingvorschrift wird durch den Benutzer spezifiziert n n n 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>. . . </adresse> <preise> <einzelzimmer>198</einzelzimmer> . . . </preise> </hotel> <Class. Map> <Element. Type Name="hotel"/> <To. Class. Table> <Table Name="Hotelpreise"/> </To. Class. Table> <Property. Map> <Attribute Name="url"/> <To. Column> <Column Name="Hotel_URL"/> </To. Column> </Property. Map> <Element. Type Name="hotelname"/> <To. Column> <Column Name="Name"/> </To. Column> </Property. Map>. . . </Classmap> Hotelpreise Datenbank Meike Klettke Hotel_URL Name www. hotel-huebner. de Hotel Hübner Einzelzimmer 198 91
Mappingvorschrift Beispiel nach Ronald Bourret <Class. Map> <Element. Type Name="hotel"/> <To. Class. Table> <Table Name="Hotelpreise"/> </To. Class. Table> <Property. Map> <Attribute Name="url"/> <To. Column> <Column Name="Hotel_ULR"/> </To. Column> </Property. Map>. . . </Class. Map> 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. w 3. org/2001/XMLSchema" target. Namespace=http: //www. oracle. com/xsd/auftrag. xsd element. Form. Default="qualified" attribute. Form. Default="unqualified"> <xs: element name="Auftrag" xdb: SQLName="AUFTRAG„ xdb: SQLType="AUFTRAG_T„ xdb: default. Table="AUFTRAG_TAB"> <xs: complex. Type> <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="VARCHAR 2" /> <xs: element name="Datum" type="xs: date„ xdb: SQLName="DATUM" xdb: SQLType="DATE" /> <xs: element name="Produkt„ max. Occurs="unbounded„ xdb: SQLName="PRODUKTE" xdb: SQLType="PRODUKT_T„ xdb: default. Table="PRODUKT_TAB„ xdb: SQLInline="false">. . </xs: schema> Beispiel von Ulrike Schwinn: Meike Klettke 93
Anfragen n Datenbankenanfragen (Struktur der Datenbanken muss bekannt sein) n 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 n Als Datenbankupdates realisierbar n Updates, die Strukturen verändern bewirken aber Datenbankevolution Weitere Besonderheiten n Integration in bestehende Datenbanken möglich n XML-Dokumente und DB voneinander unabhängig Anwendung Meike Klettke Datenzentrierte XML-Anwendungen 95
Systeme /1 IBM DB 2 XML-Extender n n n Speicherung von XML-Dokumenten im Datenbanksystem DB 2 ü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 n n 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 n n n 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? n n 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="ID 0001" bedeutung="4"> <autor_id="A 0001"> <nachname>Fürst</nachname> <vorname>Christian</vorname> <agentur>dpa</agentur> <e-mail>fuerst@dpa. de</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 ID 0001 4 A 0001 P 0001 autor: ID autor_id nachname Vorname x 00001 A 0001 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 n n 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. . „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 n Alle Multimedia-Anwendungen profitieren von einer hybriden Speicherung Vorgehensweise: – Multimediadokumente im Original speichern (XML) – Metadaten strukturiert speichern Anwendungen: – Text: • Mecklenburger Jahrbücher • GETESS – Image: • e. Note history (historische Notenhandschriften) • Proteinbilder – Audio • KSWS? . . und diverse andere Projekte – Video Meike Klettke 105
Systeme n n n 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 DB 2 – 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 n 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 Path. Based 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 & Text. Array: A Model for Physical Storage of XML Documents, Workshop Web. Datenbanken, 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 27 th International Conference on Very Large Data Bases, VLDB, 2001, S. 601 --610 – Jayaval Shanmugasundaram, Kristin Tufte, Gang He, Chun Zhang, David De. Witt, Jeffrey Naughton, Relational Databases for Querying XML Documents - Limitations and Opportunities, Proceedings of the 25 th 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, Web. DB 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 DB 2 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 – e. Xtensible 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
- Slides: 113