XML und Datenbanken

Werbung
Kapitel 6
Abbildung von Datenbanken auf XML
Standard-Abbildung von Tabellen
Standard-Abbildung von Anfrageergebnissen
Individuelle Abbildungsvorschriften
Anforderungen an die Generierung von
XML-Dokumenten aus Datenbanken
z
Datenbanksysteme sind sehr weit verbreitet
z
Grosse Datenmengen sind in Datenbanken elektronisch gespeichert
z
XML attraktiv als Format zum Austausch zwischen Datenbanken
–
–
–
Transport via Internet-Protokolle definiert
Vereinheitlichung durch gemeinsame DTDs oder XML-Schemas möglich
Viele Tools verfügbar
z
Austausch erfordert Export und Import der Daten (unter anderem)
z
Anforderungen an den Datenexport
–
–
–
Standard-Abbildung von Tabellen
Standard-Abbildung von Anfrageergebnissen oder Sichten
Individuelle Abbildungsvorschriften
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-2
Allgemeine Problemstellung
XML-Dokument
Datenbank
Tabellen- und Spaltennamen
Datentypen
?
Daten aus Datenbanken
Element- und Attributnamen
Datentypen von XML-Schema
Inhalte in XML-Dokumenten
z
Problem ist für alle Hersteller von Datenbanksystemen im Prinzip gleich
z
SQL/XML - Standardisierungsinitiative verschiedener Hersteller
(siehe Kapitel 7)
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-3
Generieren von XML-Dokumenten aus Datenbanken
Generieren von
XML-Dokumenten
Standard-Abbildung
von Tabellen
• Feste Transformationsregeln
• Feststehende Syntax des
entstehenden XML-Dokumentes
Standard- Abbildung
von Anfrageergebnissen
Individuelle
Abbildungsvorschriften
• Lee Buck (Grundprinzip)
• Tim Bray, Lee Buck
(Datentypen in DTDs ergänzen)
• Oracle
• DB2
• Informix
• SQL/XML
(Standardisierungsinitiative)
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-4
Standard-Abbildung von Tabellen
z
Datenbank als dreistufige Hierarchie von
–
–
–
z
Darstellung der Datenbankinhalte und Struktur im XML-Dokument
–
–
z
Datenbank
Tabellen
Spalten
durch Elemente
durch Elemente und Attribute
Beispielrelationen:
Hotel:
Adresse:
HotelID
Name
Kategorie
Adresse
AdresseID Ort
PLZ
Strasse
Nr
H0001
Hotel
Hübner
4
A0001
A0001
Warnemünde
18119
Seestrasse
12
H0002
Warnemünder Hof
3
A0002
A0002
Warnemünde
18119
Stolteraer Weg 8
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-5
Standard-Abbildung von Tabellen:
Darstellung durch Elemente
Hotel:
Adresse:
HotelID
Name
Kategorie
Adresse
AdresseID Ort
PLZ
Strasse
Nr
H0001
Hotel
Hübner
4
A0001
A0001
Warnemünde
18119
Seestrasse
12
H0002
Warnemünder Hof
3
A0002
A0002
Warnemünde
18119
Stolteraer Weg 8
<Hotelinformationen>
<Hotel>
<HotelID>H0001</HotelID>
<Name>Hotel Hübner</Name>
<Kategorie>4</Kategorie>
<Hoteladr>A0001</Hoteladr>
</Hotel>
<Hotel> ... </Hotel>
<Adresse> ... </Adresse>
</Hotelinformationen>
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
Standard-Abbildung
der Spaltennamen
auf Elementnamen
6-6
Standard-Abbildung von Tabellen:
Darstellung durch Elemente und Attribute
Hotel:
Adresse:
HotelID
Name
Kategorie
Adresse
AdresseID Ort
PLZ
Strasse
Nr
H0001
Hotel
Hübner
4
A0001
A0001
Warnemünde
18119
Seestrasse
12
H0002
Warnemünder Hof
3
A0002
A0002
Warnemünde
18119
Stolteraer Weg 8
<Hotelinformationen>
<Hotel
HotelID='H0001'
Name='Hotel Hübner'
Kategorie='4'
Hoteladr='A0001' />
<Hotel ... />
<Adresse ... />
</Hotelinformationen>
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
Standard-Abbildung
der Spaltennamen
auf Attributnamen
6-7
Abbildung von Schlüssel-Fremdschlüssel-Beziehungen
z
Zielsetzung: Schlüssel und Fremdschlüssel sollen möglichst adäquat im
XML-Dokument wiedergegeben werden
z
Abbildung von Schlüssel- und Fremdschlüsselbeziehungen auf
Elementhierarchien
–
–
1:n-Beziehungen werden auf geschachtelte Elemente im Dokument abgebildet
n:m-Beziehungen sind problematisch:
„
„
z
Verwendung von XML-Schema
–
z
Abbildung auf ID/IDREF
Denormalisierter Inhalt im XML-Dokument – eventuell hohe Redundanz
Darstellung von Schlüsseln und Fremdschlüsseln: Einsatz von key / keyref
Verwendung einer DTD
–
Darstellung von Schlüsseln und Fremdschlüsseln
„
„
Abbildung auf Attribute (ID/IDREF)
Eindeutigmachen der Schlüssel- und Fremdschlüsselwerte
(ID muss eindeutig sein für das ganze Dokument)
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-8
Hierarchien aus Schlüssel- und
Fremdschlüsselbeziehungen
Hotel:
Adresse:
FK
HotelID
Name
Kategorie
Adresse
AdresseID Ort
PLZ
Strasse
Nr
H0001
Hotel
Hübner
4
A0001
A0001
Warnemünde
18119
Seestrasse
12
H0002
Warnemuender Hof
3
A0002
A0002
Warnemünde
18119
Stolteraer Weg 8
<!ELEMENT Hotel (HotelID, Name, Kategorie?, Hoteladr)>
<!ELEMENT Hoteladr (AdresseID, Ort, PLZ, Strasse, Nr)>
<!ELEMENT HotelID (#PCDATA)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Kategorie (#PCDATA)>
<!ELEMENT AdresseID (#PCDATA)>
<!ELEMENT Nr (#PCDATA)>
<!ELEMENT Ort (#PCDATA)>
<!ELEMENT PLZ (#PCDATA)>
<!ELEMENT Strasse (#PCDATA)>
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
Auflösung der
FremdschlüsselBeziehungen durch
Einbettung der
referenzierten
Elemente
6-9
Abbildung von Datentypen
z
Verwendung von XML-Schema: Vielzahl vordefinierter Datentypen
<xsd:element name=''ort'' type=''xsd:string''>
<xsd:element name=''plz'' type=''xsd:integer''>
z
Erweiterung von DTDs um reservierte Attribute
<ort xml-sqltype=''varchar''>Rostock</ort>
<plz xml-sqltype=''integer''>18055</plz>
z
XML-Prozessoren oder Applikationen müssen diese Informationen
kennen und auswerten
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-10
Abbildung von objektrelationalen Datenbanken (1)
z
Objektrelationale Datenbanken unterstützen nicht-atomare, komplexe
Spalten
–
–
–
–
z
tupelwertig
kollektionswertig
objektwertig
referenzwertig
Vorhandene Struktur soll in das XML-Dokument übernommen werden
–
–
Instanzenebene
Schemaebene
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-11
Abbildung von objektrelationalen Datenbanken (2)
z
Instanzenebene: adäquate Abbildung von Instanzen mit komplexen
Attributen (Tupel, Mengen oder Listen)
HotelID
H0001
Hotelname
<Adresse>
Hotel Hübner
{Telefon}
PLZ
Ort
Strasse
Nr
18119
Warnemünde
Seestrasse
12
{'0381/5434-0', '0381/5434-44'}
<Hotelinformationen>
<Hotel>
<HotelID>H0001</HotelID>
<Name>Hotel Hübner</Name>
<Adresse>
<PLZ>18119</PLZ>
<Ort>Warnemünde</Ort>
<Strasse>Seestrasse</Strasse>
<Nr>12</Nr>
</Adresse>
<Telefon>0381/5434-0</Telefon>
<Telefon>0381/5434-44</Telefon>
</Hotel>
</Hotelinformationen>
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-12
Abbildung von objektrelationalen Datenbanken (3)
z
Schemaebene: Ableiten eines XML-Schema oder einer DTD aus
objektrelationalem Schema
INFORMIX-DDL
CREATE ROW type Adresse_t
(
PLZ
INTEGER,
Ort
VARCHAR(25),
Strasse
VARCHAR(20),
Nr
INTEGER
);
CREATE TABLE Hotel
(
HotelID INTEGER NOT NULL
PRIMARY KEY,
Name
VARCHAR(20) NOT NULL,
Adresse Adresse_t,
Telefon SET(INTEGER NOT NULL)
);
XML-DTD
<!ELEMENT Hotelinformationen (Hotel*)>
<!ELEMENT Hotel (HotelID, Name, Adresse, Telefon+)>
<!ELEMENT HotelID (#PCDATA)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Adresse (PLZ, Ort, Strasse, Nr)>
<!ELEMENT PLZ (#PCDATA)>
<!ELEMENT Ort (#PCDATA)>
<!ELEMENT Strasse (#PCDATA)>
<!ELEMENT Nr (#PCDATA)>
<!ELEMENT Telefon (#PCDATA)>
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-13
Eigenschaften der Abbildung von Tabellen
z
Ausgabe der Datenbank
–
z
keine
nein
–
–
z
Erhalt von Datentypen
–
–
Speicherung von Schlüsseln und
Fremdschlüsseln
–
Variables Ausgabeformat
–
z
vollständig
Erforderliche Informationen
–
z
z
durch erweiterte DTDs
durch ein XML-Schema
Weitere Besonderheiten
–
–
–
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
Abbilden auf Hierarchien im XMLDokument
ID/IDREF
XML-Schema
Parser müssen DTD-Erweiterungen
auswerten
XML-Schema ist wesentlich besser
geeignet als DTDs
adäquate Darstellung von Tupeln,
Mengen, Listen und Referenzen aus
objektrelatioanlen Datenbanken im
XML-Dokument
6-14
Generieren von XML-Dokumenten aus Datenbanken
Generieren von
XML-Dokumenten
Standard-Abbildung
von Tabellen
Standard-Abbildung
von Anfrageergebnissen
• Feste Transformationsregeln
• Feststehende Syntax des
entstehenden XML-Dokumentes
Individuelle
Abbildungsvorschriften
• Oracle
• DB2
• Microsoft
• Auswahl der dazustellenden Daten
durch die Datenbankanfrage
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-15
Abbildung von Anfrageergebnissen
z
Ergebnisse von SQL-Anfragen als XML-Dokumente bzw. XML-Elemente
ausgeben
z
Abbildung der Ergebnistabelle in eine Standard-Repräsentation
–
–
–
–
Ergebnistabelle auf rowset-Element
Jede Zeile auf ein row-Element
Tabellenspalten auf Sub-Elemente oder XML-Attribute
Dadurch kein variables Ausgabeformat
XML
SQL
SELECT Name, Kategorie, Ort
FROM Hotel, Adresse
WHERE Ort='Warnemünde' AND
Hotel.Hoteladr=Adresse.AdresseID
z
<rowset>
<row no='1'>
<Name>Hotel Hübner</Name>
<Kategorie>4</Kategorie>
<Ort>Warnemünde</Ort>
</row>
</rowset>
Ähnliches Verfahren Bestandteil im zukünftigen SQL/XML-Standard
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-16
Eigenschaften der Abbildung von
Datenbankanfragen
z
Ausgabe der Datenbank
–
z
Speicherung von Schlüsseln und
Fremdschlüsseln
–
Datenbankanfrage/Datenbanksicht
„
–
„
nein
Erhalt von Datentypen
bei tabelleninternen Beziehung
abbildbar
„
Variables Ausgabeformat
–
z
partiell
Erforderliche Informationen
–
z
z
z
Einbettung
ID/IDREF
XML-Schema
Weitere Besonderheiten
–
keine
geht typischerweise verloren, wäre
aber ableitbar
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-17
Generieren von XML-Dokumenten aus Datenbanken
Generieren von
XML-Dokumenten
Standard-Abbildung
von Tabellen
Standard-Abbildung
von Anfrageergebnissen
• Silkroute (SQL,XML-QL)
• Courvoisier/ Flach (DaS)
(SQL+Muster für Ergebnis)
• Shamnagunsadaram et. al.
• XPERANTO
• Volker Turau (DB2XML) (XSLT)
• Laddad (XSLT)
Individuelle
Abbildungsvorschriften
• Auswahl der darzustellenden Daten
durch die Datenbankanfrage
• Individuelle Transformationsregeln
durch den Benutzer
• Dadurch Spezifikation der
Syntax des entstehenden XML-Dokumentes
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-18
Varianten für individuelle Abbildungsvorschriften
Erweiterte Datenbankanfrage
mit Transformationsregeln
1
2
Datenbank
XML-Sicht
Standardtransformation
Standardtransformation
XML-Dokument
XML-Anfragesprache
3
Standardisiertes
XML-Dokument
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
XSLTStylesheet
6-19
Erweiterte Datenbankanfragesprachen
z
Anteile von Datenbank- und XML-Anfragesprache
z
Erweiterung des SQL-Dialektes um XML-Operatoren
Erweiterte
Datenbankanfrage
Datenbank
XML-Dokument
z
Datenbankanfrage (in SQL) zur Auswahl der darzustellenden Daten
z
XML-Anfrage zur Bestimmung der Syntax des Zielformates
(beispielsweise: CONSTRUCT / RETURN / FOR XML)
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-20
Erweiterte Datenbankanfragesprachen
Ergebnis:
Anfrage:
<hotel>
<name>Hotel Hübner</name>
<adresse>
<plz>18119<plz>
<wohnort>Warnemünde</wohnort>
<strasse>Seestrasse</strasse>
<hausnummer>12</hausnummer>
</adresse>
</hotel>
select *
from Hotel, Adresse
where (Hoteladr = AdresseID)
construct
<hotel>
<name>{$name}</name>
<adresse>
<plz>{$plz}<plz>
<wohnort>{$ort}</wohnort>
<strasse>{$strasse}</strasse>
<hausnummer>{$nr}</hausnummer>
</adresse>
</hotel>
XML-Element
und XMLAttributnamen
frei wählbar
Zugriff auf die
Spalten im SQLErgebnis
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-21
Individuelle Abbildungsvorschriften und XML-Anfragen
z
Anfrage an die Datenbank mit XML-Anfragesprachen ermöglichen
z
Naive Umsetzung
–
–
–
z
Kompletten Datenbankinhalt in ein XML-Dokument umsetzen
Komplettes XML-Dokument mit XML-Anfrage verarbeiten
Sehr ineffizient (XML-Dokument evtl. gross, nur Teile davon gebraucht)
Besser: XML-Sicht auf die Daten in einer Datenbank
–
–
–
XML-Dokument wird nicht materialisiert (virtuell)
XML-Anfragen werden an dieses virtuelle XML-Dokument gestellt
Möglichst grosser Anteil der Verabeitung mittels nativer DB-Engine
XML-Anfrage
Datenbank
XML-Sicht
XML-Dokument
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-22
Speziallfall: Annotationen von DTD oder XML-Schema
z
Festlegen der genauen Verbindung von Datenbank-Entitäten und XMLElementen bzw. XML-Attributen
Datenbank:
Hotel-URL
Tabelle Hotel www.hotel-huebner.de
Name
Einzelzimmer
Hotel Hübner
198
Abbildungsvorschrift:
<ClassMap>
<ElementType Name=''hotel''/>
<ToClassTable>
<Table Name=''Hotel''>
</ToClassTable>
<PropertyMap>
<Attribute Name=''url''/>
<ToColumn>
<Column Name=''Hotel-URL''/>
</ToColumn>
</PropertyMap>
<PropertyMap>
<ElementType Name=''hotelname''/>
...
Ergebnisdokument:
<hotel url=''www.hotel-huebner.de''>
<hotelname> Hotel Hübner </hotelname>
<einzelzimmer> 198 </einzelzimmer>
</hotel>
Angabe der DB-Tabelle
Konstruktion des XMLErgebnisses
Angabe des DB-Attributs
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-23
Beispiel Silkroute
z
Silkroute
–
–
z
Erzeugen einer XML-Sicht
–
–
z
Freie Wahl des Ausgabeformats
Sichtinhalt wird nicht materialisiert
XML-Anfragen über diese XML-Sicht
–
–
z
Middleware zwischen RDBMS und XMLApplikation
Entwickelt von AT&T und Uni Pennsylvania
XML-QL
XQuery
Problematik
–
–
Beispiel einer View-Definition
in Silkroute-Syntax:
construct
<view>
from Adresse a, Hotel h
construct
<hotel>
<name>$h.name</name>
<adresse>
<ort>$a.ort</ort>
<plz>$a.plz</plz>
<strasse>$a.strasse</strasse>
<nummer>$a.nr</nummer>
</adresse>
</hotel>
</view>
Ableiten der SQL-Queries aus der
Sichtdefinition
Meist muss nicht die ganze Sicht berechnet
werden
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-24
Eigenschaften individueller Abbildungsvorschriften
z
Ausgabe der Datenbank
–
z
–
–
XML-Anfrage
XSLT
Sichtdefinition
Speicherung von Schlüsseln und
Fremdschlüsseln
–
–
–
z
Variables Ausgabeformat
–
z
vollständig oder partiell
Erforderliche Informationen
–
z
z
Element-Schachtelung
ID/IDREF
XML-Schema
Weitere Besonderheiten
–
keine
ja
Erhalt von Datentypen
–
gehen typischerweise verloren, wären
aber ableitbar
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-25
Zusammenfassung
z
Verschiedene Methoden existieren, um XML-Dokumente aus anderweitig
elektronisch gespeicherten Informationen zu generieren
–
Standard-Abbildung von Tabellen auf XML
„
–
Standard-Abbildung von Abfrageergebnissen auf XML
„
„
–
Ergänzung von Datenbankabfragen um XML-Funktionalität
Standard-XML-Dokument
Individuelle Abbildung von Tabellen und Abfrageergebnissen
„
„
z
Standard-XML-Dokument: festgelegtes Ausgabeformat
XML-Sichten auf Datenbankinhalte
XML-Anfragesprachen arbeiten auf der Sicht
Schwerpunkt dabei relationale und objektrelationale Datenbanken
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
6-26
Herunterladen