Wissens- und Content-Management XML und Datenbanken Dr. Roman Schneider Institut für Informatik XML und Datenbanken Content Management für XML 1/3 • Aufgabe: Verwaltung der Inhalte und der logischen Struktur von XMLInstanzen • Layoutinformationen separat => flexible Darstellung und effektive Weiterverarbeitung (Medien, Formate, …) Dr. Roman Schneider Modul Wissens- und Contentmanagement 2 XML und Datenbanken Content Management für XML 2/3 Was gehört dazu? Spektrum der Teilaufgaben: • • • • • • Modellierung: Erstellung/Ableitung von Strukturbeschreibungen Manuelle oder automatisierte Generierung von XML-Dokumenten Speicherung von (dokumentenzentrierten, semistrukturierten, ggf. auch datenzentrierten) XML-Dokumenten (CMS, DBMS) Indizierungsverfahren (wichtig zur Abfrage-Optimierung) Abfragerealisierung (Abfragesprachen für XML-Dokumente) Update / Transformation von XML-Dokumenten Dr. Roman Schneider Modul Wissens- und Contentmanagement 3 XML und Datenbanken Content Management für XML 3/3 Strukturbeschreibung Modellierung XML-Dokumente Generierung CMS / Datenbank Dr. Roman Schneider Transformation XSLT Modul Wissens- und Contentmanagement HTML 4 XML und Datenbanken Problematik 1. 2. 3. XML-Dokumente können für sehr verschiedene Anwendungen / Zwecke eingesetzt werden (Kataloge, Webseiten, ...) => Aufbau der Dokumente unterscheidet sich stark Oft mehrere Varianten einer Struktur-Modellierung denkbar Es existiert eine Vielzahl von Methoden zur Speicherung Nachfolgend: Klassifikation und Einordnung bekannter Methoden für Entwurf, Generierung & Speicherung von XML-Dokumenten Dr. Roman Schneider Modul Wissens- und Contentmanagement 5 XML und Datenbanken Drei-Ebenen-Architektur konzeptuell ► logisch ► physisch 3 Ebenen für Datenbanken ok 3 Ebenen für XML-Anwendungen ? 2) Logische Ebene (systemabhängig, Relationenschemata) Anordnung entspricht 3) Physische Ebene (konkrete Implementierung, Datendefinition) hier der historischen 1) Konzeptuelle Ebene (Anforderungsanalyse, systemunabhängig) Entwicklung! k o n z e p t u e l l e E b e n e Dr. Roman Schneider l o g i s c h e E b e n e Modul Wissens- und Contentmanagement p h y s i s c h e E b e n e 6 XML und Datenbanken Drei Ebenen bei Datenbanken k o n z e p t u e l l e E b e n e 1. 2. 3. l o g i s c h e E b e n e p h y s i s c h e E b e n e Konzeptuelle Ebene (in der Regel bezogen auf ein Anwendungsgebiet): Entwurf evtl. bereits mit ERM, ERDiagrammen Logische Ebene (logische Strukturen für konkretes System): relationales Datenmodell, relationale Algebra Physische Ebene (Implementierung): interne Speicherung, Indizierung, Transaktionsverarbeitung, Anfrageoptimierung Dr. Roman Schneider Modul Wissens- und Contentmanagement 7 XML und Datenbanken Konzeptuelle Ebene bei Datenbanken Nach Prof. Dr. Rainer Manthey, Bonn Dr. Roman Schneider Modul Wissens- und Contentmanagement 8 XML und Datenbanken Logische Ebene bei Datenbanken n 1 Nach Prof. Dr. Rainer Manthey, Bonn Dr. Roman Schneider Modul Wissens- und Contentmanagement 9 XML und Datenbanken Physische Ebene bei Datenbanken TB_STADT TB_HAUPTSTADT TB_LAND CO_STADT | CO_LAND ----------------------------------Berlin D Hamburg D Leipzig D Köln D Bordeaux F Paris F CO_STADT | CO_LAND ---------------------------------Berlin D Paris F CO_LAND ---------------D F CREATE TABLE – Statement Mit Datentypdefinition etc. Dr. Roman Schneider Modul Wissens- und Contentmanagement 10 XML und Datenbanken Drei Ebenen für XML-Applikationen Konzeptueller Entwurf von XMLDokumenten ? <..> <..> <..> konzeptuelle Ebene </..> </..> </..> logische Ebene ? physische Ebene Historisch: logische Ebene (Spezifikation Dokumentenmodell) prominent… XML-Dokumente: Welche Methoden und Werkzeuge für... – – – – Entwurf/Konzeption ? Speicherung ? Anfragen, Updates ? Transformation ? Dr. Roman Schneider Modul Wissens- und Contentmanagement 11 XML und Datenbanken Logische Ebene: Modelle, Methoden & Technologien dokumentzentriert </..> </..> </..> logische Ebene semistrukturiert <..> <..> <..> Dokumentmodell Anfragen/Updates an Struktur und Inhalt XML, SGML XQuery, XPath, Volltext-IR XSLT Daten- und Dokumentmodell Anfragen/Updates an Struktur und Inhalt XML, SGML XQuery, XPath XSLT datenzentriert Datenmodell Anfragen/Updates an Inhalt XML, RDBM, OODBM XQuery, Xpath, SQL XSLT, DB-Import, -Export … und für die physische bzw. konzeptuelle Ebene? Dr. Roman Schneider Modul Wissens- und Contentmanagement 12 XML und Datenbanken Anforderungen an die physische Ebene Anforderungen an die Speicherung von XML-Dokumenten: effektive Speicherung effizienter Zugriff auf XML-Dokumente oder -Fragmente durch physische – Transaktionsverwaltung Ebene – Unterstützung von XPath und XQuery – Unterstützung von SAX (Simple API for XML) oder DOM (Document Object Model, W3C-Standard), beide spezifizieren Methoden für den Zugriff auf XML-Instanzen Wiederherstellbarkeit der Dokumente (bzw. der enthaltenen Informationen) Nach Fiebig, Kanne, Moerkotte (2002): Anatomy of a native XML base management system. Dr. Roman Schneider Modul Wissens- und Contentmanagement 13 XML und Datenbanken Physische Ebene: Modelle, Methoden & Technologien semistrukturiert Struktur durch Schema und Werte kodiert datenzentriert Dr. Roman Schneider dokumentzentriert physische Ebene kaum explizite Struktur Struktur durch Schema Speicherung als Ganzes Speicherung der Graphstruktur Abbildung auf Datenbanken Modul Wissens- und Contentmanagement 14 XML und Datenbanken Realisierungen für die physische Ebene Speicherung der XML-Dokumente als Ganzes (textbasiert native) – Dateisystem – Volltextindex – Strukturindex physische Ebene Speicherung der Graphenstruktur (modellbasiertes natives Verfahren) – generische Graphspeicherung – Speicherung der DOM-Informationen strukturierte Abbildung auf Datenbanken – relationale Datenbanken – objekt-orientierte und objekt-relationale Datenbanken – Einsatz von Mappingverfahren (manuell oder automatisiert) XML-Datenbanken? Dr. Roman Schneider Modul Wissens- und Contentmanagement 15 XML und Datenbanken Konzeptuelle Ebene: Modelle, Methoden & Technologien dokumentzentriert ?? Entwurf von XMLDokumenten konzeptuell e konzeptuelle Ebene Ebene semistrukturiert Konzeptueller Modellierung von Struktur und Inhalt ?? Modellierung von Struktur und Inhalt ?? datenzentriert Modellierung von Struktur ?? Dr. Roman Schneider Modul Wissens- und Contentmanagement 16 XML und Datenbanken Realisierungen für die konzeptuelle Ebene Dokumentzentrierte XML-Dokumente – Graphische Entwurfswerkzeuge – Visualisierung von Baum- und Graphstruktur Konzeptueller Entwurf von XMLDokumenten konzeptuelle Ebene Semistrukturierte XML-Dokumente – Graphendarstellungen, …? Datenzentrierte XML-Dokumente – UML (Unified Modelling Language) – Erweiterung von ER – Erweiterung von ORM (Object-Relational Mapping, einem Konzept zum Abbilden von Objekten in relationale Datenbanken) Hier besteht (insbesondere für semistrukturiertes XML) noch Forschungsbedarf, bislang keine etablierte Entwurfsmethode! Dr. Roman Schneider Modul Wissens- und Contentmanagement 17 XML und Datenbanken Zusammenfassung: Drei-Ebenen-Architektur Dokumentverarbeitung Konzeptueller Entwurf von XMLDokumenten XML <..> <..> <..> </..> </..> </..> Datenbanken konzeptuelle Ebene logische Ebene physische Ebene => was leisten (XML-)Datenbanken für die Speicherung? Dr. Roman Schneider Modul Wissens- und Contentmanagement 18 XML und Datenbanken Stand der Kunst bei XML-Datenbanken Nach wie vor ist vieles in der Entwicklung: Beim W3C: Abfragesprachen, Updatesprachen, Schemaevolutionssprachen Entsprechend auch bei XML-Datenbanksystemen Diverse Verfahren und Techniken existieren nebeneinander Im Produkt-Portfolio großer Anbieter gibt es z.T. mehrere parallel angebotene Lösungen Technologie oft aus den „etablierten“ Sparten DBMS und Textverarbeitung Generell: es gibt keinen „Königsweg“ Beste Lösung für Anwender ist abhängig von konkreten Erfordernissen (und Vorkenntnissen) Dr. Roman Schneider Modul Wissens- und Contentmanagement 19 XML und Datenbanken Speicherung von XML-Instanzen in Datenbanken 1/2 Vorstellung von verschiedenen Speicherungs-Methoden – – – – Grundprinzip der Speicherung (als Ganzes ↔ Struktur ↔ feingranular) Untersch. Anwendungsbereiche Spezifische Eigenschaften der Speicherungs-Methoden Abfragemöglichkeiten Klassifikation der Methoden folgt… Dr. Roman Schneider Modul Wissens- und Contentmanagement 20 XML und Datenbanken Speicherung von XML-Instanzen in Datenbanken 2/2 Speicherung als Ganzes Volltextindex Speicherung der Dokumentstruktur Volltext- und XML-Index Information Retrieval Suchmaschinen - Oracle Text - IBM DB2 Text Extender - MS SQL Server Volltextsuche Dr. Roman Schneider feingranulare Speicherung in Datenbanken => Exkurs XML & IR Modul Wissens- und Contentmanagement 21 XML und Datenbanken Exkurs: Information Retrieval 1/4 Information Retrieval beschäftigt sich mit Verarbeitung solcher Informationsanfragen: „Wo findet man Informationen über Kühlschränke?“ „Wie ist der Begriff Airflow-System definiert?“ „Wo ist der Zusammenhang zwischen Kühlsystem und Energieverbrauch erläutert?“ Norbert Fuhr: „inhaltliche Suche in Texten“ (http://www.is.inf.uni-due.de/courses/ir_ss06/folien/irskall.pdf) Varianten der Anfrageformulierung: Satz vs. Stichwort vs. ... Beachten muss man stets die Effizienz, denn in der Regel liegen große Textmengen zugrunde (”Google doch mal danach...”)! Dr. Roman Schneider Modul Wissens- und Contentmanagement 22 XML und Datenbanken Exkurs: Information Retrieval 2/4 Anwendung z.B. in Suchmaschinen, dabei spezielle Anforderungen (Textformate, Versionen, Dokumentstrukturen, ...) Bibliotheken: Volltext- und Metasuche Dr. Roman Schneider Modul Wissens- und Contentmanagement 23 XML und Datenbanken Exkurs: Information Retrieval 3/4 Volltextindizierung = grundlegende Technologie im Information Retrieval 1 Eingesetzt bei der Erschließung von Textdokumenten, Produktkatalogen, oder in Suchmaschinen. 3 Generell überall hinter solchen Feldern: 2 4 Dr. Roman Schneider Modul Wissens- und Contentmanagement 24 XML und Datenbanken Exkurs: Information Retrieval 4/4 Situation: Man sucht Dokumente (html, doc, pdf, ps, etc.), in denen die in der Suche angegebenen Begriffe auftauchen. Keine semantische Suche: Computer „versteht“ die Texte nicht, man kann also nur danach suchen, welche Wörter in den Texten vorkommen, wie oft, in welchem Zusammenhang... Wie funktioniert (inhaltsbasierte) Suche in solchen Dokumenten? Dokument mit Markup: <a href=„kuehlung.html“> Kühlschränke</a> ... Airflow-System ... Energieverbrauch ... Watt ... Kühlung => Deskribierung & Indizierung Dr. Roman Schneider Modul Wissens- und Contentmanagement 25 XML und Datenbanken Inhaltsbasierte Suche in Volltexten umfasst: Recherche Suche von Textdokumenten nach Vorgabe von Dokumentdeskriptoren Index Präsentation Deskribierung manuelle und automatische Verfahren zur Anreicherung des strukturierten Textes mit Deskriptoren Dr. Roman Schneider Bewertung und Ordnung der gefundenen Dokumente nach ihrer Güte Ranking, Relevance Feedback Modul Wissens- und Contentmanagement 26 XML und Datenbanken Deskribierung Recherche Suche von Textdokumenten nach Vorgabe von Dokumentdeskriptoren Index Präsentation Deskribierung manuelle und automatische Verfahren zur Anreicherung des strukturierten Textes mit Deskriptoren Bewertung und Ordnung der gefundenen Dokumente nach ihrer Güte Ranking, Relevance Feedback => Indexbildung! Dr. Roman Schneider Modul Wissens- und Contentmanagement 27 XML und Datenbanken Indexbildung 1/4 Suchmaschinen für das WWW nutzen indizierte Webdokumente. Information-Retrieval-Systeme und Datenbanksysteme führen ebenfalls eine Indexbildung nach der Speicherung von Dokumenten durch. Ggf. verschiedene Formate (HTML, PDF, Text, ...)! Vor der Indexbildung muss bereits feststehen: – welche Arten von Informationen angefragt werden – wie die Anfragen aussehen (Einwort, Mehrwort, Phrasen, ...) Anfragen sind zeitkritisch, Indexbildung nicht! Dr. Roman Schneider Modul Wissens- und Contentmanagement 28 XML und Datenbanken Indexbildung 2/4 aus den Dokumenten werden die relevanten Textwörter (!) extrahiert und ggf. aufbereitet, nur diese fließen in den Index ein <a href=„kuehlung.html“> Kühlschränke</a> ... Airflow-System ... Energieverbrauch ... Watt ... Kühlung Kühlschränke Airflow-System Kühlung, 2* Watt Energieverbrauch Lemmabildung, Umlaute, … Dr. Roman Schneider Modul Wissens- und Contentmanagement 29 XML und Datenbanken Indexbildung 3/4 Implementierung als invertierte Liste Dokumente Stichworte 1 A D F 2 B C D 3 A C D Stichworte Dokumente E Bestimmung der Stichworte der Dokumente A B C D E F 1 2 2 1 3 1 3 3 2 3 Invertierte Speicherung der Stichworte und der zugehörigen Dokumente • verschiedene Optimierungen der Indexstrukturen (B-Tree, Bitmap-Index etc.) • Anfragen sind zeitkritisch, die Indexbildung weniger: Ziel sind effiziente Zugriffe! Dr. Roman Schneider Modul Wissens- und Contentmanagement 30 XML und Datenbanken Indexbildung 4/4 Verfahren zur Deskribierung (Anreicherung um Deskriptoren) statistische, wortbasierte Verfahren – Häufigkeit von Wörtern auswerten linguistische Verfahren – Stammwortreduktion (Lemmabildung) – Phonetische Ähnlichkeit (Soundex) Deskribierung Index – Ähnliche Schreibung (fuzzy) – Erkennen von Satzzusammenhängen (Thema-Rhema, Folgerungen, ...) wissensbasierte Verfahren – Klassifikationen, Thesauri, Wortnetze, Ontologien Dr. Roman Schneider Modul Wissens- und Contentmanagement 31 XML und Datenbanken Häufigkeit der Wörter berücksichtigen 1/2 Stoppwortliste eliminiert häufige Worte (z.B. Funktionswörter) – diese würden sehr viele Einträge im Index bewirken, sind aber für die Recherche zumeist ungeeignet – 10 häufigste Wörter im Deutschen laut Wikipedia: • der, die, und, in, den, von, zu, das, mit, sich Vgl.: DeReWo – Korpusbasierte Grund-/Wortformenlisten http://www.ids-mannheim.de/kl/projekte/methoden/derewo.html sehr seltene Begriffe werden gestrichen – haben zwar die höchste Selektivität, würden die Anzahl der Begriffe im Index unverhältnismäßig erhöhen und sind für die Recherche oft zu speziell – Beispiele: • kennte • Külschrank • Kuhlschrank • Mogelpower Dr. Roman Schneider Modul Wissens- und Contentmanagement 32 XML und Datenbanken Häufigkeit der Wörter berücksichtigen 2/2 Zipf´sches Gesetz Häufigkeit Rang* * Sortierung der Terme nach abfallender Häufigkeit zu seltene Terme zu häufige Terme Diskriminationskraft der Terme (nach George Kingsley Zipf, 1902-1950) Produkt aus Rang und Frequenz ist stabil Salton / McGill, 1983 Begriffe mit mittlerer Häufigkeit eignen sich am besten zur Unterscheidung abnehmende Worthäufigkeit Stoppwortliste Dr. Roman Schneider Eliminierung seltener Begriffe Modul Wissens- und Contentmanagement 33 XML und Datenbanken Bildung eines linguistischen Indexes 1/2 Motivation: Begriffsuche soll auch Deklinationen (Beugung von Substantiven / Adjektiven) bzw. Konjugationen (Beugung von Verben) einbeziehen. Beispiele: – bei Eingabe des Suchbegriffes „Kühlschrank“ sollen auch Dokumente mit dem Begriff „Kühlschränke“ gefunden werden – bei der Suche nach „fehlschlagen“ soll auch „fehlschlug“ und „fehlgeschlagen“ gefunden werden Ergänzend zum exakten Begriff wird die Grundform der Textwörter gespeichert Außerdem evtl.: phonetische Ähnlichkeit oder ähnliche Schreibungen beachten Ziele: – Zusammenführung sprachlich zusammengehöriger Textwörter zu einem Eintrag – dadurch Verkleinerung der invertierten Listen Dr. Roman Schneider Modul Wissens- und Contentmanagement 34 XML und Datenbanken Bildung eines linguistischen Indexes 2/2 Verfahren: – Wortnormalisierung (Groß- und Kleinschreibung, Umlaute) – Wortdekomposition (besonders für deutsche Sprache wichtig) • Komposita (zusammengesetzte Begriffe) werden auseinandergenommen, • Beispiele: – Haupt-bahnhof, Ost-bahnhof (Hauptbahn-hof?) – Einzel-zimmer, Doppel-zimmer, Zweibett-zimmer – Stammformreduktion (Verfahren zur Bestimmung der Grundformen) durch: • Regeln (sprachabhängige Verfahren mit untersch. Güte) oder • Wörterbücher (besonders für Sprachen mit vielen Unregelmäßigkeiten) • Abkürzungen auflösen? Dr. Roman Schneider Modul Wissens- und Contentmanagement 35 XML und Datenbanken Recherche Recherche Index Suche von Textdokumenten nach Vorgabe von Dokumentdeskriptoren Präsentation Deskribierung manuelle und automatische Verfahren zur Anreicherung des strukturierten Textes mit Deskriptoren Dr. Roman Schneider Bewertung und Ordnung der gefundenen Dokumente nach ihrer Güte Ranking, Relevance Feedback Modul Wissens- und Contentmanagement 36 XML und Datenbanken Verfahren zur Recherche Häufigste Retrievalmodelle: - Boolesches Retrieval Recherche - Vektorraummodell - probabilistisches Modell Dr. Roman Schneider Modul Wissens- und Contentmanagement 37 XML und Datenbanken Boolesches Retrieval 1/2 Dokumente werden als Wort-Mengen modelliert Abfrage-Grundbaustein: Paar aus Attribut & Attributwert verknüpft durch: and, or, not exakt, logisch klar, einfach programmierbar Suchmaschinen-Statistiken weisen aus, dass Anfragen durchschnittlich 1,7 Wörter enthalten Nachteile: relativ geringe Möglichkeiten, komplexere Anfragen (präzise) zu formulieren, evtl. Abfragesprachen mit Klammerung etc. Häufigkeit und Relevanz der Terme bleiben unberücksichtigt Boolesches Retrieval erlaubt kein Ranking (Ergebnis 0 oder 1), dieses wird ggf. nachträglich in einem zweiten Schritt ermittelt Dr. Roman Schneider Modul Wissens- und Contentmanagement 38 XML und Datenbanken Boolesches Retrieval 2/2 Dr. Roman Schneider Modul Wissens- und Contentmanagement 39 XML und Datenbanken Vektorraummodell 1/2 Dokumente und Anfragen werden nicht als Wortmengen, sondern als Vektoren (mit Länge und Richtung) betrachtet Abbildung auf jeweils genau einen Eintrag im Vektorraum (hochdimensional in Abhängigkeit von Zahl der indizierten Terme) Merkmalsgewichtungsmodelle berücksichtigen die Häufigkeit von Textwörtern, Lemmata oder n-Grammen Reihenfolge der Wörter wird ignoriert (“bag of words”) d1 = ( 1 , 3 , 3 , 0 , 0 ) d2 = ( 0 , 2 , 1 , 0 , 1 ) d3 = ( 1 , 0 , 0 , 1 , 0 ) d4 = ( 0 , 4 , 2 , 7 , 0 ) d5 = ( 0 , 0 , 1 , 1 , 1 ) q = query Dr. Roman Schneider Modul Wissens- und Contentmanagement 40 XML und Datenbanken Vektorraummodell 2/2 mit einem Ähnlichkeitsmaß (Vektordistanz) werden zu einer AnfrageVektor die ähnlichsten Dokumenten-Vektoren ermittelt es gibt zahlreiche Ähnlichkeitsmaße Vagheit von Anfragen wird berücksichtigt ("best match"-Prinzip, d. h. es erfolgt ein Ranking der Dokumente nach der Wahrscheinlichkeit in wieweit ein Dokument auf die Anfrage zutrifft) Ergebnis der Ähnlichkeitsfunktion kann für das Ranking verwendet werden Relevance-Feedback Dr. Roman Schneider Modul Wissens- und Contentmanagement 41 XML und Datenbanken Probabilistisches Modell Ermittlung der Wahrscheinlichkeit, ob ein Dokument für die Suchanfrage relevant ist Hauptkriterium: Häufigkeiten (Suchterm, Terme in Dokument, ...) Terme der Anfrage können gewichtet werden, damit hat der Benutzer die Möglichkeit, wichtigere und unwichtigere Teile einer Anfrage explizit zu spezifizieren Wörter des Dokumentes werden ebenfalls gewichtet – manuelle Verfahren: für Indizierende stellt die Angabe solcher Wahrscheinlichkeiten eine schwierige Aufgabe dar – automatische Verfahren: verwenden Worthäufigkeiten, Dokumentgröße, Position des Worts im Dokument (Überschrift?), .. Dr. Roman Schneider Modul Wissens- und Contentmanagement 42 XML und Datenbanken Übersicht der Retrievalmodelle Boolesches Modell Vektorraummodell Probabilistisches Modell Gewichtung Ja Ja Ranking Ja Ja Vektordistanz Häufigkeit der Begriffe Boolesche Verknüpfungen Kriterium der Übereinstimmung Alleinstellungsmerkmal Dr. Roman Schneider Ja Vorhandensein der Begriffe Relevance Feedback Modul Wissens- und Contentmanagement 43 XML und Datenbanken Präsentation Recherche Suche von Textdokumenten nach Vorgabe von Dokumentdeskriptoren Präsentation Deskribierung manuelle und automatische Verfahren zur Anreicherung des strukturierten Textes mit Deskriptoren Dr. Roman Schneider Index Bewertung und Ordnung der gefundenen Dokumente nach ihrer Güte Ranking, Relevance Feedback Modul Wissens- und Contentmanagement 44 XML und Datenbanken Präsentation Ranking: Bestimmung, in welcher Reihenfolge die ermittelten Ergebnisse präsentiert werden. Grundlegende Maße (kombinierbar): Häufigkeit des Suchterms im Dokument Anzahl der verschiedenen Suchterme eines Dokumentes Anzahl der Dokumente, in denen der Suchterm auftritt Dokumentgröße Recherche Index Bewertung Relevance Feedback: Dialog mit dem Benutzer Klassifizierung von relevanten und nicht relevanten Dokumenten anschließend nochmalige Ergebnisermittlung. Dr. Roman Schneider Modul Wissens- und Contentmanagement 45 XML und Datenbanken Anwendung von Volltextsuchen auf XML-Dokumente Volltext-Index bekannte Methode (älter als relationale Datenbanken) Verfahren aus dem Bereich der Dokumentverarbeitung Problem: wie soll mit Bezeichnern von XML-Elementtypen/-Attributtypen umgegangen werden? Begriff Verweis hotel Warnemünde Rostock ort anreisebeschreibung <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> => Volltextindex plus XML-Index! Dr. Roman Schneider Modul Wissens- und Contentmanagement 46 XML und Datenbanken Speicherung von XML-Instanzen Speicherung als Ganzes Volltextindex Dr. Roman Schneider Speicherung der Dokumentstruktur strukturierte Speicherung in Datenbanken Volltext- und XML-Index Modul Wissens- und Contentmanagement 47 XML und Datenbanken Volltext- und XML-Index 1/3 - XML-Markup kann für Anfragen auswertbar gemacht werden - Strukturinformationen sollten im (separaten XML-) Index erkennbar sein => Formulierung von Abfragen? Dr. Roman Schneider Modul Wissens- und Contentmanagement 48 XML und Datenbanken Volltext- und XML-Index 2/3 /hotel/adresse/ort/text()=“Warnemünde“ Dr. Roman Schneider Modul Wissens- und Contentmanagement Einsatz von XPath und XQuery möglich. Anfragen, die das gesamte Dokument als Ergebnis liefern sollen, lassen sich einfach bedienen. Andernfalls muss das Dokument geparst und das Ergebnis daraus generiert werden. 49 XML und Datenbanken Volltext- und XML-Index 3/3 Schemabeschreibung Nicht zwingend erforderlich Dokumentrekonstruktion XML-Dokumente bleiben im Original erhalten Anfragen Anfragen des Information Retrieval Volltextanfragen XML-Anfragen / Auswertung des Markups Updates Austausch kompletter XML-Dokumente Anwendungen dokumentzentriertes / semistrukturiertes XML Dr. Roman Schneider Modul Wissens- und Contentmanagement 50 XML und Datenbanken Speicherung von XML-Instanzen Speicherung als Ganzes Speicherung der Dokumentstruktur (einfache) Abbildung der Graphstruktur strukturierte Speicherung in Datenbanken Speicherung der Informationen des DOM Umfeld SemWeb / NoSQL: AllegroGraph Neo4j Universitäre Prototypen Dr. Roman Schneider Modul Wissens- und Contentmanagement 51 XML und Datenbanken Speicherung der Graphstruktur 1/4 : Element <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> Typ Wert Ordnung hotel 1 adresse 2 plz int 18119 1 ort string Warnemünde 2 strasse string Seestrasse 3 Vorgänger „numbering scheme“ Attribute: Element Attribut Typ Wert url string www... autor string Müller • generische Abbildung der Struktur der XML-Instanz • Verwendung von Knoten/Properties zur Speicherung von Elementen/Attributen • Verwendung von Kanten für Beziehungen zwischen Knoten • werden mehrere XML-Instanzen gespeichert: Instanz-ID ergänzen! Dr. Roman Schneider Modul Wissens- und Contentmanagement 52 XML und Datenbanken Speicherung der Graphstruktur 2/4 Umsetzung der Speicherung von Elementen & Attributen: Elemente: XML-ID 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 (auch ohne DTD) möglich GraphenDBs: Knoten/Kanten anstatt relationalen Tabellen/Fremdschlüsseln Dr. Roman Schneider Modul Wissens- und Contentmanagement 53 XML und Datenbanken Speicherung der Graphstruktur 3/4 XML-Anfragen sind möglich, werden intern auf Datenbank-Anfragen (unter Berücksichtigung der Speicherstruktur) umgesetzt => zumeist SQL oder spezielle Abfragesprachen wie SPARQL (=>RDF) oder Gremlin (OpenSource-Graphen-Programmiersprache) XMLAnfragen SQL Ergebnis der XML-Anfrage wird ggf. aus Ergebnis der DB-Anfrage generiert. für einfache Anfragen gut verwendbar aber: Traversieren komplexer Anfragen über zwei oder mehr Knoten problematisch („teuer“) - insbesondere bei großen Datenvolumen! Dr. Roman Schneider Modul Wissens- und Contentmanagement 54 XML und Datenbanken Speicherung der Graphstruktur 4/4 Konkretes SQL durch Speicherstruktur bestimmt: Beispiel: DocID Element (Hotels in Warnemünde) d0001 hotel d0001 adresse d0001 select a.wert from Elemente a, Elemente b where (a.element='hotel') and (b.element='ort') and (b.wert='Warnemünde') and (a.DocID=b.DocID) Dr. Roman Schneider Typ Wert plz int 18119 d0001 ort string Warnemünde d0001 strasse string Seestrasse Modul Wissens- und Contentmanagement Vorgänger 55 XML und Datenbanken Speicherung von XML-Instanzen Speicherung als Ganzes Speicherung der Dokumentstruktur (einfache) Abbildung der Graphstruktur strukturierte Speicherung in Datenbanken Speicherung der Informationen des DOM Excelon Berkeley-DB XML Infonyte-DB Dr. Roman Schneider Modul Wissens- und Contentmanagement 56 XML und Datenbanken Speicherung basierend auf DOM 1/4 DOMImplementation Informationen des Document Object Models (DOM) bilden das Schema für die Speicherung Node NodeList NamedNodeMap Attr CharacterData Comment Text CDataSection Verwendung relationaler oder objekt-orientierter Datenbanken oder Entwicklung eigener Speicherungsstrukturen Dr. Roman Schneider Document DocumentFragment DocumentType Element Entity EntityReference Notation ProcessingInstruction Modul Wissens- und Contentmanagement 57 XML und Datenbanken Speicherung basierend auf DOM 2/4 XML-Beispiel von w3schools.com Dr. Roman Schneider Modul Wissens- und Contentmanagement 58 XML und Datenbanken Speicherung basierend auf DOM 3/4 Infonyte-DB verwendet zur Speicherung von XML-Dokumenten ein persistentes Document Object Model (PDOM) baut nicht auf existierende DBMS auf, sondern entwickelt Komponenten zur physischen Speicherung, die an die XML-Dokumente optimal angepasst sind Anfragesprache: Richtung XQuery 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 gespeichert. Berkeley DB XML Generische Speicherung, Anfragen via XPath, XQuery Dr. Roman Schneider Modul Wissens- und Contentmanagement 59 XML und Datenbanken Speicherung basierend auf DOM 4/4 XMLAnfragen SQL DOM-Methoden (getChildren(), hasChild(), ...) XML-Anfragen (XQuery / XPath) Dr. Roman Schneider Angepasste Datenbankanfragen (unter Kenntnis der Speicherungsstruktur) Modul Wissens- und Contentmanagement 60 XML und Datenbanken Speicherung von XML-Instanzen Speicherung als Ganzes Speicherung der Dokumentstruktur strukturierte Speicherung in Datenbanken Vollständiges (+automatisches) Mapping Dr. Roman Schneider Modul Wissens- und Contentmanagement Benutzerdefiniertes Mapping 61 XML und Datenbanken Automatisierte strukturierte Speicherung in Datenbanken 1/8 Ansatz: Abbildung der XML-Struktur auf Struktur (relationaler oder objektorientierter) Datenbanken - DTD oder XML-Schema (besser wg. Datentypen!) ist erforderlich - typgerechte Speicherung einzelner Element-/Attributtypen - Kodierung von hierarchischen Informationen - gut abbildbar: Sequenzen von Elementen, Attribute - schlecht abbildbar: mixed content Objekttypen vs. strenge Relationierung Dr. Roman Schneider Modul Wissens- und Contentmanagement 62 XML und Datenbanken Automatisierte strukturierte Speicherung in Datenbanken 2/8 Regeln zur Erzeugung des Datenbankschemas aus einer DTD: XML-Element wird Attribut (Spalte) einer Relation (Tabelle) Element mit Quantifizierer ? wird Attribut mit Nullwerten Zusätzliche Relation für Element mit Quantifizierer * oder + ... XML-Attribute: XML-Attribut IMPLIED REQUIRED Defaultwert Dr. Roman Schneider Attribut einer Relation Nullwert erlaubt Nullwert nicht erlaubt (NOT NULL) Defaultwert Modul Wissens- und Contentmanagement 63 XML und Datenbanken Automatisierte strukturierte Speicherung in Datenbanken 3/8 Informix-Syntax: Beispiel: <!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 zus. Relation? (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 ...); => Wie legt man die Datentypen fest ?! book: isbn front title author first Dr. Roman Schneider second body edition references publisher e-mail Modul Wissens- und Contentmanagement 64 XML und Datenbanken Automatisierte strukturierte Speicherung in Datenbanken 4/8 Überführung in (objekt-)relationales Schema 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> Dr. Roman Schneider Modul Wissens- und Contentmanagement 65 XML und Datenbanken Automatisierte strukturierte Speicherung in Datenbanken 5/8 Problemfälle bei der Abbildung: (1) Alternative Elemente Beispiel: <!ELEMENT unterkunft (hotel | pension | campingplatz)*> Generell sind drei Speicherungsvarianten möglich: alle Alternativen in einer Relation vorsehen (aber: viele Nullwerte!) Aufspaltung in separate Relationen (Performanz?) 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> Dr. Roman Schneider Modul Wissens- und Contentmanagement 66 XML und Datenbanken Automatisierte strukturierte Speicherung in Datenbanken 6/8 Problemfälle bei der Abbildung: (2) Rekursionen (in DTDs) Beispiel: <!ELEMENT publications (book | article | conference)*> <!ELEMENT book (front, body, references)> <!ELEMENT references (publications+)> Vorgehensweise: – Markieren der Knoten – Aufspaltung in separate Relationen – Verwendung von Referenzen (primary/foreign key) book references public. book ... Dr. Roman Schneider Modul Wissens- und Contentmanagement ID book references 67 XML und Datenbanken Automatisierte strukturierte Speicherung in Datenbanken 7/8 Problemfälle bei der Abbildung: (3) 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: Problematische Abbildung in Relationen! Angemessener: XML-Datentyp Bahn per Bahn: 1 km ab Bahnhof Warnemünde 2 per Auto: 19 km ab Autobahn A19 Rostock—Berlin 3 4 Auto Sie finden uns direkt an der Uferpromenade. Dr. Roman Schneider Modul Wissens- und Contentmanagement 68 XML und Datenbanken Automatisierte strukturierte Speicherung in Datenbanken 8/8 Zusammenfassung der automatisierten strukturierten Abbildung Vorteile: bei der Speicherung strukturierter Daten Bietet SQL-Anfragen, Datentypen, Aggregatfunktionen, Sichten Einfache Integration in andere Datenbanken Nachteile: bei der Speicherung semi- und unstrukturierter Daten großes Schema, schwach gefüllte Datenbanken, viele Nullwerte Speicherung von Alternativen problematisch keine Volltextoperationen möglich Deshalb besser benutzerdefinierte, flexible Abbildung? Dr. Roman Schneider Modul Wissens- und Contentmanagement 69 XML und Datenbanken Speicherung von XML-Instanzen Speicherung als Ganzes Speicherung der Dokumentstruktur strukturierte Speicherung in Datenbanken Vollständiges (+automatisches) Mapping Dr. Roman Schneider Modul Wissens- und Contentmanagement Benutzerdefiniertes Mapping 70 XML und Datenbanken Benutzerdefiniertes Mapping 1/5 Bei allen bisherigen Methoden konnte die Art der Speicherung nicht beeinflusst werden Oft praktikabler: flexible Methode Mappingvorschrift wird dabei durch den Benutzer spezifiziert Struktur der XML-Instanzen und das Datenbankschema können unabhängig voneinander entworfen werden (und relativ autonom gepflegt werden) Nebeneffekt: Ermöglicht Speicherung von XML-Dokumenten in bereits existierenden Datenbanken Dr. Roman Schneider Modul Wissens- und Contentmanagement 71 XML und Datenbanken Benutzerdefiniertes Mapping 2/5 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 Hotel_URL Name www.hotel-huebner.de Hotel Hübner Einzelzimmer 198 XML-Segmente können auch ignoriert werden => kleinere Datenbasis Dr. Roman Schneider Modul Wissens- und Contentmanagement 72 XML und Datenbanken Benutzerdefiniertes Mapping 3/5 Kodierung der Mapping-Regeln; Beispiel nach Ronald Bourret: <ClassMap> <ElementType Name="hotel"/> <ToClassTable> <Table Name="Hotelpreise"/> </ToClassTable> <PropertyMap> <Attribute Name="url"/> <ToColumn> <Column Name="Hotel_URL"/> </ToColumn> </PropertyMap> ... </ClassMap> Dr. Roman Schneider Modul Wissens- und Contentmanagement Verbindung zwischen XML-Elementen und Datenbank-Relationen (Tabellen) Verbindung zwischen XML-Elementen/ -Attributen und Datenbank-Attributen (Spalten) 73 XML und Datenbanken Benutzerdefiniertes Mapping 4/5 Schemabeschreibung Erforderlich für Generierung der Speicherstrukturen Dokumentrekonstruktion Nur möglich bei vollständiger Abbildung sowie Protokollierung des Abbildungsprozesses Updates Als Datenbankupdates realisierbar Updates, die Strukturen verändern, bewirken Datenbankevolution! Weitere Besonderheiten Dr. Roman Schneider Integration in bestehende DB möglich XML-Instanzen und DB voneinander unabhängig Modul Wissens- und Contentmanagement 74 XML und Datenbanken Benutzerdefiniertes Mapping 5/5 IBM DB2 XML-Extender Aufsplitten von XML-Dokumenten ins relationale Datenbanksystem DB2 über eine Mappingvorschrift (DAD - Data Access Definition) wird angegeben, wie die Zuordnung von Elementen und Attributen einer XML-Instanz auf die Attribute der Datenbank erfolgen soll. Die Syntax der DAD-Dateien ist XML Oracle RDBMS • • • objektrelationale Speicherung / Datentyp XMLType Art der Speicherung wird durch ein annotiertes XML-Schema beschrieben, dieses enthält eine Zuordnung von Datenbankinformationen zu den XML-Bestandteilen dadurch benutzerdefinierte Speicherung möglich Microsoft SQL-Server anwenderdefiniertes Mapping durch annotiertes Schema Annotationen bestimmen die Zuordnung von Elementen und Attributen zu Datenbankrelationen und Datenbankattributen Dr. Roman Schneider Modul Wissens- und Contentmanagement 75 XML und Datenbanken Zusammenfassung: Speicherung von XML-Instanzen 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 dokumentzentrierte XML-Dokumente Für semistrukturierte XML-Dokumente Für datenzentrierte XML-Dokumente Dr. Roman Schneider Modul Wissens- und Contentmanagement 76 XML und Datenbanken Native Speicherung 1/2 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 Modellbasierte native Speicherung Also: kein Mapping des XML-Formats, sondern direktes Speichern des XML-Dokuments. Abgrenzung von XML-enabled DBMS schwierig! Dr. Roman Schneider Modul Wissens- und Contentmanagement 77 XML und Datenbanken Native Speicherung 2/2 Produkte Open Source, größtenteils plattformunabhängig: BaseX (Version 2013: 7.7.2) eXist (Version 2013: 2.1) MonetDB (Version 2013: 11.15) Sedna (Version 2013: 3.5) zeen-dee-chay Apache Xindice (bis 2011: Version 1.2 ) Kommerziell: Tamino (Software AG) Dr. Roman Schneider Modul Wissens- und Contentmanagement 78 XML und Datenbanken Zusammenfassung XML und Datenbanken – Vielzahl von Verfahren und Techniken existieren nebeneinander – oft aus den Bereichen Datenbanken und Text/Dokumentverarbeitung – generell: es gibt keine „beste Lösung“ für alle XMLDokumente, geeignetste Lösung ist abhängig von konkreten Projekterfordernissen Dr. Roman Schneider Modul Wissens- und Contentmanagement 79