520 likes | 748 Views
XML und Datenbanken Generieren 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. Inhalt. Generierung von XML-Dokumenten aus relationalen Datenbanken Anforderungen
E N D
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
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
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
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
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
Generieren 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 Abbildung von Anfrageergebnissen Einsatz individueller Transformations- vorschriften • Feste Transformationsregeln • Feststehende Syntax des • entstehenden XML-Dokumentes • Oracle • DB2 • SQL/XML • (Standardisierung)
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> <Hotel> ... </Hotel> <Adresse> ... </Adresse> </Hotelinformationen> Hotel: Adresse:
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> Adresse:
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> ... </ROW> </Hotel> <Adresse> ... </Adresse> </Hotelinformationen> Hotel: Adresse:
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
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
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: <!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:
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
Generieren 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 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
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
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
Generieren 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 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
Varianten 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 2 XML-An- Transforma- relationale tionsregeln fragesprache individuelles 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
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
Einsatz von erweiterten Datenbankanfragen Ergebnis: <hotel> <name>Strand Hotel Huebner</name> <adresse> <plz>18119<plz> <wohnort>Warnemuende</wohnort> <strasse>Seestrasse</strasse> <hausnummer>12</hausnummer> </adresse> </hotel> 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> XML-Generierung - aus Relationen - aus Anfrageergeb-nissen - anwenderdefinierte Verfahren - aus objektrelationa-len Datenbanken - aus beliebigen Informationen - Systeme - Literatur
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 XML-Anfrage relationale Datenbank virtuelle XML-Sicht individuelles XML-Dokument
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
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 standardisiertes benutzerdefiniertes relationale Datenbank XML-Dokument XML-Dokument formation
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- standardisiertes DOM SAX benutzerdefiniertes relationale Datenbank XML-Dokument XML-Dokument formation
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
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
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
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()
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)
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)
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
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>
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"/>
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"/>
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> • ...
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> • ...
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> • ...
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>
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/5434-44</Telefon> </Hotel></Hotelinformationen>
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)>
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
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
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
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
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> <Hotel> ... </Hotel> <Adresse> ... </Adresse> </Hotelinformationen> Hotel:
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
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
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 durchspeziell erweiterte Anfragen XML-Generierung - aus Relationen - aus Anfrageergeb-nissen - anwenderdefinierte Verfahren - aus objektrelatio-nalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur
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
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