VL 12: Generierung von XML-Dokumenten aus Datenbanken

Werbung
XML und Datenbanken
Generieren von XML-Dokumenten
Meike Klettke
Universität Rostock
Fakultät für Informatik und Elektrotechnik
[email protected]
www.xml-und-datenbanken.de
Inhalt
XML-Generierung
- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
- Literatur
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
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
2
Generierung von XML-Dokumenten aus relationalen Datenbanken
XML-Generierung
- aus Relationen
- aus Anfrageergebnissen


- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken

- aus beliebigen
Informationen
- Systeme
- Literatur

am häufigsten eingesetzte Datenbanken
große Datenmengen sind so bereits elektronisch
gespeichert
Verwendung dieser bietet sich an, wenn man XMLDokumente erzeugen will
generierte XML-Dokumente sind meist sehr regulär,
gleichmäßig strukturiert
datenzentriert
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
3
Anforderungen
XML-Generierung
- aus Relationen
- aus Anfrageergebnissen

Alle in der Datenbank vorhandenen Informationen müssen sich im XMLDokument wiederfinden.
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
Vollständige Abbildung von Datenbankinhalten

Abbildung von Anfrageergebnissen oder Views
Ausschnitt der gespeicherten Informationen, der durch eine Anfrage oder
eine Sicht spezifiziert wird, wird als XML-Dokument dargestellt.
- Systeme
- Literatur

Einsatz individueller Transformationsregeln
Ein Ausschnitt der Daten sowie deren Struktur wird festgelegt.
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
4
Allgemeine Problemstellungen
XML-Generierung
Abbildung von:
- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
Datenbank
XML-Dokument
Relationen- und Attributnamen
Element- und Attributnamen
Datentypen
Datentypen von XML Schema
Daten aus Datenbanken
Inhalte in XML-Dokumenten
- Literatur
SQL/XML
 Standardisierung durch verschiedene Hersteller von
Datenbanksystemen,
 Teil des SQL-Standards
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
5
Generieren von XMLDokumenten aus Datenbanken
Generieren von
XML-Dokumenten
XML-Generierung
- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
Abbildung des
vollständigen
Datenbankinhaltes
Abbildung von
Anfrageergebnissen
Einsatz individueller
Transformationsvorschriften
- Systeme
- Literatur
• Feste Transformationsregeln
• Oracle
• DB2
• Feststehende Syntax des
• SQL/XML
entstehenden XML-Dokumentes
(Standardisierung)
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
6
Vollständige Abbildung der
Datenbankinhalte / 1
XML-Generierung

- aus Relationen
- aus Anfrageergebnissen

Datenbank: betrachtet als dreistufige Hierarchie von
Datenbank - Relation - Attributen
Darstellung im XML-Dokument
durch Elemente
- anwenderdefinierte
Verfahren
Hotel:
- aus objektrelationalen Datenbanken
HotelID
Name
Kategorie
Adresse
H0001
Hotel Huebner
4
A0001
H0002
Warnemuender
Hof
3
A0002
- aus beliebigen
Informationen
- Systeme
- Literatur
Adresse:
AdresseID
Ort
PLZ
Strasse
Nr
A0001
Warnemuende
18119
Seestrasse
12
A0002
Warnemuende
18119
Stolteraer
Weg
8
Meike Klettke
Universität Rostock
<Hotelinformationen>
<Hotel>
<HotelID>H0001</HotelID>
<Name>Hotel Huebner</Name>
<Kategorie>4</Kategorie>
<Hoteladr>A0001</Hoteladr>
</Hotel>
<Hotel>
...
</Hotel>
<Adresse>
...
</Adresse>
</Hotelinformationen>
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
7
Vollständige Abbildung der
Datenbankinhalte / 2
XML-Generierung

- aus Relationen
- aus Anfrageergebnissen

