Title: XML und Datenbanken Generieren von XML-Dokumenten
1XML und DatenbankenGenerieren von XML-Dokumenten
- Meike Klettke
- Universität Rostock
- Fakultät für Informatik und Elektrotechnik
- meike_at_informatik.uni-rostock.de
- www.xml-und-datenbanken.de
2Inhalt
- 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
3Generierung 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
4Anforderungen
- 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
5Allgemeine Problemstellungen
- Abbildung von
-
- SQL/XML
- Standardisierung durch verschiedene Hersteller
von Datenbanksystemen, - Teil des SQL-Standards
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelationa-len
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
Datenbank XML-Dokument
Relationen- und Attributnamen Element- und Attributnamen
Datentypen Datentypen von XML Schema
Daten aus Datenbanken Inhalte in XML-Dokumenten
6Generieren von XML-Dokumenten aus Datenbanken
Generieren von XML-Dokumenten
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelationa-len
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
Abbildung des vollständigen Datenbankinhaltes
Einsatz individueller Transformations- vorschrifte
n
Abbildung von Anfrageergebnissen
- Feste Transformationsregeln
- Feststehende Syntax des
- entstehenden XML-Dokumentes
- Oracle
- DB2
- SQL/XML
- (Standardisierung)
7Vollständige Abbildung der Datenbankinhalte / 1
- Datenbank betrachtet als dreistufige Hierarchie
von - Datenbank - Relation -
Attributen - Darstellung im XML-Dokument
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelationa-len
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
durch Elemente ltHotelinformationengt
ltHotelgt ltHotelIDgtH0001lt/HotelIDgt
ltNamegtHotel Huebnerlt/Namegt
ltKategoriegt4lt/Kategoriegt
ltHoteladrgtA0001lt/Hoteladrgt lt/Hotelgt
ltHotelgt ... lt/Hotelgt
ltAdressegt ... lt/Adressegt lt/Hotelinformationen
gt
Hotel
HotelID Name Kategorie Adresse
H0001 Hotel Huebner 4 A0001
H0002 Warnemuender Hof 3 A0002
Adresse
AdresseID Ort PLZ Strasse Nr
A0001 Warne-muende 18119 Seestrasse 12
A0002 Warne-muende 18119 Stolteraer Weg 8
8Vollständige Abbildung der Datenbankinhalte / 2
- Datenbank betrachtet als dreistufige Hierarchie
von - Datenbank - Relation -
Attributen - Darstellung im XML-Dokument
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelationa-len
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
Hotel
durch Elemente und Attribute ltHotelinformationengt
ltHotel HotelID'H0001'
Name'Hotel Huebner' Kategorie'4'
Hoteladr'A0001' /gt ltHotel ... /gt
ltAdresse ... /gt lt/Hotelinformationengt
HotelID Name Kategorie Adresse
H0001 Hotel Huebner 4 A0001
H0002 Warnemuender Hof 3 A0002
Adresse
AdresseID Ort PLZ Strasse Nr
A0001 Warne-muende 18119 Seestrasse 12
A0002 Warne-muende 18119 Stolteraer Weg 8
9Vollständige Abbildung der Datenbankinhalte / 3
- Datenbank betrachtet als vierstufige Hierarchie
von - Datenbank - Relation -
Tupel - Attributen
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelationa-len
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
durch Elemente ltHotelinformationengt
ltHotelgt ltROWgt ltHotelIDgtH0001lt/Hot
elIDgt ltNamegtHotel Huebnerlt/Namegt
ltKategoriegt4lt/Kategoriegt
ltHoteladrgtA0001lt/Hoteladrgt lt/ROWgt
ltROWgt ... lt/ROWgt lt/Hotelgt
ltAdressegt ... lt/Adressegt lt/Hotelinformationen
gt
Hotel
HotelID Name Kategorie Adresse
H0001 Hotel Huebner 4 A0001
H0002 Warnemuender Hof 3 A0002
Adresse
AdresseID Ort PLZ Strasse Nr
A0001 Warne-muende 18119 Seestrasse 12
A0002 Warne-muende 18119 Stolteraer Weg 8
10XML 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) - ltort xml-sqltypevarchargtRostocklt/ortgt
- ltplz xml-sqltypeintegergt18055lt/plzgt
- 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
11XML 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 - ltxselement nameort typexsstringgt
- ltxselement nameplz typexsintegergt
- 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
12Hierarchien aus Schlüssel- und Fremdschlüsselbezie
hungen
- Schlüssel- und Fremdschlüsselbeziehungen werden
verfolgt - Hierarchien werden abgeleitet
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelationa-len
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
Hotel
HotelID Name Kategorie Adresse
H0001 Hotel Huebner 4 A0001
H0002 Warnemuender Hof 3 A0002
lt!ELEMENT Hotel (HotelID, Name,
Kategorie?, Hoteladr)gtlt!ELEMENT HotelID
(PCDATA)gtlt!ELEMENT Name (PCDATA)gtlt!ELEMENT
Kategorie (PCDATA)gtlt!ELEMENT Adresse
(AdresseID, Ort, PLZ, Strasse, Nr)gt lt!ELEMENT
AdresseID (PCDATA)gt lt!ELEMENT Ort
(PCDATA)gtlt!ELEMENT PLZ (PCDATA)gtlt!ELEMENT
Strasse (PCDATA)gt lt!ELEMENT Nr (PCDATA)gt
Adresse
AdresseID Ort PLZ Strasse Nr
A0001 Warne-muende 18119 Seestrasse 12
A0002 Warne-muende 18119 Stolteraer Weg 8
13Eigenschaften 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
14Generieren von XML-Dokumenten aus Datenbanken
Generieren von XML-Dokumenten
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelationa-len
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
Abbildung des vollständigen Datenbankinhaltes
Einsatz individueller Transformations- vorschrifte
n
Abbildung von Anfrageergebnissen
- Feste Transformationsregeln
- Feststehende Syntax des
- entstehenden XML-Dokumentes
- Auswahl der dazustellenden Daten
- durch die Datenbankanfrage
15Abbildung von Anfrageergebnissen
- Ergebnisse von SQL-Anfragen mit XML-Syntax
ausgeben - Beispiel
- SELECT Name, Kategorie, Ort
- FROM Hotel, Adresse
- WHERE (OrtWarnemuende') AND
- (Hotel.HoteladrAdresse.AdresseID)
- Ergebnis
- ltrowsetgt
- ltrow no1gt
- ltNamegtHotel Huebnerlt/Namegt
- ltKategoriegt4lt/Kategoriegt
- ltOrtgtWarnemuendelt/Ortgt
- lt/rowgt
- lt/rowsetgt
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelationa-len
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
16Eigenschaften des Einsatzes von Datenbankanfragen
- Ausgabe der Datenbank Ausschnitte
- Erforderliche Informationen Datenbankenanfrage/
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
17Generieren von XML-Dokumenten aus Datenbanken
Generieren von XML-Dokumenten
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelationa-len
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
Abbildung des vollständigen Datenbankinhaltes
Einsatz individueller Transformations- vorschrifte
n
Abbildung von Anfrageergebnissen
- Silkroute (SQL,XML-QL)
- Courvoisier/ Flach (DaS)
- (SQLMuster 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
18Varianten zum Einsatz individueller
Transformationsregeln
individuelle
1
Transformationsregeln
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelationa-len
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
(Anteile einer Datenbank-
und XML-Anfragesprache)
2
feste
XML-An-
2
Transforma-
relationale
fragesprache
individuelles
tionsregeln
Datenbank
XML-Dokument
virtuelle
3
3
individuelles
XML-Sicht
feste
XSLT-
Transforma-
Stylesheet
tionsregeln
- XML-Constructor
1
- Database to XML Servlet
standardisiertes
XML-Dokument
- Silkroute
2
- XPERANTO
- MS-SQL-Server
- XML-APIs for DB (Laddad)
3
- DB2XML
19Einsatz 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)
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelationa-len
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
erweiterte
Datenbankanfrage
relationale
Datenbank
benutzerdefiniertes
XML-Dokument
20Einsatz von erweiterten Datenbankanfragen
- Anfragebeispiel
- select
- from hotel, adresse
- where (hotel.Hoteladr
- adresse.AdresseID)
- construct
- lthotelgt
- ltnamegtnamelt/namegt
- ltadressegt
- ltplzgtplzltplzgt
- ltwohnortgtortlt/wohnortgt
- ltstrassegtstrasselt/strassegt
- lthausnummergtnrlt/hausnummergt
- lt/adressegt
- lt/hotelgt
Ergebnis lthotelgt ltnamegtStrand Hotel
Huebnerlt/namegt ltadressegt ltplzgt18119ltplzgt
ltwohnortgtWarnemuendelt/wohnortgt
ltstrassegtSeestrasselt/strassegt
lthausnummergt12lt/hausnummergt lt/adressegt lt/hotelgt
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelationa-len
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
21Verwendung 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.
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelationa-len
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
XML-Anfrage
relationale
Datenbank
virtuelle
XML-Sicht
individuelles
XML-Dokument
22Beispiel Silkroute
- Erzeugen der virtuellen XML-Sicht
- construct ltviewgt from adresse a, hotel h
construct lthotelgt
ltnamegth.namelt/namegt ltadressegt
ltortgta.ortlt/ortgt
ltplzgta.plzlt/plzgt
ltstrassegta.strasselt/strassegt - ltnummergta.nrlt/nummergt
lt/adressegt lt/hotelgt - lt/viewgt
- 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
23Einsatz 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
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelationa-len
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
XSLT
Trans-
benutzerdefiniertes
standardisiertes
relationale
Datenbank
XML-Dokument
XML-Dokument
formation
24Einsatz 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
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelationa-len
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
Trans-
DOM SAX
benutzerdefiniertes
standardisiertes
relationale
Datenbank
XML-Dokument
XML-Dokument
formation
25Eigenschaften des Einsatzes individueller
Transformationen
- Ausgabe der Datenbank vollständig oder
Ausschnitte - Erforderliche Informationen Datenbanken 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
26Varianten zum Einsatz individueller
Transformationsregeln
- viele Varianten mit
- verschiedener Herangehensweise aber
- ähnlicher Funktionalität
- besonders geeignet für ad-hoc-Anfragen
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelationa-len
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
Transforma-
XQuery
tionsregeln SQL/XML
XML- Dokument
relationale
XML-Sicht
Datenbank
für sich wiederholende Transformationen
Transforma-
tionsregeln SQL/XML
XSLT
XML- Dokument
relationale
XML-Sicht
Datenbank
27Varianten zum Einsatz individueller
Transformationsregeln
besonders geeignet für die Weiterverarbeitung in
anderen Programmen
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelationa-len
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
Transforma-
DOM/SAX
tionsregeln SQL/XML
XML- Dokument
relationale
XML-Sicht
Datenbank
28SQL/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()
29SQL/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)
30SQL/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)
31SQL/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
32SQL/XML-Beispiele
- select (xmlelement(name nachname, Name)) from
student -
- ltNACHNAMEgtSchulzlt/NACHNAMEgt
- ltNACHNAMEgtMeyerlt/NACHNAMEgt
- ltNACHNAMEgtAlbrechtlt/NACHNAMEgt
- ltNACHNAMEgtHeuerlt/NACHNAMEgt
- ltNACHNAMEgtLehmannlt/NACHNAMEgt
- ltNACHNAMEgtSchmidtlt/NACHNAMEgt
- ltNACHNAMEgtMuellerlt/NACHNAMEgt
- ltNACHNAMEgtKopmannlt/NACHNAMEgt
- ltNACHNAMEgtLehmannlt/NACHNAMEgt
33SQL/XML-Beispiele
- select (xmlelement(name student,
- xmlattributes(name as nachname) ))
from student - ltSTUDENT NACHNAME"Schulz"/gt
- ltSTUDENT NACHNAME"Meyer"/gt
- ltSTUDENT NACHNAME"Albrecht"/gt
- ltSTUDENT NACHNAME"Heuer"/gt
- ltSTUDENT NACHNAME"Lehmann"/gt
- ltSTUDENT NACHNAME"Schmidt"/gt
- ltSTUDENT NACHNAME"Mueller"/gt
- ltSTUDENT NACHNAME"Kopmann"/gt
- ltSTUDENT NACHNAME"Lehmann"/gt
34SQL/XML-Beispiele
- select (xmlelement(name student,
- xmlattributes(name as nachname,
vorname) )) - from student
- ltSTUDENT NACHNAME"Schulz" VORNAME"Sebastian"/gt
- ltSTUDENT NACHNAME"Meyer" VORNAME"Renate"/gt
- ltSTUDENT NACHNAME"Albrecht" VORNAME"Sabine"/gt
- ltSTUDENT NACHNAME"Heuer" VORNAME"Petra"/gt
- ltSTUDENT NACHNAME"Lehmann" VORNAME"Annika"/gt
- ltSTUDENT NACHNAME"Schmidt" VORNAME"Maria"/gt
- ltSTUDENT NACHNAME"Mueller" VORNAME"Brit"/gt
- ltSTUDENT NACHNAME"Kopmann" VORNAME"Andreas"/gt
- ltSTUDENT NACHNAME"Lehmann" VORNAME"Thomas"/gt
35SQL/XML-Beispiele
- select (xmlelement(name student,
- xmlelement(name nachname, name),
- xmlelement(name vorname, vorname)
)) - from student
- ltSTUDENTgtltNACHNAMEgtSchulzlt/NACHNAMEgtltVORNAMEgtSebas
tianlt/VORNAMEgtlt/STUDENTgt
- ltSTUDENTgtltNACHNAMEgtMeyerlt/NACHNAMEgtltVORNAMEgtRenate
lt/VORNAMEgtlt/STUDENTgt
- ltSTUDENTgtltNACHNAMEgtAlbrechtlt/NACHNAMEgtltVORNAMEgtSab
inelt/VORNAMEgtlt/STUDENTgt
- ltSTUDENTgtltNACHNAMEgtHeuerlt/NACHNAMEgtltVORNAMEgtPetralt
/VORNAMEgtlt/STUDENTgt
- ltSTUDENTgtltNACHNAMEgtLehmannlt/NACHNAMEgtltVORNAMEgtAnni
kalt/VORNAMEgtlt/STUDENTgt
- ...
36SQL/XML-Beispiele
- select (xmlelement(name student,
- xmlforest(name, vorname) )) from student
- ltSTUDENTgtltNAMEgtSchulzlt/NAMEgtltVORNAMEgtSebastianlt/VO
RNAMEgtlt/STUDENTgt
- ltSTUDENTgtltNAMEgtMeyerlt/NAMEgtltVORNAMEgtRenatelt/VORNAM
Egtlt/STUDENTgt
- ltSTUDENTgtltNAMEgtAlbrechtlt/NAMEgtltVORNAMEgtSabinelt/VOR
NAMEgtlt/STUDENTgt
- ltSTUDENTgtltNAMEgtHeuerlt/NAMEgtltVORNAMEgtPetralt/VORNAME
gtlt/STUDENTgt
- ltSTUDENTgtltNAMEgtLehmannlt/NAMEgtltVORNAMEgtAnnikalt/VORN
AMEgtlt/STUDENTgt
- ltSTUDENTgtltNAMEgtSchmidtlt/NAMEgtltVORNAMEgtMarialt/VORNA
MEgtlt/STUDENTgt
- ...
37SQL/XML-Beispiele
- select (xmlconcat
- ( xmlelement(name nachname, name),
- xmlelement(name vorname, vorname)))
- from student
- ltNACHNAMEgtSchulzlt/NACHNAMEgtltVORNAMEgtSebastianlt/VOR
NAMEgt
- ltNACHNAMEgtMeyerlt/NACHNAMEgtltVORNAMEgtRenatelt/VORNAME
gt
- ltNACHNAMEgtAlbrechtlt/NACHNAMEgtltVORNAMEgtSabinelt/VORN
AMEgt
- ltNACHNAMEgtHeuerlt/NACHNAMEgtltVORNAMEgtPetralt/VORNAMEgt
- ...
38SQL/XML-Beispiele
- select (xmlelement(name studenten,
- xmlagg(xmlelement(name nachname,
name)) )) - from student
- ltSTUDENTENgtltNACHNAMEgtMeyerlt/NACHNAMEgtltNACHNAMEgtSch
ulzlt/NACHNAMEgtltNACHNAMEgtMeyerlt/NACHNAMEgtltNACHNAMEgt
Albrechtlt/NACHNAMEgtltNACHNAMEgtHeuerlt/NACHNAMEgtltNACH
NAMEgtLehmannlt/NACHNAMEgtltNACHNAMEgtSchmidtlt/NACHNAME
gtltNACHNAMEgtMuellerlt/NACHNAMEgtltNACHNAMEgtKopmannlt/NA
CHNAMEgtltNACHNAMEgtLehmannlt/NACHNAMEgtlt/STUDENTENgt
39Verwendung 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)
- )
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelatio-nalen
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
ltHotelinformationengt ltHotelgt
ltHotelIDgtH0001lt/HotelIDgt ltNamegtHotel
Hübnerlt/Namegt ltAdressegt
ltPLZgt18119lt/PLZgt
ltOrtgtWarnemündelt/Ortgt
ltStrassegtSeestrasselt/Strassegt
ltNrgt12lt/Nrgt lt/Adressegt
ltTelefongt0381/5434-0lt/Telefongt
ltTelefongt0381/5434-44lt/Telefongt
lt/Hotelgtlt/Hotelinformationengt
40Verwendung 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)
- )
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelatio-nalen
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
lt!ELEMENT Hotelinformationen (Hotel)gtlt!ELEMENT
Hotel (HotelID, Name, Adresse,
Telefon)gtlt!ELEMENT HotelID (PCDATA)gtlt!ELEMENT
Name (PCDATA)gtlt!ELEMENT Adresse (PLZ, Ort,
Strasse, Nr)gtlt!ELEMENT PLZ
(PCDATA)gtlt!ELEMENT Ort (PCDATA)gtlt!ELEMENT
Strasse (PCDATA)gtlt!ELEMENT Nr
(PCDATA)gtlt!ELEMENT Telefon (PCDATA)gt
41Eigenschaften der Ausgabe objektrelationaler
Datenbanken
- Ausgabe der Datenbank vollständig
- Erforderliche Informationen keine
- 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
42Generierung 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
43Generierung 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
44ANSI-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 VerlagOrt 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
45ANSI-Standard SQL/XML /2
- Abbildung von Relationen als XML-Dokument und
XML-Schema - Abbilden von Anfrageergebnissen als XML-Dokumente
und XML-Schemata
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelatio-nalen
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
ltHotelinformationengt ltHotelgt
ltHotelIDgtH0001lt/HotelIDgt ltNamegtHotel
Huebnerlt/Namegt ltKategoriegt4lt/Kategoriegt
ltHoteladrgtA0001lt/Hoteladrgt lt/Hotelgt
ltHotelgt ... lt/Hotelgt
ltAdressegt ... lt/Adressegt lt/Hotelinformationen
gt
Hotel
HotelID Name Kategorie Adresse
H0001 Hotel Huebner 4 A0001
H0002 Warnemuender Hof 3 A0002
46XML 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
47IBM 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
48Microsoft 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
durchspeziell erweiterte Anfragen
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelatio-nalen
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
49Zusammenfassung
- 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
50Literatur / 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
51Literatur / 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-wiesbad
en.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-0
1-dbxml.html, 2000
XML-Generierung - aus Relationen - aus
Anfrageergeb-nissen - anwenderdefinierte
Verfahren - aus objektrelatio-nalen
Datenbanken - aus beliebigen Informationen -
Systeme - Literatur
52Literatur /3
- Ronald Bourret XML-DBMS - Middleware for
Transferring Data between XML Documents and
Relational Databases, http//www.rpbourret.com/xml
dbms/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