28
Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

Embed Size (px)

Citation preview

Page 1: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

Strukturbasierte Abbildung von XML auf relationale

Datenbanken

XML & DatenbankenSS 2004

Marcel Keller

Page 2: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

Inhalt des Vortrags

• 1.Einführung in das Thema– 1.1 Motivation– 1.2 Art der zu speichernden Dokumente

• 2.Automatisches Mapping– 2.1. Prinzipielle Abbildungsvorschrift– 2.2. Anfragen – 2.3. Eigenschaften

• 3.Benutzerdefiniertes Mapping– 3.1. Abbildungsvorschrift– 3.2. Anfragen– 3.3. Eigenschaften

• 4. Was machen die Hersteller?– 4.1.Oracle 9i – 4.2. IBM DB2

Page 3: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

1.1.Motivation

Warum XML in DB speichern?

• Bewährte Datenbanktechnologie nutzen:– Transaktionsmanagement– Logging und Recovery– Synchronisation– Integritätsregeln– Anfrageoptimierung XML RDBS

Page 4: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

Einordnung der strukturbasierten Abbildung

BenutzerdefiniertesMapping

Textbasierte Abbildung

VollständigesAutomatisches

Mapping

Strukturbasierte Abbildung

Modellbasierte Abbildung

Speicherung von XML-

Dokumenten

•Klettke/Meyer

•Shanmugasundaram et al

•Deutsch/Fernandez/Suciu:STORED

•Bourret

•Oracle 9i XSU

•Bourret

•Deutsch/Fernandez/

Suciu:STORED

•IBM DB2 Extender

Page 5: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

1.2. Art der zu speichernden XML-Dokumente

• Abbildung auf DB-Struktur besonders geeignet für datenzentrierte XML- Dokumente

•Bei XML als Medium zum Datenaustausch zwischen Systemen sehr strukturierte Daten

•Beispiele: Übermittlung von Bestellungen, Produktdaten usw.

•Leichte Abbildung in relationales Schema möglich

•Gemischte Inhalte treten selten auf

•Reihenfolge von Geschwisterelementen spielt in der Regel keine Rolle

•Hierarchische Strukturen lassen sich auf mehrere Tabellen mit entsprechenden Fremdschlüsselbeziehungen abbilden

Page 6: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

2. Automatisches Mapping

• DTD,XML-Schema muss vorhanden sein

• Datenbankentwurf richtet sich nach Struktur der Dokumente

• automatische Abbildung eines Schemas von XML-Dokumenten auf Datenbankschema mit Hilfe einer Defaultmappingvorschrift

• Das Bedeutet:XML-Strukturen werden von allgemeingültigem, vom Schema unabhängigem, Konzept umgesetzt

• bildet ganzes XML-Dokument ab

Page 7: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

2.1. Prinzipielle Abbildungsvorschrift nachKlettke/Meyer

XML-Information Datenbank-Information

Element Wurzelelement Relation mit eindeutiger ID

Normales XML-Element Attribut einer Relation

Sequenz von Elementen Attribute einer Relation

Alternative von Elementen Attribute einer Relation

Element mit Quantifizierer ? Attribut einer Relation, Nullwerte möglich

Elemente mit Quantifizierer + oder *

Relation mit eindeutiger ID und Element ist Attribut der Relation

Komplex strukturiertes (geschachteltes) Element,also Element mit Subelementen

Relation mit eindeutiger ID wobei Subelemente Attribute der Relation

Attribut XML-Attribut Attribut einer Relation

#IMPLIED Nullwert erlaubt

#REQUIRED Nullwert nicht erlaubt

Defaultwert Defaultwert

Page 8: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

Anwendung der Vorschrift

<!ELEMENT hotel (hotelname, kategorie, adresse, telefon+, fax)>

<!ATTLIST hotel id ID #REQUIRED><!ELEMENT hotelname (#PCDATA)><!ELEMENT kategorie (#PCDATA)><!ELEMENT adresse (plz, ort, strasse, nummer)><!ELEMENT plz (#PCDATA)><!ELEMENT ort (#PCDATA)><!ELEMENT strasse (#PCDATA)><!ELEMENT nummer (#PCDATA)><!ELEMENT telefon (#PCDATA)><!ELEMENT fax (#PCDATA)>

CREATE TABLE Hotel ( ID INTEGER PRIMARY KEY, Hotelname VARCHAR(50) NOT NULL, Kategorie INTEGER NOT NULL, Adresse VARCHAR(5) NOT NULL, Telefon VARCHAR(5) NOT NULL, Fax VARCHAR(30) NOT NULL);

CREATE TABLE Adresse ( ID INTEGER PRIMARY KEY, Plz INTEGER NOT NULL, Ort VARCHAR(50) NOT NULL, Strasse VARCHAR(30) NOT NULL, Nummer INTEGER NOT NULL, FOREIGN KEY (ID) references Hotel (ID));

