xml und datenbanken generieren von xml-dokumenten meike klettke universität rostock fakultät für...

Post on 05-Apr-2015

103 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

XML und DatenbankenGenerieren von XML-Dokumenten

Meike Klettke

Universität Rostock

Fakultät für Informatik und Elektrotechnik

meike@informatik.uni-rostock.de

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