XML und DatenbankenGenerieren von XML-Dokumenten
Meike Klettke
Universität Rostock
Fakultät für Informatik und Elektrotechnik
www.xml-und-datenbanken.de
2Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Inhalt
Generierung von XML-Dokumenten aus relationalen Datenbanken
– Anforderungen– für vollständige Datenbanken/Relationen– für Ergebnisse von SQL-Anfragen– anwenderdefinierte Verfahren
aus objektrelationalen Datenbanken aus beliebigen Informationen Standardisierung Datenbanksysteme Weiterführende Literatur
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
3Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Generierung von XML-Dokumen-ten aus relationalen Datenbanken
am häufigsten eingesetzte Datenbanken große Datenmengen sind so bereits elektronisch
gespeichert
Verwendung dieser bietet sich an, wenn man XML-Dokumente erzeugen will
generierte XML-Dokumente sind meist sehr regulär, gleichmäßig strukturiert
datenzentriert
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
4Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Anforderungen
Vollständige Abbildung von Datenbankinhalten Alle in der Datenbank vorhandenen Informationen müssen sich im XML-
Dokument wiederfinden.
Abbildung von Anfrageergebnissen oder ViewsAusschnitt der gespeicherten Informationen, der durch eine Anfrage oder eine Sicht spezifiziert wird, wird als XML-Dokument dargestellt.
Einsatz individueller Transformationsregeln Ein Ausschnitt der Daten sowie deren Struktur wird festgelegt.
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
5Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Allgemeine Problemstellungen
Abbildung von:
SQL/XML Standardisierung durch verschiedene Hersteller von
Datenbanksystemen, Teil des SQL-Standards
Datenbank XML-Dokument
Relationen- und Attributnamen Element- und Attributnamen
Datentypen Datentypen von XML Schema
Daten aus Datenbanken Inhalte in XML-Dokumenten
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
6Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Abbildung des vollständigen
Datenbankinhaltes
Generieren von XML-Dokumenten aus Datenbanken
Einsatz individuellerTransformations-
vorschriften
Abbildung von Anfrageergebnissen
Generieren von XML-Dokumenten
• Feste Transformationsregeln
• Feststehende Syntax des entstehenden XML-Dokumentes
• Oracle• DB2• SQL/XML (Standardisierung)
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
7Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Vollständige Abbildung der Datenbankinhalte / 1
Datenbank: betrachtet als dreistufige Hierarchie von Datenbank - Relation - Attributen Darstellung im XML-Dokument
durch Elemente
<Hotelinformationen> <Hotel> <HotelID>H0001</HotelID> <Name>Hotel Huebner</Name> <Kategorie>4</Kategorie> <Hoteladr>A0001</Hoteladr> </Hotel> <Hotel>
... </Hotel> <Adresse>
... </Adresse></Hotelinformationen>
HotelID Name Kategorie Adresse
H0001 Hotel Huebner 4 A0001
H0002 Warnemuender Hof
3 A0002
AdresseID Ort PLZ Strasse Nr
A0001 Warne-muende
18119 Seestrasse 12
A0002 Warne-muende
18119 Stolteraer Weg
8
Hotel:
Adresse:
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
8Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Vollständige Abbildung der Datenbankinhalte / 2
Datenbank: betrachtet als dreistufige Hierarchie von Datenbank - Relation - Attributen Darstellung im XML-Dokument
durch Elemente und Attribute
<Hotelinformationen> <Hotel HotelID='H0001' Name='Hotel Huebner' Kategorie='4' Hoteladr='A0001' /> <Hotel ... /> <Adresse ... /></Hotelinformationen>
HotelID Name Kategorie Adresse
H0001 Hotel Huebner 4 A0001
H0002 Warnemuender Hof
3 A0002
AdresseID Ort PLZ Strasse Nr
A0001 Warne-muende
18119 Seestrasse 12
A0002 Warne-muende
18119 Stolteraer Weg
8
Hotel:
Adresse:
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
9Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Vollständige Abbildung der Datenbankinhalte / 3
Datenbank: betrachtet als vierstufige Hierarchie von Datenbank - Relation - Tupel - Attributen
durch Elemente
<Hotelinformationen> <Hotel> <ROW> <HotelID>H0001</HotelID> <Name>Hotel Huebner</Name> <Kategorie>4</Kategorie> <Hoteladr>A0001</Hoteladr> </ROW> <ROW> ... </ROW> </Hotel> <Adresse>
... </Adresse></Hotelinformationen>
HotelID Name Kategorie Adresse
H0001 Hotel Huebner 4 A0001
H0002 Warnemuender Hof
3 A0002
AdresseID Ort PLZ Strasse Nr
A0001 Warne-muende
18119 Seestrasse 12
A0002 Warne-muende
18119 Stolteraer Weg
8
Hotel:
Adresse:
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
10Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
XML Schema statt DTDs /1
DTDs sind hier nicht geeignet, weil– Schlüssel/Fremdschlüsselbeziehungen nur unter
Umwegen darstellbar sind (globale Eindeutigkeit von IDs, lokale Eindeutigkeit von Schlüsselattribute)
– Datentypen sind mit DTDs nicht darstellbar, lediglich Erweiterung von DTDs um reservierte Attribute wurde einmal vorgeschlagen (hat mit XML-Schema an Bedeutung verloren)
<ort xml-sqltype=´varchar´>Rostock</ort> <plz xml-sqltype=´integer´>18055</plz>– XML-Prozessoren oder Applikationen müssen diese
Informationen kennen und auswerten, sonst nur protokollierende Funktion
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
11Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
XML Schema statt DTDs /2
Zu den XML-Dokumenten werden XML Schemata generiert, diese können:– Schlüssel und Fremdschlüssel durch key / keyref
angeben– Datentypen angeben, Vielzahl vordefinierter Datentypen
<xs:element name=´ort´ type=´xs:string´><xs:element name=´plz´ type=´xs:integer´>
Abbildung zwischen Datentypen aus XML Schema und SQL-Datentypen wird in SQL/XML definiert
XML Schema folgt in einer späteren Vorlesung
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
12Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Hierarchien aus Schlüssel- und Fremdschlüsselbeziehungen
Schlüssel- und Fremdschlüsselbeziehungen werden verfolgt Hierarchien werden abgeleitet
HotelID Name Kategorie Adresse
H0001 Hotel Huebner 4 A0001
H0002 Warnemuender Hof
3 A0002
AdresseID Ort PLZ Strasse Nr
A0001 Warne-muende
18119 Seestrasse 12
A0002 Warne-muende
18119 Stolteraer Weg
8
Hotel:
Adresse:
<!ELEMENT Hotel (HotelID, Name, Kategorie?, Hoteladr)><!ELEMENT HotelID (#PCDATA)><!ELEMENT Name (#PCDATA)><!ELEMENT Kategorie (#PCDATA)><!ELEMENT Adresse (AdresseID, Ort,
PLZ, Strasse, Nr)><!ELEMENT AdresseID (#PCDATA)><!ELEMENT Ort (#PCDATA)><!ELEMENT PLZ (#PCDATA)><!ELEMENT Strasse (#PCDATA)><!ELEMENT Nr (#PCDATA)>
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
13Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Eigenschaften der vollständigen Abbildung des Datenbankinhaltes
Ausgabe der Datenbank vollständig
Erforderliche Informationen keine
Variables Ausgabeformat nein
Erhalt von Datentypen durch XML-Schema
Speicherung von Schlüsseln durch key/keyref in XML-
und Fremdschlüsseln Schemata oder Abbilden
auf Hierarchien im XML-Dokument
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
14Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Abbildung des vollständigen
Datenbankinhaltes
Generieren von XML-Dokumenten aus Datenbanken
Einsatz individuellerTransformations-
vorschriften
Abbildung von Anfrageergebnissen
Generieren von XML-Dokumenten
• Feste Transformationsregeln
• Feststehende Syntax des entstehenden XML-Dokumentes
• Auswahl der dazustellenden Daten durch die Datenbankanfrage
• Oracle• DB2• Microsoft
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
15Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Abbildung von Anfrageergebnissen
Ergebnisse von SQL-Anfragen mit XML-Syntax ausgeben
Beispiel:SELECT Name, Kategorie, OrtFROM Hotel, AdresseWHERE (Ort=‘Warnemuende') AND
(Hotel.Hoteladr=Adresse.AdresseID)
Ergebnis:
<rowset> <row no=´1´> <Name>Hotel Huebner</Name> <Kategorie>4</Kategorie> <Ort>Warnemuende</Ort> </row>
</rowset>
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
16Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Eigenschaften des Einsatzes von Datenbankanfragen
Ausgabe der Datenbank Ausschnitte
Erforderliche InformationenDatenbankenanfrage/ View
Variables Ausgabeformat nein
Erhalt von Datentypen beim Generieren von XML
Schema
Speicherung von Schlüsseln Bei Verwendung von
und Fremdschlüsseln XML Schema
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
17Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Abbildung des vollständigen
Datenbankinhaltes
Generieren von XML-Dokumenten aus Datenbanken
Einsatz individuellerTransformations-
vorschriften
Abbildung von Anfrageergebnissen
Generieren von XML-Dokumenten
• Silkroute (SQL,XML-QL)• Courvoisier/ Flach (DaS) (SQL+Muster für Ergebnis)• Shamnagunsadaram et. al. • XPERANTO • Informix (Mapping über Dialog- oberfläche)• Volker Turau (DB2XML) (XSLT)• Laddad (XSLT)
• Auswahl der dazustellenden Daten durch die Datenbankanfrage• Individuelle Transformationsregeln durch den Benutzer
• Dadurch Spezifikation der Syntax des entstehenden XML-Dokumentes
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
18Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Varianten zum Einsatz individueller Transformationsregeln
3
3
1
2- MS-SQL-Server
3
2
1
virtuelle
fragesprache
XML-An-2
- XPERANTO
und XML-Anfragesprache)(Anteile einer Datenbank-
XML-“Sicht“
individuelles
- XML-APIs for DB (Laddad)
tionsregeln
individuelles
Transformationsregeln
Stylesheet
individuelle
XSLT-
Transforma-feste
tionsregeln
feste
XML-Dokument
standardisiertesXML-Dokument
Transforma-
- XML-Constructor- Database to XML Servlet
- Silkroute
- DB2XML
relationaleDatenbank
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
19Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Einsatz von erweiterten Datenbank-Anfragesprachen
Anteile von Datenbank- und XML-Anfragesprachen
Datenbankanfrage zur Auswahl der dazustellenden Daten
(= relevanten Anteile) XML-Anfrage zur Bestimmung der Syntax des Zielformates
(CONSTRUCT / RETURN)
Datenbankanfrage
relationaleDatenbank
erweiterte
benutzerdefiniertesXML-Dokument
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
20Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Einsatz von erweiterten Datenbankanfragen
Anfragebeispiel:
select *
from hotel, adresse
where (hotel.Hoteladr=
adresse.AdresseID)
construct
<hotel>
<name>{name}</name>
<adresse>
<plz>{plz}<plz>
<wohnort>{ort}</wohnort>
<strasse>{strasse}</strasse>
<hausnummer>{nr}</hausnummer>
</adresse>
</hotel>
Ergebnis:
<hotel>
<name>Strand Hotel Huebner</name>
<adresse>
<plz>18119<plz>
<wohnort>Warnemuende</wohnort>
<strasse>Seestrasse</strasse>
<hausnummer>12</hausnummer>
</adresse>
</hotel>
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
21Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Verwendung von Transformations-regeln und XML-Anfragen
virtuelle „Sichtweise“ auf die Daten einer Datenbank in Form eines XML-Dokuments
An dieses virtuelle XML-Dokument werden XML-Anfragen gestellt.
individuellesXML-Dokument
XML-AnfrageDatenbankrelationale
XML-Sichtvirtuelle
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
22Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Beispiel Silkroute
Erzeugen der virtuellen „XML-Sicht“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> XML-Anfragen über dieser XML-Sicht (XML-QL, XQuery)
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
23Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Einsatz von Transformationsregeln und XSLT
Zweistufiger Prozess (Turau, Laddad)
1. Schritt: Ausgabe der vollständigen Datenbank in XML-Syntax im festen Format
2. Schritt: Einsatz von XSLT zur Auswahl der relevanten Teilinformationen und Bestimmung der Syntax des Zielformates
relationaleDatenbank
XSLT benutzerdefiniertesXML-Dokument
Trans-
XML-Dokumentstandardisiertes
formation
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
24Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Einsatz von Transformationsregeln und DOM oder SAX-Prozessoren
Weitere Möglichkeit der Verarbeitung:
1. Schritt: Ausgabe der vollständigen Datenbank in XML-Syntax im festen Format
2. Schritt: Einsatz von Programmen, die mit Hilfe von DOM-oder SAX-Prozessoren weiterverarbeitet werden
relationaleDatenbank
DOMSAX
benutzerdefiniertesXML-Dokument
Trans-
XML-Dokumentstandardisiertes
formation
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
25Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Eigenschaften des Einsatzes individueller Transformationen
Ausgabe der Datenbank vollständig oder Ausschnitte
Erforderliche InformationenDatenbanken sowie XQuery oder XSLT
Variables Ausgabeformat ja
Erhalt von Datentypen bei Verwendung von XML
Schema
Speicherung von Schlüsseln Bei Verwendung von
und Fremdschlüsseln XML Schema
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
26Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Varianten zum Einsatz individueller Transformationsregeln
XQuery
XML-“Sicht“
Transforma-tionsregelnSQL/XML
XML-Dokument
relationaleDatenbank
viele Varianten mit • verschiedener Herangehensweise aber • ähnlicher Funktionalität
besonders geeignet für ad-hoc-Anfragen:
für sich wiederholende Transformationen:
XSLT
XML-“Sicht“
Transforma-tionsregelnSQL/XML
XML-Dokument
relationaleDatenbank
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
27Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Varianten zum Einsatz individueller Transformationsregeln
DOM/SAX
XML-“Sicht“
Transforma-tionsregelnSQL/XML
XML-Dokument
relationaleDatenbank
besonders geeignet für die Weiterverarbeitung in anderen ProgrammenXML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelationa-len Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
28Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
SQL/XML
Funktionen, die in den select-from-where-Block integriert werden können
Dadurch Generierung von XML-Dokumenten aus Datenbanken– xmlelement()– xmlattributes()– xmlagg()– xmlconcat()– xmlforest()– xmlroot()– xmlcomment()– xmlpi()
29Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
SQL/XML /2
xmlelement()– 3 Argumente: 1. Elementname, 2. (optionale) Attribute, 3.
optionaler Elementinhalt xmlattributes()
– Argumente: Attribute: Attributnamen ergeben sich aus Attributnamen der Relation, Umbenennung mit alias, Attributwerte ergeben sich aus Werten der Datenbankattribute
xmlagg()– 1 Argument, das mehrere Kindelemente haben kann
xmlconcat()– Verbindung mehrerer Elemente (ohne gemeinsamen
Parentknoten)
30Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
SQL/XML /3
xmlforest()– Konstruktion eines Waldes aus XML-Dokumenten
xmlroot()– erzeugt einen Wurzelknoten, (gegenwärtig nicht bei db2
unterstützt) xmlserialize() xmlcomment()
– Erzeugt Kommentar, (gegenwärtig nicht bei db2 unterstützt)
xmlpi()– Erzeugt Processing Instruction, (gegenwärtig nicht bei
db2 unterstützt)
31Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
SQL/XML-Beispiele
Beispieldatenbank:
create table student
( matrikelnummer integer not null primary key,
vorname varchar(20),
name varchar(30),
ort varchar(30));
darin 10 Datensätze
32Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
SQL/XML-Beispiele
select (xmlelement(name nachname, Name)) from student;
<NACHNAME>Schulz</NACHNAME> <NACHNAME>Meyer</NACHNAME> <NACHNAME>Albrecht</NACHNAME> <NACHNAME>Heuer</NACHNAME> <NACHNAME>Lehmann</NACHNAME> <NACHNAME>Schmidt</NACHNAME> <NACHNAME>Mueller</NACHNAME> <NACHNAME>Kopmann</NACHNAME> <NACHNAME>Lehmann</NACHNAME>
33Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
SQL/XML-Beispiele
select (xmlelement(name student,
xmlattributes(name as nachname) )) from student;
<STUDENT NACHNAME="Schulz"/> <STUDENT NACHNAME="Meyer"/> <STUDENT NACHNAME="Albrecht"/> <STUDENT NACHNAME="Heuer"/> <STUDENT NACHNAME="Lehmann"/> <STUDENT NACHNAME="Schmidt"/> <STUDENT NACHNAME="Mueller"/> <STUDENT NACHNAME="Kopmann"/> <STUDENT NACHNAME="Lehmann"/>
34Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
SQL/XML-Beispiele
select (xmlelement(name student,
xmlattributes(name as nachname, vorname) ))
from student; <STUDENT NACHNAME="Schulz" VORNAME="Sebastian"/>
<STUDENT NACHNAME="Meyer" VORNAME="Renate"/> <STUDENT NACHNAME="Albrecht" VORNAME="Sabine"/> <STUDENT NACHNAME="Heuer" VORNAME="Petra"/> <STUDENT NACHNAME="Lehmann" VORNAME="Annika"/>
<STUDENT NACHNAME="Schmidt" VORNAME="Maria"/> <STUDENT NACHNAME="Mueller" VORNAME="Brit"/> <STUDENT NACHNAME="Kopmann" VORNAME="Andreas"/>
<STUDENT NACHNAME="Lehmann" VORNAME="Thomas"/>
35Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
SQL/XML-Beispiele
select (xmlelement(name student,
xmlelement(name nachname, name),
xmlelement(name vorname, vorname) ))
from student; <STUDENT><NACHNAME>Schulz</NACHNAME><VORNAME>Sebastian</
VORNAME></STUDENT> <STUDENT><NACHNAME>Meyer</NACHNAME><VORNAME>Renate</
VORNAME></STUDENT> <STUDENT><NACHNAME>Albrecht</NACHNAME><VORNAME>Sabine</
VORNAME></STUDENT> <STUDENT><NACHNAME>Heuer</NACHNAME><VORNAME>Petra</
VORNAME></STUDENT> <STUDENT><NACHNAME>Lehmann</NACHNAME><VORNAME>Annika</
VORNAME></STUDENT> ...
36Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
SQL/XML-Beispiele
select (xmlelement(name student,
xmlforest(name, vorname) )) from student;
<STUDENT><NAME>Schulz</NAME><VORNAME>Sebastian</VORNAME></STUDENT>
<STUDENT><NAME>Meyer</NAME><VORNAME>Renate</VORNAME></STUDENT>
<STUDENT><NAME>Albrecht</NAME><VORNAME>Sabine</VORNAME></STUDENT>
<STUDENT><NAME>Heuer</NAME><VORNAME>Petra</VORNAME></STUDENT>
<STUDENT><NAME>Lehmann</NAME><VORNAME>Annika</VORNAME></STUDENT>
<STUDENT><NAME>Schmidt</NAME><VORNAME>Maria</VORNAME></STUDENT>
...
37Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
SQL/XML-Beispiele
select (xmlconcat
( xmlelement(name nachname, name),
xmlelement(name vorname, vorname)))
from student; <NACHNAME>Schulz</NACHNAME><VORNAME>Sebastian</
VORNAME> <NACHNAME>Meyer</NACHNAME><VORNAME>Renate</
VORNAME> <NACHNAME>Albrecht</NACHNAME><VORNAME>Sabine</
VORNAME> <NACHNAME>Heuer</NACHNAME><VORNAME>Petra</
VORNAME> ...
38Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
SQL/XML-Beispiele
select (xmlelement(name studenten,
xmlagg(xmlelement(name nachname, name)) ))
from student; <STUDENTEN><NACHNAME>Meyer</
NACHNAME><NACHNAME>Schulz</NACHNAME><NACHNAME>Meyer</NACHNAME><NACHNAME>Albrecht</NACHNAME><NACHNAME>Heuer</NACHNAME><NACHNAME>Lehmann</NACHNAME><NACHNAME>Schmidt</NACHNAME><NACHNAME>Mueller</NACHNAME><NACHNAME>Kopmann</NACHNAME><NACHNAME>Lehmann</NACHNAME></STUDENTEN>
39Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Verwendung von objekt-relationalen Datenbanken /1
adäquate Abbildung von komplexen Attributen (als Tupel, Mengen oder Listen definierten)
Beispiel: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));
<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>
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelatio-nalen Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
40Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Verwendung von objekt-relationalen Datenbanken /2
adäquate Abbildung von komplexen Attributen (als Tupel, Mengen oder Listen definierten)
Beispiel: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));
<!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)>
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelatio-nalen Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
41Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Eigenschaften der Ausgabe objektrelationaler Datenbanken
Ausgabe der Datenbank vollständig
Erforderliche Informationenkeine
Variables Ausgabeformat nein
Erhalt von Datentypen bei Verwendung von
XML Schema
Speicherung von Schlüsseln als ID/IDREF oder Verwendung
und Fremdschlüsseln von XML Schema
Weitere Besonderheiten adäquate Darstellung von
Tupeln, Mengen und Listen der
Datenbank im XML-Dokument
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelatio-nalen Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
42Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Generierung von XML-Dokumen-ten aus weiteren Datenformaten /1
allgemeine Prinzipien: aussagekräftige Bezeichnungen für Element- und
Attributnamen sinnvolle Gruppierungen und hierarchische Darstellungen Darstellung aller benötigten Informationen keine Darstellung von überflüssigen Informationen Lesbarkeit (für Anwendungen sowie für Menschen) Strukturierung der Informationen durch feingranulares
Markup
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelatio-nalen Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
43Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Generierung von XML-Dokumen-ten aus weiteren Datenformaten /2
Alle Merkmale: nicht formal definierbar nicht formal überprüfbar
Qualität der erzeugten Dokumente überprüfen: Arbeit mit Beispieldokumenten
(alle benötigten Informationen dargestellt, Zusammenhänge schlüssig)
Betrachten von typischen Anfragen
(lassen sich Informationen erfragen und vollständig ableiten)
Metriken bewerten Benutzerbarkeit und Änderbarkeit
entstandener XML-Dokumente.
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelatio-nalen Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
44Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
ANSI-Standard SQL/XML /1
Teil des SQL-Standards Hersteller wie IBM, Oracle, Microsoft, Informix und Software
AG beteiligt enthalten sind: Mapping zwischen SQL- und XML-
Konzepten (jeweils in beide Richtungen)– Abbildung von zwischen SQL- und XML-Bezeichnern
(max. Länge, erlaubte Sonderzeichen)• z.B: Verlag&Ort Verlag_x0026_Ort (das Zeichen & darf im XML-Markup nicht auftreten
und wird durch den Unicode-Wert ersetzt)– Abbildung zwischen SQL- und XML (Schema)-
Datentypen– Abbildung von Datenwerten
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelatio-nalen Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
45Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
ANSI-Standard SQL/XML /2
Abbildung von Relationen als XML-Dokument und XML-Schema
Abbilden von Anfrageergebnissen als XML-Dokumente und XML-Schemata
HotelID Name Kategorie Adresse
H0001 Hotel Huebner 4 A0001
H0002 Warnemuender Hof
3 A0002
Hotel:
<Hotelinformationen> <Hotel> <HotelID>H0001</HotelID> <Name>Hotel Huebner</Name> <Kategorie>4</Kategorie> <Hoteladr>A0001</Hoteladr> </Hotel> <Hotel>
... </Hotel> <Adresse>
... </Adresse></Hotelinformationen>
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelatio-nalen Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
46Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
XML Developer's Kit (Oracle XDK)
Grundbausteine zum Lesen, Manipulieren, Transformieren und Anzeigen von XML-Dokumenten
XML SQL Utility (XSU) unterstützt die Ausgabe von Datenbankinhalten mit XML-Syntax
– vollständige Inhalte relationaler Datenbanken auf XML-Dokumente, – Abbildung der Ergebnisse von SQL-Anfragen– in XMLGEN: einfache Änderungen an den XML-Dokumenten möglich
(Bezeichnungen des Markups)– individuell angepasste XML-Dokumente: Einsatz von XSLT
Anfrageergebnisse: XML-Text oder DOM-Graphen Ab Version 9i, Release 2: XML-Schema für die XML-
Ergebnisse der SQL-Anfragen (Darstellung der Typinformationen)
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelatio-nalen Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
47Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
IBM DB2 UDB
XML-Extender Generieren von XML-Dokumenten aus DB2-Datenbanken Syntax der Dokumente wird durch DAD-Dateien (- Data
Access Definition) festgelegt
Vorhin vorgestellte Funktionen wie xmlelement, xmlattributes, … werden unterstützt
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelatio-nalen Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
48Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Microsoft SQL-Server
Ausgabe der Ergebnisse von SQL-Anfragen als XML-Dokumente
Erweiterung der SQL-Anfrage um die SpezifikationFOR XML { RAW, AUTO, EXPLICIT }(bei Verwendung von „AUTO“ erhält man das in SQL/XML definierte Ausgabeformat)
drei verschiedene Ausgabeformate – verschiedene Formate mit feststehender Syntax– individuelle Festlegung der XML-Syntax durch
speziell erweiterte Anfragen
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelatio-nalen Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
49Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Zusammenfassung
verschiedene Methoden existieren, um XML-Dokumente aus anderweitig elektronisch gespeicherten Informationen zu generieren
Schwerpunkt dabei relationale und objektrelationale Datenbanken
viele Methoden werden in kommerziellen Datenbanksystemen umgesetzt
durch SQL/XML ist eine Vereinheitlichung erreicht, die sich
(zukünftig) in allen Systemen wiederfinden wird
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelatio-nalen Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
50Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Literatur / 1
Lee Buck: XML representation of a relational database, http://www.w3.org/XML/RDB.html
Tim Bray: Adding Strong Data Typing to SGML and XML, http://www.textuality.com/xml/typing.html
Jim Melton: WG3 Tutorial Presentation on 2000-10-09, ISO/IEC JTC/SC 32 - Data Management and Interchange, United States of America (ANSI), 2000
Jim Melton: ISO-ANSI Working Draft XML-Related Specifications (SQL/XML), http://www.sqlx.org/, 2001
SQL/XML
Jayavel Shanmugasundaram, Eugene J. Shekita, Rimon Barr, Michael J. Carey, Bruce G. Lindsay, Hamid Pirahesh, Berthold Reinwald: Efficiently Publishing Relational Data as XML Documents, VLDB, 2000
Thomas Courvoisier, Guntram Flach: Integration relationaler Datenstrukturen in XML-Applikationen - database to XML Servlet, 30. GI Jahrestagung, Workshop Internet-Datenbanken, 2000
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelatio-nalen Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
51Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Literatur / 2
Mary Fernandez, Wang-Chiew Tan, Dan Suciu: SilkRoute: Trading between Relations and XML , WWW9, http://db.cis.upenn.edu/DL/rxl/rxl.html, 2000
Mary Fernandez, Yana Kadiyska, Atsuyuki Morishima, Dan Suciu, Wang-Chiew Tan: SilkRoute a framework for publishing relational data in XML, Unpublished, Manuscript availabe from www.cs.washington.edu/homes/suciu, 2002
Micheal Carey, Daniela Florescu, Zachary Ives, Ying Lu,Jayavel Shanmugasundaram, Eugene Shekita, Subbu Subramanian: XPERANTO: Publishing Object-Relational Data as XML, WebDB Informal Proceedings, May, 2000
Volker Turau: Making legacy data accessible for XML applications, http://www.informatik.fh-wiesbaden.de/~turau/DB2XML/index.html,2000
Volker Turau: Generieren von XML-Dokumenten aus relationalen Datenbanken, 4. Darmstädter XML Kongress, XML und Datenbanken, Dezember, 2000
Christian Ettinger: Ein Java-Werkzeug zur Transformation von relationalen Daten-banken nach XML-Schema, FH Wiesbaden, Fachbereich Informatik, 2000
Ramnivas Laddad: XML APIs for databases, http://www.javaworld.com/javaworld/jw-01-2000/jw-01-dbxml.html, 2000
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelatio-nalen Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
52Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
Literatur /3
Ronald Bourret: XML-DBMS - Middleware for Transferring Data between XML Documents and Relational Databases, http://www.rpbourret.com/xmldbms/index.htm
Gregor Zimmermann: Repräsentation von Objekt-relationalen Daten in XML, Studienarbeit, Universität Rostock, Fachbereich Informatik, 2002
Sascha Klopp: Automatische Generierung von virtuellen XML-Sichten aus relationalen Datenbankschemata und Übersetzung von XQuery-Anfragen nach SQL, GI-Arbeitskreis Grundlagen von Informationssystemen, 14. Workshop über Grundlagen von Datenbanken, 2002
XML-Generierung
- aus Relationen
- aus Anfrageergeb-nissen
- anwenderdefinierte Verfahren
- aus objektrelatio-nalen Datenbanken
- aus beliebigen Informationen
- Systeme
- Literatur
Top Related