CREATE TABLE Telefon ( ID INTEGER NOT NULL, Telefon VARCHAR(30) NOT NULL, PRIMARY KEY (ID,Telefon), FOREIGN KEY (ID) references Hotel (ID));

Beispiel-DTD:

Datenbankentwurf:

Page 9: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

Relationenschema für die DTD

ID Hotelname Kategorie Fax

1 Hotel Hübner 1 0381-543444

ID PLZ Ort Strasse Nummer

1 18119 Warnemünde Seestraße 12

ID Telefon

1 0381-54340

1 0381-540

Hotel

Adresse

Telefon

Page 10: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

Abbildung von Alternativen• Elementnamen werden zu Attributnamen einer Relation• Problem: Viele Nullwerte in der Tabelle (Speicherplatzverschwendung)

•Beispiel:

....<!ELEMENT Kontakt (Telefon|Fax|Email)*><!ELEMENT Telefon (#PCDATA)><!ELEMENT Fax (#PCDATA)><!ELEMENT Email (#PCDATA)>....

....<Kontakt>

<Telefon>0381/7774</Telefon> <Fax>0381/7775</Fax>

<Email>[email protected] </Email><Kontakt>....

ID Telefon Fax Email

1 0712/4455 NULL NULL

2 0381/7774 0381/7775 vertrieb@db-solutions

Kontakt

Page 11: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

Abbildung von rekursiven Datendefinitionen

....<!ELEMENT ort (name, einwohnerzahl, ausflugsziel*)><!ELEMENT ausflugsziel (ort, entfernung, beschreibung)> ....

ID Name Einwohnerzahl Ausflugsziel

20 Jena .... 33

21 Weimar ....

22 Kahla .... ....

ID Ort Entfernung Beschreibung

33 22 ..... ....

33 21 .... ....

Ort

Ausflugsziel

•DTD's können beispielsweise rekursiv sein•Unendliche Rekursion auf der Instanzenebene einer Datenbank nicht möglich•Vorgehensweise:

•Aufspaltung in separate Tabellen•Verwendung von Primär-/Fremdschlüssel

•Beispiel:

Page 12: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

Abbildung von Elementordnungen

• Dokumentordnung von XML-Dokumenten aus DB nicht erkennbar• Reihenfolge kann aber von Bedeutung sein (Beispiel:Wissenschaftliche

Publikationen)• In diesen Fällen: zusätzliches ordnungserhaltendes Attribut• Beispiel:

<Buch> <Kapitel>Einführung</Kapitel> <Kapitel>Theoretische Grundlagen</Kapitel> <Kapitel>Konzeption</Kapitel> <Kapitel>Beispiel</Kapitel> <Kapitel>Zusammenfassung</Kapitel></Buch>

Ordnung Kapitel

1 Einführung

2 Theoretische Grundlagen

3 Konzeption

4 Beispiel

5 Zusammenfassung

Page 13: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

Darstellung von Mixed-Content• Speicherung von Mixed-Content-Elementen in relationalen Datenbanken sehr umständlich• Keine effizienten Anfragen möglich• Selten bei datenzentrierten Dokumenten• Andere Form der Speicherung wählen bei häufigem Vorkommen!• Beispiel:

<anreisebeschreibung>

Sie können unser Haus auf verschiedenen Wegen erreichen:

<bahn>per Bahn: 1km ab Bahnhof Warnemünde</bahn>

<auto>per Auto: 19km ab Autobahn A19 Rostock-Berlin</auto>

Sie finden uns direkt an der Uferpromenade.

</anreisebeschreibung>

<!ELEMENT anreisebeschreibung (#PCDATA | auto | bahn)*>

Ordnung

#PCDATA Bahn Auto

1 Sie können unser Haus auf verschiedenen Wegen erreichen:

NULL NULL

2 NULL per Bahn: 1km ab Bahnhof Warnemünde NULL

3 NULL NULL per Auto: 19km ab Autobahn A19 Rostock-Berlin

4 Sie finden uns direkt an der Uferpromenade.

NULL NULL

Page 14: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

2.2. Anfragen

•Datenbankanfragen mit SQL:

–Struktur der Datenbank muss bekannt sein–Joins, Aggregatfunktionen usw. lassen sich ausführen–Optimierung übernimmt das DBMS

•XML-Anfragen mit den XML-QL:XPath oder XQuery:

–Prozess der Abbildung XML auf Datenbank muss protokolliert sein

–Datenbankanfrage für XML-Anfrage muss automatisch generiert werden können

–Ergebnis für die XML-Anfrage muss generiert werden können

Page 15: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

2.3. Eigenschaften der Speicherung mit automatischem Mapping

Schemabeschreibung (DTD o.XML-Schema)

erforderlich

Dokumentrekonstruktion Nur eingeschränkt möglich (Protokollierung des Abbildungsprozesses nötig)

Anfragen SQL- und XML-Anfragen (Transformation) sind möglich

Effizienz Hoch durch Einsatz der DB-Engine

Einsatz Für datenzentrierte XML-Dokumente

Weitere Besonderheiten •Erhalten der Dokumentordnung nur über zusätzliches Attribut•OODBS/ORDBS erlauben natürlichere Abbildung der Elementhierarchien•Änderung des XML-Schemas erfordert Anpassung der DB•Oft großes Schema & schwach gefüllte Datenbanken (Nullwerte)•Speicherung von Alternativen,Mixed-Content-Typ, Rekursion problematisch•Speicherung von Elementen vom Typ ANY nicht möglich•Speicherung von Kommentaren,PI‘s,Prolog und der DTD nicht möglich•Bei DTD Anpassung der DB-Attributtypen vom Anwender nötig

Page 16: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

3. Benutzerdefiniertes Mapping• Art der Speicherung in der Datenbank konnte bisher nicht beeinflusst

werden

• Mappingvorschrift spezifiziert welche Informationen aus XML-Dokument auf welche Datenbankstruktur abgebildet wird (vollständig oder nur Ausschnitt)

• Sehr flexible Methode

• Unabhängiges Entwerfen von XML-Schema und Datenbankschema möglich

• Speicherung von XML-Dokumenten in existierende Datenbanken möglich

• Zusammenführen von XML-Dokumenten mit in anderer Form gespeicherter Daten möglich

• Erstellen von Mappingvorschrift erfordert großen manuellen Aufwand

Page 17: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

3.1. Beispiel einer Mappingvorschrift nach Ronald Bourret

<Hotel url= "www.hotel-huebner.de“> <HotelID>H0001</HotelID> <Name>Hotel Huebner </Name> <Adresse> <PLZ>18119</PLZ> <Ort>Warnemünde</Ort> <Strasse>Seestrasse</Strasse> <Nr>12</Nr> </Adresse> <Preise> <Einzelzimmer>198</Einzelzimmer> </Preise> </Hotel>

<ClassMap> <ElementType Name="Hotel“/> <ToClassTable> <Table Name="Preise"> </ToClassTable> <PropertyMap> <Attribute Name="url"/> <ToColumn> <Column Name="Hotel_url"> </ToColumn> </PropertyMap> <PropertyMap> <ElementType Name="hotelname"/> <ToColumn> <Column Name="Name"/> </ToColumn> </PropertyMap> <PropertyMap> <ElementType Name="Einzelzimmer"/> <ToColumn> <Column Name="Einzelzimmer"/> </ToColumn> </PropertyMap>.....</ClassMap>

Hotel_url Name Einzelzimmer

www.hotel-huebner.de

Hotel Hübner 198

Preise

Page 18: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

3.2. Anfragen

• Datenbankanfragen mit SQL:

– Struktur der Datenbank muss bekannt sein

• XML-Anfragen: (nur sehr eingeschränkt)

– Nur möglich wenn Abbildungsprozess in Metadaten protokolliert wird

– Alle für Anfrage relevanten Daten müssen dabei gespeichert sein

– Problem:unvollständige Speicherung,Art der Speicherung gegenüber Originaldokument stark verändert

Page 19: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

3.3. Eigenschaften der Speicherung mit benutzerdefiniertem Mapping

Schemabeschreibung (DTD o.XML-Schema)

erforderlich

Dokumentrekonstruktion meist nicht möglich (Protokollierung des Abbildungsprozesses nötig,vollständige Abbildung)

Anfragen SQL-Anfragen möglichXML-Anfragen in Ausnahmefällen möglich

Effizienz Hoch durch Einsatz der DB-Engine

Einsatz Für datenzentrierte XML-Dokumente

Weitere Besonderheiten •Erhalten der Dokumentordnung nur über zusätzliches Attribut•Änderung des XML-Schemas erfordert Anpassung der Mappingvorschrift •Zusammenhang von Elementen und Attributen eines XML-Dokumentes kann verloren gehen•sehr variable Methode•Speicherung in bestehende Datenbanken möglich•Verantwortung für das Mapping liegt beim Anwender

Page 20: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

4. Was machen die Hersteller?4.1. Oracle 9i (automatisches Mapping)

– Shredding Storage zur strukturierten Speicherung von XML-Dokumenten

– Programm XSU (XML SQL Utility) kann Ergebnisse von SQL-Anfragen in XML ausgeben und Daten aus XML-Dokumente in Tabellen einlesen (Export & Import von XML-Daten)

Oracle DB

<ROWSET> <ROW num="1"> <PersNr>234<PersNr> <Name>Müller<Name> <Gehalt>4000<Gehalt> </ROW> <ROW num="2"> ... </ROW>...</ROWSET>

Page 21: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

Import von XML-Daten mit XSU

– Import:

• Name der bestehenden Tabelle und des XML-Dokumentes müssen als Parameter an XSU übergeben werden

• XSU erzeugt automatisch SQL-Insert-Befehle

• XML- und relationales Schema müssen exakt übereinstimmen

• Ist dies nicht der Fall, Anpassung des relationalen Schemas oder Transformation des XML-Dokumentes mit XSLT

Page 22: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

• DB2 XML-Extender (ab V.7.1. Bestandteil):

– 2 Zugriffs- bzw. Speicherungsformen für XML:

• XML-Collection (<Xcollection>): Abbildung auf relationale Strukturen

• XML-Column: XML-Datentyp,Speicherung von ganzen XML-Dokumenten oder Fragmenten

– Genaue Form der Speicherung wir in DAD-Datei (Document Access Definition) beschrieben

– DAD-Datei ist XML-formatiertes Dokument welches auf Client gespeichert ist

4.2. IBM DB2 UDB (benutzerdefiniertes Mapping)

Page 23: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

Weitere Eigenschaften der DAD-Datei• DAD-Datei muss beim Aktivieren einer XML-Collection (Gruppe relationaler Tabellen die XML enthalten) angegeben werden

• dxxEnableCollection(): Eingabe: DB-Name, Name der Collection, DAD als CLOB, Tablespace

• Stored-Procedures:

• dxxShredXML(): Eingabe: DAD-Datei und XML-Objekt (!Tabellen müssen vorhanden sein!)

• dxxInsertXML():Eingabe: Name der aktivierten XML-Collection, XML-Objekt

• Verwendung von <Xcollection> in DAD:

• 2 Abbildungsmethoden:• SQL-Zuordnung (nur bei Export)• RDB-node-Zuordnung (Import & Export)

Page 24: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

XML-Column und XML-Collection

Page 25: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

Shredding unter Verwendung von RDB-node (Beispiel)

<!ELEMENT Order (Customer, Part+)><!ATTLIST Order order_key ID #REQUIRED><!ELEMENT Customer (Name, Email)><!ELEMENT Name (#PCDATA)><!ELEMENT Email (#PCDATA)><!ELEMENT Part (Key, Quantity, ExtendedPrice,Tax,Shipment)><!ATTLIST Part color CDATA #IMPLIED><!ELEMENT Key (#PCDATA)><!ELEMENT Quantity (#PCDATA)><!ELEMENT ExtendedPrice (#PCDATA)><!ELEMENT Tax (#PCDATA)><!ELEMENT Shipment (ShipDate, ShipMode)><!ELEMENT ShipDate (#PCDATA)><!ELEMENT ShipMode (#PCDATA)>

order_key customer_name cuctomer_email

1 Müller mü[email protected]

part_key order_key price tax quantity color date mode

1 1 100 16 1 black 20.05.2004 1

order_tab

part_tab

Beispiel-DTD:

relationaler Entwurf:

Page 26: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

XML-Dokumentstruktur und mögliche Zuordnung von Elementen/Attributen zu Spalten von relationalen Tabellen:

order_tab

part_tab

Page 27: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

DAD-Fragment:Zerlegung mit Xcollection & RDB_node

<?xml version="1.0"?><!DOCTYPE DAD SYSTEM "dxx_install_verz/samples/db2xml/dtd/dad.dtd"><DAD><dtdid>dxx_install_verz/samples/dad/getstart.dtd</dtdid> <validation>YES</validation> <Xcollection><prolog>?xml version="1.0"?</prolog><doctype>! DOCTYPE Order SYSTEM "dxx_install_verz/samples/db2xml/dtd/getstart.dtd"</doctype> <root_node><element_node name="Order">

<RDB_node> <table name="order_tab" key="order_key"/> <table name="part_tab" key="part_key order_key"/> <condition>order_tab.order_key = part_tab.order_key</condition>

</RDB_node>

<attribute_node name="key"> <RDB_node> <table name="order_tab"/> <column name="order_key" type="integer"/> </RDB_node> </attribute_node>

Page 28: Strukturbasierte Abbildung von XML auf relationale Datenbanken XML & Datenbanken SS 2004 Marcel Keller

Fortsetzung DAD-Fragment<element_node name="Customer">

<element_node name="Name"> <text_node> <RDB_node> <table name="order_tab"/> <column name="customer_name" type="varchar(30)"/> </RDB_node> </text_node> </element_node>

<element_node name="Email"> <text_node> <RDB_node> <table name="order_tab"/> <column name="email_name" type="varchar(30)"/> </RDB_node> </text_node> </element_node>

</element_node>..........................</element_node></root_node>. </Xcollection></DAD>