Datenbank: betrachtet als dreistufige Hierarchie von
Datenbank - Relation - Attributen
Darstellung im XML-Dokument
- anwenderdefinierte
Verfahren
Hotel:
- aus objektrelationalen Datenbanken
HotelID
Name
Kategorie
Adresse
H0001
Hotel Huebner
4
A0001
H0002
Warnemuender
Hof
3
A0002
- aus beliebigen
Informationen
- Systeme
durch Elemente und Attribute
- Literatur
Adresse:
AdresseID
Ort
PLZ
Strasse
Nr
A0001
Warnemuende
18119
Seestrasse
12
A0002
Warnemuende
18119
Stolteraer
Weg
8
Meike Klettke
Universität Rostock
<Hotelinformationen>
<Hotel
HotelID='H0001'
Name='Hotel Huebner'
Kategorie='4'
Hoteladr='A0001' />
<Hotel ... />
<Adresse ... />
</Hotelinformationen>
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
8
Vollständige Abbildung der
Datenbankinhalte / 3
XML-Generierung

- aus Relationen
Datenbank: betrachtet als vierstufige Hierarchie von
Datenbank - Relation - Tupel - Attributen
- aus Anfrageergebnissen
durch Elemente
- anwenderdefinierte
Verfahren
Hotel:
- aus objektrelationalen Datenbanken
HotelID
Name
Kategorie
Adresse
H0001
Hotel Huebner
4
A0001
H0002
Warnemuender
Hof
3
A0002
- aus beliebigen
Informationen
- Systeme
- Literatur
Adresse:
AdresseID
Ort
PLZ
Strasse
Nr
A0001
Warnemuende
18119
Seestrasse
12
A0002
Warnemuende
18119
Stolteraer
Weg
8
Meike Klettke
Universität Rostock
<Hotelinformationen>
<Hotel>
<ROW>
<HotelID>H0001</HotelID>
<Name>Hotel Huebner</Name>
<Kategorie>4</Kategorie>
<Hoteladr>A0001</Hoteladr>
</ROW>
<ROW> ...
</ROW>
</Hotel>
<Adresse>
...
</Adresse>
</Hotelinformationen>
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
9
XML Schema statt DTDs /1
XML-Generierung
- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
- Literatur

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
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
10
XML Schema statt DTDs /2
XML-Generierung

- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
<xs:element name=´ort´ type=´xs:string´>
<xs:element name=´plz´ type=´xs:integer´>
- aus beliebigen
Informationen
- Systeme
- Literatur
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


Abbildung zwischen Datentypen aus XML Schema und
SQL-Datentypen wird in SQL/XML definiert
XML Schema folgt in einer späteren Vorlesung
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
11
Hierarchien aus Schlüssel- und
Fremdschlüsselbeziehungen
XML-Generierung
- aus Relationen
- aus Anfrageergebnissen


Schlüssel- und Fremdschlüsselbeziehungen werden verfolgt
Hierarchien werden abgeleitet
- anwenderdefinierte
Verfahren
Hotel:
- aus objektrelationalen Datenbanken
HotelID
Name
Kategorie
Adresse
H0001
Hotel Huebner
4
A0001
H0002
Warnemuender
Hof
3
A0002
- aus beliebigen
Informationen
- Systeme
- Literatur
Adresse:
AdresseID
Ort
PLZ
Strasse
Nr
A0001
Warnemuende
18119
Seestrasse
12
A0002
Warnemuende
18119
Stolteraer
Weg
8
Meike Klettke
Universität Rostock
<!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)>
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
12
Eigenschaften der vollständigen
Abbildung des Datenbankinhaltes
XML-Generierung
- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
Ausgabe der Datenbank
Erforderliche Informationen
Variables Ausgabeformat
Erhalt von Datentypen
Speicherung von Schlüsseln
und Fremdschlüsseln
- Literatur
Meike Klettke
Universität Rostock
vollständig
keine
nein
durch XML-Schema
durch key/keyref in XMLSchemata oder Abbilden
auf Hierarchien im XMLDokument
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
13
Generieren von XMLDokumenten aus Datenbanken
Generieren von
XML-Dokumenten
XML-Generierung
- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
Abbildung des
vollständigen
Datenbankinhaltes
Abbildung von
Anfrageergebnissen
Einsatz individueller
Transformationsvorschriften
- Systeme
- Literatur
• Feste Transformationsregeln
• Feststehende Syntax des
entstehenden XML-Dokumentes
• Oracle
• DB2
• Microsoft
• Auswahl der dazustellenden Daten
durch die Datenbankanfrage
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
14
Abbildung von
Anfrageergebnissen
XML-Generierung

