Datenbanken und XML: Mappingansätze und integrierte Speicherverfahren PD Dr.-Ing. habil. Meike Klettke Universität Rostock Institut für Informatik 2. November 2011 Motivation XML als Format zur Dokumentdarstellung existiert seit 13 Jahren als Schlagwort sehr populär (gewesen) mittlerweile gibt es viele Anwendungen, die XML-Dokumente erzeugen oder verwenden Hauptanwendung: Austauschformat (auch EAD so eingesetzt) In einigen Anwendungen ist eine dauerhafte Speicherung notwendig (auch für EAD-Dokumente) Eigene Systeme zur Speicherung (native XML-Datenbanksysteme) Herkömmliche (relationale) Datenbanksysteme wurde erweitert, um XML-Dokumente verarbeiten zu können ... zur Popularität von XML ... „XML is the ASCII of the 21th century.“ „XML is the ASCII of the Web“ (Henry Thompson, 1999) It takes ten minutes to understand (base) XML, and then ten month to understand the new technologies hung around it. (Peter Chen) warum wurde XML so populär? einfach zu verstehen, leicht zu erlernen (Syntax von XML-Dokumenten) lesbar, selbstbeschreibend damit prädestiniert als Austauschformat ... im Vortrag heute ... Erweiterungen von Datenbankmanagementsystemen, um XMLDokumente zu speichern, anzufragen und zu verändern, dazu 1. Klassifikation von Speicherungsverfahren 1. 2. 3. 2. 3. Speicherung der Graphstruktur strukturierte Speicherung in Datenbanken Hybride Verfahren Realisierung in objekt-relationalen Datenbanksystemen (Oracle) Erfahrungen mit generischer Speicherung (EAV) 1) Klassifikation von XML-Dokumenten Datenzentrierte Dokumente strukturiert, regulär Beispiele: Produktkataloge, Bestellungen, Rechnungen, Metadaten im Bibliothekswesen, ~ von Archiven Dokumentzentrierte Dokumente unstrukturiert, irregulär Beispiele: wissenschaftliche Artikel, Bücher, E-Mails, Webseiten, Dokumente in Archiven Semistrukturierte Dokumente daten- und dokumentzentrierte Anteile Beispiele: Veröffentlichungen, Kundendaten und Originalverträge, ... <book> <author>Neil Bradley</author> <title>XML companion</title> <isbn>1-234-56789-0</isbn> </book> <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> 2) Anforderungen an die XML-Speicherung Nach (Fiebig, Kanne, Moerkotte) Effektive Speicherung Effizienter Zugriff auf XML-Dokumente oder Teile davon Unterstützung von XPath und XQuery Unterstützung von SAX und DOM für Anwendungen Transaktionsverwaltung Wiederherstellbarkeit der Dokumente (oder der Informationen aus den Dokumenten) 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 I) Speicherung als Ganzes und Volltextindizierung Term Element nachricht autor nachname Fürst vorname Christian inhalt ueberschrift Vermarktungsfest text Wolfgang … <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> • bekannte Methode (älter als relationale Datenbanken) • Verfahren aus dem Bereich Information Retrieval • Anfragen können linguistische Merkmale nutzen (Stammwortsuche, Ähnlichkeitssuche) • keine Auswertung von Markup in den Anfragen Erweiterung um Pfadindex 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 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> • damit Auswertung von Markup in den Anfragen möglich • XPath, XQuery II) Speicherung der Graphstruktur / 1 <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 Element n001 Wert Ordnung Vorgänger nachricht 1 - n002 autor 1 h001 n003 nachname Fürst 2 h001 n004 vorname Christian 1 H002 n005 agentur dpa 2 H002 n006 e-mail fuerst@dpa .de 3 h002 Element Attribut Typ Wert n001 id xs:ID ID0001 n001 bedeutung xs:int 4 n002 autor_id xs:ID A0001 • generische Speicherung der XML-Dokumente • kein Schema erforderlich • ähnlich „Tripelstore“ III) strukturierte Speicherung in (relationalen) Datenbanken Änderung des Datenbankschemas 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> id bedeutung autor inhalt ID0001 4 A0001 P0001 autor: ID autor_id nachname Vorname agentur e-mail x00001 A0001 Fürst Christian dpa fuerst@dpa. de inhalt: ID ueberschrift text y00001 Ein Vermarktungsfest Als Wolfgang Amadeus Mozart im Alter von 35 Jahren starb, .. • Abbildung der Struktur der XML-Dokumente auf Datenbankstruktur • Schema erforderlich !! • Problem bei der Abbildung: mixed content: Texte IV) Hybride Ansätze nachrichten: <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> für daten- als auch dokumentzentrierte Anteile Auswahl unterschiedlicher Speicherungsmethoden für verschiedene Dokumentanteile 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> aus dem Vortrag von heute: „Größere Datenbankfeundlichkeit: weniger mixed content“ Datenbanken können mittlerweile damit umgehen Realisierung in objektrelationalen Datenbanken verschiedene Speicherungsmöglichkeiten werden unterstützt: Speicherungsmöglichkeiten bei Oracle: Abbildung nach Ulrike Schwinn, Oracle DB2: Verwenden des XML-Typs XML als nativer Datentyp, kann einzelnen Attributen zugeordnet sein Beispiel (Oracle): create table nachrichten ( id integer not null primary key, titel varchar(30) not null, autor varchar(30) not null, datum date, agentur varchar(10), text XMLType, kontext XMLType ); also hybride Speicherung Werte einfügen insert into nachrichten values (1, 'Ein Vermarktungsfest', 'Christian Fürst', '2006‐12‐12', 'dpa', XMLType('<text>Als Wolfgang Amadeus Mozart im Alter von 35 Jahren starb, war er bettelarm. Jetzt, zu seinem 250. Geburtstag, zeigen insbesondere österreichische PR‐ Experten, wie man mit dem Namen des Salzburger Genies Millionen machen kann... </text>‚), XMLType('<einordnung> <ort> <land>Österreich</land> <stadt>Salzburg</stadt> <stadt>Wien</stadt> </ort> <zeit> ... </zeit> <rubrik>Festakte</rubrik> <kategorie>Mozart</kategorie> <kategorie>Musik</kategorie> <kategorie>Kultur</kategorie> </einordnung>')); Weiterhin möglich: XML-Schema in Oracle registrieren Beim Einfügen gegen das Schema validieren 3.2) Anfragen Anfragesprache für relationale: SQL Anfragesprache für XML-Dokumente: XQuery Anfragemöglichkeiten (Kombination dieser Anfragen): SQL SQL mit eingebettetem XQuery XQuery (XQuery mit eingebettetem SQL) Beispiel: SELECT autor, datum, agentur FROM nachrichten WHERE extractvalue(kontext, '/einordnung/kategorie') like ‘%Mozart%’; Bewertung Hybride Speicherung in Oracle möglich Relationale Speicherung für strukturierte Anteile XML Type für unstrukturierte Anteile (Volltexte mit Markup, …) Etabliert seit ca. 2006 in den Datenbanksystemen Intern als „nativer Datentyp“ dargestellt 22 Überblick über Mapping von XMLDokumenten Beschreibung des Mappings Gültigkeit ist gegeben EADSchema EAD-Dokumente ZielSchema Durchführung des Mappings (automatisch) XSLT, … Probleme: • nichtvalide XML-Dokumente • Verändertes Schema (neue Version) Ziel-XML-Dokumente Ein Tool dafür: Altova MapForce: Mappingtool • Geeignet zur Realisierung eines ersten Prototypen • Einfach bedienbar • Eigene Erweiterungen möglich • XSLT lässt sich generieren EAV-Speicherung, Tripel-Store Hochflexibles Format zur Speicherung Kann in relationalen Datenbanken, außerhalb oder in eigenen Systemen erfolgen Grundidee: 26 Auf Werteebene: Entity – Attribut – Value speichern Verlustfreie Speicherung jeden beliebigen Formates: Relationale Datenbanken, XML, excel, hierarchische Datenbanken Ineffizient für komplexe Anfragen. Grundidee der Speicherung 27 In der konkreten (relationalen) Umsetzung 28 Import in das EAV-Modell Vollständig automatisierbar Umgesetzt für XML (Anwendung in der Pflegeinformatik) von Dortje Löper 29 Export aus dem EAV-Modell Hier ist keine vollständige Automatisierung zu erreichen 30 Für bekannte Formate ist diese möglich Für neue Formate (neue Versionen) müssen die Transformationsregeln angepasst werden Einige Performancemessungen Präprozess (Connection herstellen, ..) Umsetzung der Query Postprozess (resultset durchlaufen) 10 Dokumente 478-488 ms 15-18 ms 3-5 ms 100 Dokumente 451-566 ms 18-29 ms 2693-2987 ms • Dieser Anteil ist unabhängig von der Query 31 • Resultset beinhaltete 39584 Tupel • Nacheinander ausgelesen (noch nicht optimiert!) Bewertung, Tripelstore Hochflexibel Nicht nur für verschiedene Schemata sondern zum Beispiel auch für verschiedene Datenformate Erweiterbar (für beliebige zukünftige Versionen) Einfache Anfragen, die wenige Attribute betreffen, (z.B. Suchanfragen) gut realisierbar Komplexe Anfragen (z.B. Wiederherstellung der Originaldaten) sind sehr aufwendig) Verschiedene Implementierungen Überlegung: wie viele Datenbankeigenschaften werden benötigt 33 Literatur /1 www.ibm.com Matthias Nicola, Fatma Ozcan: pureXML in DB2 9: Which way to query your XML data? http://www.ibm.com/developerworks/db2/library/techarticle/dm0606nicola/, Juni 2006 Holger Seubert: XML-Indizierung, Update und Schema-Verwaltung mit DB2 9, http://entwickler.de/zonen/portale/psecom,id,101,online,1037,p,0.html www.oracle.com Ulrike Schwinn (Oracle): XML in der Oracle Datenbank „relational and beyond“, BTW 2003 Meike Klettke, Holger Meyer, XML and databases, dpunkt.verlag, 2003 Meike Klettke, Holger Meyer: http://www.xml-und-datenbanken.de Literatur /2 Igor Tatarinov, Zachary G. Ives, Alon Y. Halevy, Daniel S. Weld, Updating XML, Proceedings of the ACM SIGMOD International Conference on Management of Data, 2001 (Syntax einer Updatesprache, basierend auf XQuery) Patrick Lehti: Design and Implementation of a Data Manipulation Processor for an XML Query Language, DA, TU Darmstadt, 2001 Hong Su, Diane K. Kramer, Elke A. Rundensteiner, XEM: XML Evolution Management, Computer Science Technical Report Series, Worchester Polytechnic Institute, WPI-CS-TR-02-09 Béatrice Bouchou, Denio Duarte, Mírian Halfeld Ferrari Alves, Dominique Laurent and Martin Musicante: Schema Evolution for XML: A Consistencypreserving Approach. 29th International Symposium, Mathematical Foundations of Computer Science MFCS 2004 Literatur /3 Meike Klettke, Holger Meyer, Birger Hänsel: Evolution --- The Other Side of the XML Update Coin. 2nd International Workshop on XML Schema and Data Management (XSDM), Tokyo, April 2005 Christian Will: Ableitung von Schemaevolutionsschritten aus XML-Updateoperationen, Studienarbeit, Fakultät für Informatik und Elektrotechnik, 2006 Oracle9i XML Database Developer's Guide - Oracle XML DB Release 2 (9.2), http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96620/xdb04cre.htm Dortje Löper, Meike Klettke, Ilvio Bruder, Andreas Heuer: Integrating Healthcare-related Information using the Entity-Attribute-Value Storage Model, eingereicht zur HIS 2012 Dortje Löper, Meike Klettke, Ilvio Bruder, Andreas Heuer: Das Entity-AttributeValue-Konzept als Speicherstruktur für die Informationsintegration in der ambulanten Pflege, in: GI Jahrestagung, Workshop "Datenmanagement und Interoperabilität im Gesundheitswesen", 2011