Datenbanken und XML

Werbung
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
Herunterladen