Ergebnisse von SQL-Anfragen mit XML-Syntax ausgeben
- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
Beispiel:
SELECT Name, Kategorie, Ort
FROM Hotel, Adresse
WHERE (Ort=‘Warnemuende') AND
(Hotel.Hoteladr=Adresse.AdresseID)
Ergebnis:
- Literatur
<rowset>
<row no=´1´>
<Name>Hotel Huebner</Name>
<Kategorie>4</Kategorie>
<Ort>Warnemuende</Ort>
</row>
</rowset>
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
15
Eigenschaften des Einsatzes von
Datenbankanfragen
XML-Generierung
- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
Ausgabe der Datenbank
Erforderliche Informationen
Variables Ausgabeformat
Erhalt von Datentypen
- Systeme
- Literatur
Speicherung von Schlüsseln
und Fremdschlüsseln
Meike Klettke
Universität Rostock
Ausschnitte
Datenbankenanfrage/ View
nein
beim Generieren von XML
Schema
Bei Verwendung von
XML Schema
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
16
Generieren von XMLDokumenten aus Datenbanken
Generieren von
XML-Dokumenten
XML-Generierung
- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
- Literatur
Abbildung des
vollständigen
Datenbankinhaltes
Abbildung von
Anfrageergebnissen
• Silkroute (SQL,XML-QL)
• Courvoisier/ Flach (DaS)
(SQL+Muster für Ergebnis)
• Shamnagunsadaram et. al.
• XPERANTO
• Informix (Mapping über Dialogoberfläche)
• Volker Turau (DB2XML) (XSLT)
• Laddad (XSLT)
Meike Klettke
Universität Rostock
Einsatz individueller
Transformationsvorschriften
• Auswahl der dazustellenden Daten
durch die Datenbankanfrage
• Individuelle Transformationsregeln
durch den Benutzer
• Dadurch Spezifikation der
Syntax des entstehenden XML-Dokumentes
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
17
Varianten zum Einsatz individueller
Transformationsregeln
individuelle
Transformationsregeln
1
XML-Generierung
(Anteile einer Datenbankund XML-Anfragesprache)
- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
relationale
Datenbank
- aus objektrelationalen Datenbanken
feste
Transformationsregeln
3
feste
Transformationsregeln
- aus beliebigen
Informationen
2
2 XML-Anfragesprache
virtuelle
XML-“Sicht“
individuelles
XML-Dokument
3
individuelles
XSLTStylesheet
- Systeme
- Literatur
1
standardisiertes
XML-Dokument
- Silkroute
2 - XPERANTO
- MS-SQL-Server
3
Meike Klettke
Universität Rostock
- XML-Constructor
- Database to XML Servlet
- XML-APIs for DB (Laddad)
- DB2XML
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
18
Einsatz von erweiterten
Datenbank-Anfragesprachen
XML-Generierung

Anteile von Datenbank- und XML-Anfragesprachen
- aus Relationen
- aus Anfrageergebnissen
erweiterte
Datenbankanfrage
- anwenderdefinierte
Verfahren
relationale
Datenbank
benutzerdefiniertes
XML-Dokument
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
- Literatur


Datenbankanfrage zur Auswahl der dazustellenden Daten
(= relevanten Anteile)
XML-Anfrage zur Bestimmung der Syntax des Zielformates
(CONSTRUCT / RETURN)
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
19
Einsatz von erweiterten
Datenbankanfragen
XML-Generierung
- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
- Literatur
Anfragebeispiel:
Ergebnis:
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>
Meike Klettke
Universität Rostock
<hotel>
<name>Strand Hotel
Huebner</name>
<adresse>
<plz>18119<plz>
<wohnort>Warnemuende</wohnort>
<strasse>Seestrasse</strasse>
<hausnummer>12</hausnummer>
</adresse>
</hotel>
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
20
Verwendung von Transformationsregeln und XML-Anfragen
XML-Generierung
- aus Relationen
relationale
Datenbank
- aus Anfrageergebnissen
XML-Anfrage
virtuelle
XML-Sicht
- anwenderdefinierte
Verfahren
individuelles
XML-Dokument
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme

virtuelle „Sichtweise“ auf die Daten einer Datenbank in
Form eines XML-Dokuments

An dieses virtuelle XML-Dokument werden XML-Anfragen
gestellt.
- Literatur
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
21
Beispiel Silkroute
Erzeugen der virtuellen „XML-Sicht“
XML-Generierung

- aus Relationen
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>
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
- Literatur

XML-Anfragen über dieser XML-Sicht (XML-QL, XQuery)
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
22
Einsatz von Transformationsregeln
und XSLT
XML-Generierung
Zweistufiger Prozess (Turau, Laddad)
- aus Relationen
- aus Anfrageergebnissen
relationale
Datenbank
- anwenderdefinierte
Verfahren
Transformation
standardisiertes
XML-Dokument
XSLT
benutzerdefiniertes
XML-Dokument
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
- Literatur
1. Schritt: Ausgabe der vollständigen Datenbank in XMLSyntax im festen Format
2. Schritt: Einsatz von XSLT zur Auswahl der relevanten
Teilinformationen und Bestimmung der Syntax des
Zielformates
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
23
Einsatz von Transformationsregeln
und DOM oder SAX-Prozessoren
XML-Generierung
Weitere Möglichkeit der Verarbeitung:
- aus Relationen
- aus Anfrageergebnissen
relationale
Datenbank
- anwenderdefinierte
Verfahren
Transformation
standardisiertes
XML-Dokument
DOM
SAX
benutzerdefiniertes
XML-Dokument
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
- Literatur
1. Schritt: Ausgabe der vollständigen Datenbank in XMLSyntax im festen Format
2. Schritt: Einsatz von Programmen, die mit Hilfe von DOModer SAX-Prozessoren weiterverarbeitet werden
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
24
Eigenschaften des Einsatzes
individueller Transformationen
XML-Generierung
- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
Ausgabe der Datenbank
Erforderliche Informationen
Variables Ausgabeformat
Erhalt von Datentypen
- Systeme
- Literatur
Speicherung von Schlüsseln
und Fremdschlüsseln
Meike Klettke
Universität Rostock
vollständig oder Ausschnitte
Datenbanken sowie XQuery
oder XSLT
ja
bei Verwendung von XML
Schema
Bei Verwendung von
XML Schema
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
25
Varianten zum Einsatz individueller
Transformationsregeln
XML-Generierung
- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
viele Varianten mit
• verschiedener Herangehensweise aber
• ähnlicher Funktionalität
besonders geeignet für ad-hoc-Anfragen:
Transformationsregeln
SQL/XML
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
relationale
Datenbank
XQuery
XMLDokument
XML-“Sicht“
- Literatur
für sich wiederholende Transformationen:
Transformationsregeln
SQL/XML
relationale
Datenbank
Meike Klettke
Universität Rostock
XSLT
XML-“Sicht“
XMLDokument
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
26
Varianten zum Einsatz individueller
Transformationsregeln
XML-Generierung
besonders geeignet für die Weiterverarbeitung in anderen Programmen
- aus Relationen
Transformationsregeln
SQL/XML
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
relationale
Datenbank
DOM/SAX
XML-“Sicht“
XMLDokument
- aus beliebigen
Informationen
- Systeme
- Literatur
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
27
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()
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
28
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) Vorlesung “XML und Datenbanken”
Meike Klettke
29

