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 XML- Dokumente zu speichern, anzufragen und zu verändern, dazu 1. Klassifikation von Speicherungsverfahren 1. Speicherung der Graphstruktur 2. strukturierte Speicherung in Datenbanken 3. Hybride Verfahren 2. Realisierung in objekt-relationalen Datenbanksystemen (Oracle) 3. 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 nachricht autor nachname Fürst vorname Christian inhalt ueberschrift Vermarktungsfest text Wolfgang Element <nachricht id="id0001" bedeutung="4"> <autor autor_id="a0001"> <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> 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 Vorgänger nachricht 1 autor 1 nachname 1 vorname 2 inhalt 3 ueberschrift 1 text 2 <nachricht id="id0001" bedeutung="4"> <autor autor_id="a0001"> <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> 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>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 Element Wert Ordnung Vorgänger n001 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 Element Attribut Typ Wert n001 id xs:id ID0001 n001 bedeutung xs:int 4 n002 autor_id xs:id A0001 3 h002 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>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 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>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> 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: DB2: Abbildung nach Ulrike Schwinn, Oracle
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 XML- Dokumenten Beschreibung des Mappings Gültigkeit ist gegeben EAD- Schema Ziel- Schema EAD-Dokumente Durchführung des Mappings (automatisch) XSLT, Ziel-XML-Dokumente Probleme: nichtvalide XML-Dokumente Verändertes Schema (neue Version)
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: Auf Werteebene: Entity Attribut Value speichern Verlustfreie Speicherung jeden beliebigen Formates: Relationale Datenbanken, XML, excel, hierarchische Datenbanken Ineffizient für komplexe Anfragen. 26
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 Für bekannte Formate ist diese möglich Für neue Formate (neue Versionen) müssen die Transformationsregeln angepasst werden 30
Einige Performancemessungen Präprozess (Connection herstellen,..) Umsetzung der Query 10 Dokumente 478-488 ms 15-18 ms 3-5 ms Postprozess (resultset durchlaufen) 100 Dokumente 451-566 ms 18-29 ms 2693-2987 ms Dieser Anteil ist unabhängig von der Query Resultset beinhaltete 39584 Tupel Nacheinander ausgelesen (noch nicht optimiert!) 31
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/dm- 0606nicola/, 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, AlonY. 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-Attribute- Value-Konzept als Speicherstruktur für die Informationsintegration in der ambulanten Pflege, in: GI Jahrestagung, Workshop "Datenmanagement und Interoperabilität im Gesundheitswesen", 2011