Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Severin Kerl Geändert vor über 11 Jahren
1
XML und Datenbanken Generieren von XML-Dokumenten
Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik
2
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
3
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
4
Anforderungen Vollständige Abbildung von Datenbankinhalten
Alle in der Datenbank vorhandenen Informationen müssen sich im XML-Dokument wiederfinden. Abbildung von Anfrageergebnissen oder Views Ausschnitt 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
5
Allgemeine 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
6
Generieren von XML-Dokumenten aus Datenbanken
XML-Generierung - aus Relationen - aus Anfrageergeb-nissen - anwenderdefinierte Verfahren - aus objektrelationa-len Datenbanken - aus beliebigen Informationen - Systeme - Literatur Abbildung des vollständigen Datenbankinhaltes Abbildung von Anfrageergebnissen Einsatz individueller Transformations- vorschriften Feste Transformationsregeln Feststehende Syntax des entstehenden XML-Dokumentes Oracle DB2 SQL/XML (Standardisierung)
7
Vollstä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 <Hotelinformationen> <Hotel> <HotelID>H0001</HotelID> <Name>Hotel Huebner</Name> <Kategorie>4</Kategorie> <Hoteladr>A0001</Hoteladr> </Hotel> ... <Adresse> </Adresse> </Hotelinformationen> 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 Stolteraer Weg 8
8
Vollstä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 <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 Adresse: AdresseID Ort PLZ Strasse Nr A0001 Warne-muende 18119 Seestrasse 12 A0002 Stolteraer Weg 8
9
Vollstä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 <Hotelinformationen> <Hotel> <ROW> <HotelID>H0001</HotelID> <Name>Hotel Huebner</Name> <Kategorie>4</Kategorie> <Hoteladr>A0001</Hoteladr> </ROW> <ROW> ... </Hotel> <Adresse> ... </Adresse> </Hotelinformationen> 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 Stolteraer Weg 8
10
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
11
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
12
Hierarchien aus Schlüssel- und Fremdschlüsselbeziehungen
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 <!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)> Adresse: AdresseID Ort PLZ Strasse Nr A0001 Warne-muende 18119 Seestrasse 12 A0002 Stolteraer Weg 8
13
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
14
Generieren von XML-Dokumenten aus Datenbanken
XML-Generierung - aus Relationen - aus Anfrageergeb-nissen - anwenderdefinierte Verfahren - aus objektrelationa-len Datenbanken - aus beliebigen Informationen - Systeme - Literatur Abbildung des vollständigen Datenbankinhaltes Abbildung von Anfrageergebnissen Einsatz individueller Transformations- vorschriften Feste Transformationsregeln Feststehende Syntax des entstehenden XML-Dokumentes Auswahl der dazustellenden Daten durch die Datenbankanfrage Oracle DB2 Microsoft
15
Abbildung von Anfrageergebnissen
Ergebnisse von SQL-Anfragen mit XML-Syntax ausgeben Beispiel: SELECT Name, Kategorie, Ort FROM Hotel, Adresse WHERE (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
16
Eigenschaften 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
17
Generieren von XML-Dokumenten aus Datenbanken
XML-Generierung - aus Relationen - aus Anfrageergeb-nissen - anwenderdefinierte Verfahren - aus objektrelationa-len Datenbanken - aus beliebigen Informationen - Systeme - Literatur Abbildung des vollständigen Datenbankinhaltes Abbildung von Anfrageergebnissen Einsatz individueller Transformations- vorschriften 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
18
Varianten zum Einsatz individueller Transformationsregeln
XML-Generierung - aus Relationen - aus Anfrageergeb-nissen - anwenderdefinierte Verfahren - aus objektrelationa-len Datenbanken - aus beliebigen Informationen - Systeme - Literatur 1 Transformationsregeln (Anteile einer Datenbank- und XML-Anfragesprache) feste 2 2 XML-An- relationale Transforma- Datenbank tionsregeln fragesprache individuelles XML-Dokument virtuelle 3 feste XML-“Sicht“ 3 individuelles Transforma- XSLT- tionsregeln Stylesheet - XML-Constructor 1 - Database to XML Servlet standardisiertes XML-Dokument - Silkroute 2 - XPERANTO - MS-SQL-Server - XML-APIs for DB (Laddad) 3 - DB2XML
19
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) 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
20
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
21
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. XML-Generierung - aus Relationen - aus Anfrageergeb-nissen - anwenderdefinierte Verfahren - aus objektrelationa-len Datenbanken - aus beliebigen Informationen - Systeme - Literatur relationale XML-Anfrage Datenbank virtuelle XML-Sicht individuelles XML-Dokument
22
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
23
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 XML-Generierung - aus Relationen - aus Anfrageergeb-nissen - anwenderdefinierte Verfahren - aus objektrelationa-len Datenbanken - aus beliebigen Informationen - Systeme - Literatur Trans- XSLT relationale standardisiertes benutzerdefiniertes Datenbank XML-Dokument XML-Dokument formation
24
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 XML-Generierung - aus Relationen - aus Anfrageergeb-nissen - anwenderdefinierte Verfahren - aus objektrelationa-len Datenbanken - aus beliebigen Informationen - Systeme - Literatur Trans- relationale standardisiertes DOM SAX benutzerdefiniertes Datenbank XML-Dokument XML-Dokument formation
25
Eigenschaften 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
26
Varianten 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
27
Varianten 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
28
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()
29
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)
30
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)
31
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
32
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>
33
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"/>
34
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"/>
35
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> ...
36
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> ...
37
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> ...
38
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>
39
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) XML-Generierung - aus Relationen - aus Anfrageergeb-nissen - anwenderdefinierte Verfahren - aus objektrelatio-nalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur <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/ </Telefon> </Hotel> </Hotelinformationen>
40
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) XML-Generierung - aus Relationen - aus Anfrageergeb-nissen - anwenderdefinierte Verfahren - aus objektrelatio-nalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur <!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)>
41
Eigenschaften 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
42
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
43
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
44
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
45
ANSI-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 <Hotelinformationen> <Hotel> <HotelID>H0001</HotelID> <Name>Hotel Huebner</Name> <Kategorie>4</Kategorie> <Hoteladr>A0001</Hoteladr> </Hotel> ... <Adresse> </Adresse> </Hotelinformationen> Hotel: HotelID Name Kategorie Adresse H0001 Hotel Huebner 4 A0001 H0002 Warnemuender Hof 3 A0002
46
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
47
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
48
Microsoft SQL-Server Ausgabe der Ergebnisse von SQL-Anfragen als XML-Dokumente 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 XML-Generierung - aus Relationen - aus Anfrageergeb-nissen - anwenderdefinierte Verfahren - aus objektrelatio-nalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur
49
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
50
Literatur / 1 Lee Buck: XML representation of a relational database, Tim Bray: Adding Strong Data Typing to SGML and XML, Jim Melton: WG3 Tutorial Presentation on , ISO/IEC JTC/SC Data Management and Interchange, United States of America (ANSI), 2000 Jim Melton: ISO-ANSI Working Draft XML-Related Specifications (SQL/XML), 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
51
Literatur / 2 Mary Fernandez, Wang-Chiew Tan, Dan Suciu: SilkRoute: Trading between Relations and XML , WWW9, Mary Fernandez, Yana Kadiyska, Atsuyuki Morishima, Dan Suciu, Wang-Chiew Tan: SilkRoute a framework for publishing relational data in XML, Unpublished, Manuscript availabe from 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, 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, XML-Generierung - aus Relationen - aus Anfrageergeb-nissen - anwenderdefinierte Verfahren - aus objektrelatio-nalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur
52
Literatur /3 Ronald Bourret: XML-DBMS - Middleware for Transferring Data between XML Documents and Relational Databases, 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
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.