Universität Rostock
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)
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
30
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
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
31
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>
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
32
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"/>
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
33
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"/>
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
34
SQL/XML-Beispiele
select (xmlelement(name student,
xmlelement(name nachname, name),
xmlelement(name vorname, vorname) ))
from student;
<STUDENT><NACHNAME>Schulz</NACHNAME><VORNAME>Sebastia
n</VORNAME></STUDENT>

<STUDENT><NACHNAME>Meyer</NACHNAME><VORNAME>Renate</
VORNAME></STUDENT>

<STUDENT><NACHNAME>Albrecht</NACHNAME><VORNAME>Sabine
</VORNAME></STUDENT>

<STUDENT><NACHNAME>Heuer</NACHNAME><VORNAME>Petra</V
ORNAME></STUDENT>

<STUDENT><NACHNAME>Lehmann</NACHNAME><VORNAME>Annik
a</VORNAME></STUDENT>

Meike...
Klettke
Vorlesung “XML und Datenbanken”

35
Universität Rostock
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</VORNAM
E></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</VORNAM
E></STUDENT>
<STUDENT><NAME>Schmidt</NAME><VORNAME>Maria</VORNAME>
</STUDENT>
...
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
36
SQL/XML-Beispiele
select (xmlconcat
( xmlelement(name nachname, name),
xmlelement(name vorname, vorname)))
from student;





<NACHNAME>Schulz</NACHNAME><VORNAME>Sebastian</V
ORNAME>
<NACHNAME>Meyer</NACHNAME><VORNAME>Renate</VOR
NAME>
<NACHNAME>Albrecht</NACHNAME><VORNAME>Sabine</VO
RNAME>
<NACHNAME>Heuer</NACHNAME><VORNAME>Petra</VORN
AME>
...
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
37
SQL/XML-Beispiele
select (xmlelement(name studenten,
xmlagg(xmlelement(name nachname, name)) ))
from student;
 <STUDENTEN><NACHNAME>Meyer</NACHNAME><NA
CHNAME>Schulz</NACHNAME><NACHNAME>Meyer</N
ACHNAME><NACHNAME>Albrecht</NACHNAME><NAC
HNAME>Heuer</NACHNAME><NACHNAME>Lehmann</
NACHNAME><NACHNAME>Schmidt</NACHNAME><NA
CHNAME>Mueller</NACHNAME><NACHNAME>Kopman
n</NACHNAME><NACHNAME>Lehmann</NACHNAME>
</STUDENTEN>
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
38
Verwendung von objektrelationalen Datenbanken /1
XML-Generierung

- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
- Literatur

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)
);
Meike Klettke
Universität Rostock
<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”
4) Generieren von XML-Dokumenten aus Datenbanken
39
Verwendung von objektrelationalen Datenbanken /2
XML-Generierung

- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
- Literatur

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)
);
Meike Klettke
Universität Rostock
<!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”
4) Generieren von XML-Dokumenten aus Datenbanken
40
Eigenschaften der Ausgabe
objektrelationaler Datenbanken
XML-Generierung
- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
- Literatur
Ausgabe der Datenbank
Erforderliche Informationen
Variables Ausgabeformat
Erhalt von Datentypen
Speicherung von Schlüsseln
und Fremdschlüsseln
Weitere Besonderheiten
Meike Klettke
Universität Rostock
vollständig
keine
nein
bei Verwendung von
XML Schema
als ID/IDREF oder Verwendung
von XML Schema
adäquate Darstellung von
Tupeln, Mengen und Listen der
Datenbank im XML-Dokument
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
41
Generierung von XML-Dokumenten aus weiteren Datenformaten /1
XML-Generierung
- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
- Literatur
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
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
42
Generierung von XML-Dokumenten aus weiteren Datenformaten /2
XML-Generierung
- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
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)
- Systeme
- Literatur

Betrachten von typischen Anfragen
(lassen sich Informationen erfragen und vollständig ableiten)
Metriken bewerten Benutzerbarkeit und Änderbarkeit
entstandener XML-Dokumente.
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
43
ANSI-Standard SQL/XML /1
XML-Generierung

- aus Relationen

- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
- Literatur

Teil des SQL-Standards
Hersteller wie IBM, Oracle, Microsoft, Informix und Software
AG beteiligt
enthalten sind: Mapping zwischen SQL- und XMLKonzepten (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
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
44
ANSI-Standard SQL/XML /2
XML-Generierung

- aus Relationen
Abbildung von Relationen als XML-Dokument und XMLSchema
- aus Anfrageergebnissen
Hotel:
- anwenderdefinierte
Verfahren
HotelID
Name
Kategorie
Adresse
H0001
Hotel Huebner
4
A0001
H0002
Warnemuender
Hof
3
A0002
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
- Literatur

<Hotelinformationen>
<Hotel>
<HotelID>H0001</HotelID>
<Name>Hotel Huebner</Name>
<Kategorie>4</Kategorie>
<Hoteladr>A0001</Hoteladr>
</Hotel>
<Hotel>
...
</Hotel>
<Adresse>
...
</Adresse>
</Hotelinformationen>
Abbilden von Anfrageergebnissen als XML-Dokumente und
XML-Schemata
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
45
XML Developer's Kit (Oracle XDK)
XML-Generierung

- aus Relationen
- aus Anfrageergebnissen

- anwenderdefinierte
Verfahren
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
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
- Literatur


Anfrageergebnisse: XML-Text oder DOM-Graphen
Ab Version 9i, Release 2: XML-Schema für die XMLErgebnisse der SQL-Anfragen (Darstellung der
Typinformationen)
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
46
IBM DB2 UDB
XML-Generierung
- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren



- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
- Literatur

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
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
47
Microsoft SQL-Server
XML-Generierung

Ausgabe der Ergebnisse von SQL-Anfragen als XMLDokumente

Erweiterung der SQL-Anfrage um die Spezifikation
FOR 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
- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
- Literatur
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
48
Zusammenfassung
XML-Generierung
- aus Relationen
- aus Anfrageergebnissen

- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken

- aus beliebigen
Informationen
- Systeme

- Literatur

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
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
49
Literatur / 1
XML-Generierung

- aus Relationen
- aus Anfrageergebnissen

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
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken
- aus beliebigen
Informationen
- Systeme
- Literatur





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 XMLApplikationen - database to XML Servlet, 30. GI Jahrestagung, Workshop InternetDatenbanken, 2000
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
50
Literatur / 2
XML-Generierung

- aus Relationen
- aus Anfrageergebnissen
- anwenderdefinierte
Verfahren
- aus objektrelationalen Datenbanken


- aus beliebigen
Informationen
- Systeme

- Literatur



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 Datenbanken nach XML-Schema, FH Wiesbaden, Fachbereich Informatik, 2000
Ramnivas Laddad: XML APIs for databases, http://www.javaworld.com/javaworld/jw01-2000/jw-01-dbxml.html, 2000
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
51
Literatur /3
XML-Generierung

Ronald Bourret: XML-DBMS - Middleware for Transferring Data between XML
Documents and Relational Databases, http://www.rpbourret.com/xmldbms/index.htm
- anwenderdefinierte
Verfahren

- aus objektrelationalen Datenbanken

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
- aus Relationen
- aus Anfrageergebnissen
- aus beliebigen
Informationen
- Systeme
- Literatur
Meike Klettke
Universität Rostock
Vorlesung “XML und Datenbanken”
4) Generieren von XML-Dokumenten aus Datenbanken
52
Herunterladen