XML und Datenbanken Generieren von XML-Dokumenten Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik [email protected] www.xml-und-datenbanken.de Inhalt XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur Generierung von XML-Dokumenten aus relationalen Datenbanken – Anforderungen – für vollständige Datenbanken/Relationen – für Ergebnisse von SQL-Anfragen – anwenderdefinierte Verfahren aus objektrelationalen Datenbanken aus beliebigen Informationen Standardisierung Datenbanksysteme Weiterführende Literatur Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 2 Generierung von XML-Dokumenten aus relationalen Datenbanken XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur am häufigsten eingesetzte Datenbanken große Datenmengen sind so bereits elektronisch gespeichert Verwendung dieser bietet sich an, wenn man XMLDokumente erzeugen will generierte XML-Dokumente sind meist sehr regulär, gleichmäßig strukturiert datenzentriert Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 3 Anforderungen XML-Generierung - aus Relationen - aus Anfrageergebnissen Alle in der Datenbank vorhandenen Informationen müssen sich im XMLDokument wiederfinden. - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen Vollständige Abbildung von Datenbankinhalten Abbildung von Anfrageergebnissen oder Views Ausschnitt der gespeicherten Informationen, der durch eine Anfrage oder eine Sicht spezifiziert wird, wird als XML-Dokument dargestellt. - Systeme - Literatur Einsatz individueller Transformationsregeln Ein Ausschnitt der Daten sowie deren Struktur wird festgelegt. Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 4 Allgemeine Problemstellungen XML-Generierung Abbildung von: - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme Datenbank XML-Dokument Relationen- und Attributnamen Element- und Attributnamen Datentypen Datentypen von XML Schema Daten aus Datenbanken Inhalte in XML-Dokumenten - Literatur SQL/XML Standardisierung durch verschiedene Hersteller von Datenbanksystemen, Teil des SQL-Standards Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 5 Generieren von XMLDokumenten aus Datenbanken Generieren von XML-Dokumenten XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen Abbildung des vollständigen Datenbankinhaltes Abbildung von Anfrageergebnissen Einsatz individueller Transformationsvorschriften - Systeme - Literatur • Feste Transformationsregeln • Oracle • DB2 • Feststehende Syntax des • SQL/XML entstehenden XML-Dokumentes (Standardisierung) Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 6 Vollständige Abbildung der Datenbankinhalte / 1 XML-Generierung - aus Relationen - aus Anfrageergebnissen Datenbank: betrachtet als dreistufige Hierarchie von Datenbank - Relation - Attributen Darstellung im XML-Dokument durch Elemente - anwenderdefinierte Verfahren Hotel: - aus objektrelationalen Datenbanken HotelID Name Kategorie Adresse H0001 Hotel Huebner 4 A0001 H0002 Warnemuender Hof 3 A0002 - aus beliebigen Informationen - Systeme - Literatur Adresse: AdresseID Ort PLZ Strasse Nr A0001 Warnemuende 18119 Seestrasse 12 A0002 Warnemuende 18119 Stolteraer Weg 8 Meike Klettke Universität Rostock <Hotelinformationen> <Hotel> <HotelID>H0001</HotelID> <Name>Hotel Huebner</Name> <Kategorie>4</Kategorie> <Hoteladr>A0001</Hoteladr> </Hotel> <Hotel> ... </Hotel> <Adresse> ... </Adresse> </Hotelinformationen> Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 7 Vollständige Abbildung der Datenbankinhalte / 2 XML-Generierung - aus Relationen - aus Anfrageergebnissen Datenbank: betrachtet als dreistufige Hierarchie von Datenbank - Relation - Attributen Darstellung im XML-Dokument - anwenderdefinierte Verfahren Hotel: - aus objektrelationalen Datenbanken HotelID Name Kategorie Adresse H0001 Hotel Huebner 4 A0001 H0002 Warnemuender Hof 3 A0002 - aus beliebigen Informationen - Systeme durch Elemente und Attribute - Literatur Adresse: AdresseID Ort PLZ Strasse Nr A0001 Warnemuende 18119 Seestrasse 12 A0002 Warnemuende 18119 Stolteraer Weg 8 Meike Klettke Universität Rostock <Hotelinformationen> <Hotel HotelID='H0001' Name='Hotel Huebner' Kategorie='4' Hoteladr='A0001' /> <Hotel ... /> <Adresse ... /> </Hotelinformationen> Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 8 Vollständige Abbildung der Datenbankinhalte / 3 XML-Generierung - aus Relationen Datenbank: betrachtet als vierstufige Hierarchie von Datenbank - Relation - Tupel - Attributen - aus Anfrageergebnissen durch Elemente - anwenderdefinierte Verfahren Hotel: - aus objektrelationalen Datenbanken HotelID Name Kategorie Adresse H0001 Hotel Huebner 4 A0001 H0002 Warnemuender Hof 3 A0002 - aus beliebigen Informationen - Systeme - Literatur Adresse: AdresseID Ort PLZ Strasse Nr A0001 Warnemuende 18119 Seestrasse 12 A0002 Warnemuende 18119 Stolteraer Weg 8 Meike Klettke Universität Rostock <Hotelinformationen> <Hotel> <ROW> <HotelID>H0001</HotelID> <Name>Hotel Huebner</Name> <Kategorie>4</Kategorie> <Hoteladr>A0001</Hoteladr> </ROW> <ROW> ... </ROW> </Hotel> <Adresse> ... </Adresse> </Hotelinformationen> Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 9 XML Schema statt DTDs /1 XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur DTDs sind hier nicht geeignet, weil – Schlüssel/Fremdschlüsselbeziehungen nur unter Umwegen darstellbar sind (globale Eindeutigkeit von IDs, lokale Eindeutigkeit von Schlüsselattribute) – Datentypen sind mit DTDs nicht darstellbar, lediglich Erweiterung von DTDs um reservierte Attribute wurde einmal vorgeschlagen (hat mit XML-Schema an Bedeutung verloren) <ort xml-sqltype=´varchar´>Rostock</ort> <plz xml-sqltype=´integer´>18055</plz> – XML-Prozessoren oder Applikationen müssen diese Informationen kennen und auswerten, sonst nur protokollierende Funktion Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 10 XML Schema statt DTDs /2 XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken <xs:element name=´ort´ type=´xs:string´> <xs:element name=´plz´ type=´xs:integer´> - aus beliebigen Informationen - Systeme - Literatur Zu den XML-Dokumenten werden XML Schemata generiert, diese können: – Schlüssel und Fremdschlüssel durch key / keyref angeben – Datentypen angeben, Vielzahl vordefinierter Datentypen Abbildung zwischen Datentypen aus XML Schema und SQL-Datentypen wird in SQL/XML definiert XML Schema folgt in einer späteren Vorlesung Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 11 Hierarchien aus Schlüssel- und Fremdschlüsselbeziehungen XML-Generierung - aus Relationen - aus Anfrageergebnissen Schlüssel- und Fremdschlüsselbeziehungen werden verfolgt Hierarchien werden abgeleitet - anwenderdefinierte Verfahren Hotel: - aus objektrelationalen Datenbanken HotelID Name Kategorie Adresse H0001 Hotel Huebner 4 A0001 H0002 Warnemuender Hof 3 A0002 - aus beliebigen Informationen - Systeme - Literatur Adresse: AdresseID Ort PLZ Strasse Nr A0001 Warnemuende 18119 Seestrasse 12 A0002 Warnemuende 18119 Stolteraer Weg 8 Meike Klettke Universität Rostock <!ELEMENT Hotel (HotelID, Name, Kategorie?, Hoteladr)> <!ELEMENT HotelID (#PCDATA)> <!ELEMENT Name (#PCDATA)> <!ELEMENT Kategorie (#PCDATA)> <!ELEMENT Adresse (AdresseID, Ort, PLZ, Strasse, Nr)> <!ELEMENT AdresseID (#PCDATA)> <!ELEMENT Ort (#PCDATA)> <!ELEMENT PLZ (#PCDATA)> <!ELEMENT Strasse (#PCDATA)> <!ELEMENT Nr (#PCDATA)> Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 12 Eigenschaften der vollständigen Abbildung des Datenbankinhaltes XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme Ausgabe der Datenbank Erforderliche Informationen Variables Ausgabeformat Erhalt von Datentypen Speicherung von Schlüsseln und Fremdschlüsseln - Literatur Meike Klettke Universität Rostock vollständig keine nein durch XML-Schema durch key/keyref in XMLSchemata oder Abbilden auf Hierarchien im XMLDokument Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 13 Generieren von XMLDokumenten aus Datenbanken Generieren von XML-Dokumenten XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen Abbildung des vollständigen Datenbankinhaltes Abbildung von Anfrageergebnissen Einsatz individueller Transformationsvorschriften - Systeme - Literatur • Feste Transformationsregeln • Feststehende Syntax des entstehenden XML-Dokumentes • Oracle • DB2 • Microsoft • Auswahl der dazustellenden Daten durch die Datenbankanfrage Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 14 Abbildung von Anfrageergebnissen XML-Generierung Ergebnisse von SQL-Anfragen mit XML-Syntax ausgeben - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme Beispiel: SELECT Name, Kategorie, Ort FROM Hotel, Adresse WHERE (Ort=‘Warnemuende') AND (Hotel.Hoteladr=Adresse.AdresseID) Ergebnis: - Literatur <rowset> <row no=´1´> <Name>Hotel Huebner</Name> <Kategorie>4</Kategorie> <Ort>Warnemuende</Ort> </row> </rowset> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 15 Eigenschaften des Einsatzes von Datenbankanfragen XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen Ausgabe der Datenbank Erforderliche Informationen Variables Ausgabeformat Erhalt von Datentypen - Systeme - Literatur Speicherung von Schlüsseln und Fremdschlüsseln Meike Klettke Universität Rostock Ausschnitte Datenbankenanfrage/ View nein beim Generieren von XML Schema Bei Verwendung von XML Schema Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 16 Generieren von XMLDokumenten aus Datenbanken Generieren von XML-Dokumenten XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur Abbildung des vollständigen Datenbankinhaltes Abbildung von Anfrageergebnissen • Silkroute (SQL,XML-QL) • Courvoisier/ Flach (DaS) (SQL+Muster für Ergebnis) • Shamnagunsadaram et. al. • XPERANTO • Informix (Mapping über Dialogoberfläche) • Volker Turau (DB2XML) (XSLT) • Laddad (XSLT) Meike Klettke Universität Rostock Einsatz individueller Transformationsvorschriften • Auswahl der dazustellenden Daten durch die Datenbankanfrage • Individuelle Transformationsregeln durch den Benutzer • Dadurch Spezifikation der Syntax des entstehenden XML-Dokumentes Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 17 Varianten zum Einsatz individueller Transformationsregeln individuelle Transformationsregeln 1 XML-Generierung (Anteile einer Datenbankund XML-Anfragesprache) - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren relationale Datenbank - aus objektrelationalen Datenbanken feste Transformationsregeln 3 feste Transformationsregeln - aus beliebigen Informationen 2 2 XML-Anfragesprache virtuelle XML-“Sicht“ individuelles XML-Dokument 3 individuelles XSLTStylesheet - Systeme - Literatur 1 standardisiertes XML-Dokument - Silkroute 2 - XPERANTO - MS-SQL-Server 3 Meike Klettke Universität Rostock - XML-Constructor - Database to XML Servlet - XML-APIs for DB (Laddad) - DB2XML Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 18 Einsatz von erweiterten Datenbank-Anfragesprachen XML-Generierung Anteile von Datenbank- und XML-Anfragesprachen - aus Relationen - aus Anfrageergebnissen erweiterte Datenbankanfrage - anwenderdefinierte Verfahren relationale Datenbank benutzerdefiniertes XML-Dokument - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur Datenbankanfrage zur Auswahl der dazustellenden Daten (= relevanten Anteile) XML-Anfrage zur Bestimmung der Syntax des Zielformates (CONSTRUCT / RETURN) Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 19 Einsatz von erweiterten Datenbankanfragen XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur Anfragebeispiel: Ergebnis: select * from hotel, adresse where (hotel.Hoteladr= adresse.AdresseID) construct <hotel> <name>{name}</name> <adresse> <plz>{plz}<plz> <wohnort>{ort}</wohnort> <strasse>{strasse}</strasse> <hausnummer>{nr}</hausnummer> </adresse> </hotel> Meike Klettke Universität Rostock <hotel> <name>Strand Hotel Huebner</name> <adresse> <plz>18119<plz> <wohnort>Warnemuende</wohnort> <strasse>Seestrasse</strasse> <hausnummer>12</hausnummer> </adresse> </hotel> Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 20 Verwendung von Transformationsregeln und XML-Anfragen XML-Generierung - aus Relationen relationale Datenbank - aus Anfrageergebnissen XML-Anfrage virtuelle XML-Sicht - anwenderdefinierte Verfahren individuelles XML-Dokument - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme virtuelle „Sichtweise“ auf die Daten einer Datenbank in Form eines XML-Dokuments An dieses virtuelle XML-Dokument werden XML-Anfragen gestellt. - Literatur Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 21 Beispiel Silkroute Erzeugen der virtuellen „XML-Sicht“ XML-Generierung - aus Relationen construct <view> { from adresse a, hotel h construct <hotel> <name>$h.name</name> <adresse> <ort>$a.ort</ort> <plz>$a.plz</plz> <strasse>$a.strasse</strasse> <nummer>$a.nr</nummer> </adresse> </hotel> </view> - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur XML-Anfragen über dieser XML-Sicht (XML-QL, XQuery) Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 22 Einsatz von Transformationsregeln und XSLT XML-Generierung Zweistufiger Prozess (Turau, Laddad) - aus Relationen - aus Anfrageergebnissen relationale Datenbank - anwenderdefinierte Verfahren Transformation standardisiertes XML-Dokument XSLT benutzerdefiniertes XML-Dokument - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur 1. Schritt: Ausgabe der vollständigen Datenbank in XMLSyntax im festen Format 2. Schritt: Einsatz von XSLT zur Auswahl der relevanten Teilinformationen und Bestimmung der Syntax des Zielformates Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 23 Einsatz von Transformationsregeln und DOM oder SAX-Prozessoren XML-Generierung Weitere Möglichkeit der Verarbeitung: - aus Relationen - aus Anfrageergebnissen relationale Datenbank - anwenderdefinierte Verfahren Transformation standardisiertes XML-Dokument DOM SAX benutzerdefiniertes XML-Dokument - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur 1. Schritt: Ausgabe der vollständigen Datenbank in XMLSyntax im festen Format 2. Schritt: Einsatz von Programmen, die mit Hilfe von DOModer SAX-Prozessoren weiterverarbeitet werden Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 24 Eigenschaften des Einsatzes individueller Transformationen XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen Ausgabe der Datenbank Erforderliche Informationen Variables Ausgabeformat Erhalt von Datentypen - Systeme - Literatur Speicherung von Schlüsseln und Fremdschlüsseln Meike Klettke Universität Rostock vollständig oder Ausschnitte Datenbanken sowie XQuery oder XSLT ja bei Verwendung von XML Schema Bei Verwendung von XML Schema Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 25 Varianten zum Einsatz individueller Transformationsregeln XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren viele Varianten mit • verschiedener Herangehensweise aber • ähnlicher Funktionalität besonders geeignet für ad-hoc-Anfragen: Transformationsregeln SQL/XML - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme relationale Datenbank XQuery XMLDokument XML-“Sicht“ - Literatur für sich wiederholende Transformationen: Transformationsregeln SQL/XML relationale Datenbank Meike Klettke Universität Rostock XSLT XML-“Sicht“ XMLDokument Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 26 Varianten zum Einsatz individueller Transformationsregeln XML-Generierung besonders geeignet für die Weiterverarbeitung in anderen Programmen - aus Relationen Transformationsregeln SQL/XML - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken relationale Datenbank DOM/SAX XML-“Sicht“ XMLDokument - aus beliebigen Informationen - Systeme - Literatur Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 27 SQL/XML Funktionen, die in den select-from-where-Block integriert werden können Dadurch Generierung von XML-Dokumenten aus Datenbanken – xmlelement() – xmlattributes() – xmlagg() – xmlconcat() – xmlforest() – xmlroot() – xmlcomment() – xmlpi() Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 28 SQL/XML /2 xmlelement() – 3 Argumente: 1. Elementname, 2. (optionale) Attribute, 3. optionaler Elementinhalt xmlattributes() – Argumente: Attribute: Attributnamen ergeben sich aus Attributnamen der Relation, Umbenennung mit alias, Attributwerte ergeben sich aus Werten der Datenbankattribute xmlagg() – 1 Argument, das mehrere Kindelemente haben kann xmlconcat() – Verbindung mehrerer Elemente (ohne gemeinsamen Parentknoten) Vorlesung “XML und Datenbanken” Meike Klettke 29 Universität Rostock 4) Generieren von XML-Dokumenten aus Datenbanken SQL/XML /3 xmlforest() – Konstruktion eines Waldes aus XML-Dokumenten xmlroot() – erzeugt einen Wurzelknoten, (gegenwärtig nicht bei db2 unterstützt) xmlserialize() xmlcomment() – Erzeugt Kommentar, (gegenwärtig nicht bei db2 unterstützt) xmlpi() – Erzeugt Processing Instruction, (gegenwärtig nicht bei db2 unterstützt) Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 30 SQL/XML-Beispiele Beispieldatenbank: create table student ( matrikelnummer integer not null primary key, vorname varchar(20), name varchar(30), ort varchar(30)); darin 10 Datensätze Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 31 SQL/XML-Beispiele select (xmlelement(name nachname, Name)) from student; <NACHNAME>Schulz</NACHNAME> <NACHNAME>Meyer</NACHNAME> <NACHNAME>Albrecht</NACHNAME> <NACHNAME>Heuer</NACHNAME> <NACHNAME>Lehmann</NACHNAME> <NACHNAME>Schmidt</NACHNAME> <NACHNAME>Mueller</NACHNAME> <NACHNAME>Kopmann</NACHNAME> <NACHNAME>Lehmann</NACHNAME> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 32 SQL/XML-Beispiele select (xmlelement(name student, xmlattributes(name as nachname) )) from student; <STUDENT NACHNAME="Schulz"/> <STUDENT NACHNAME="Meyer"/> <STUDENT NACHNAME="Albrecht"/> <STUDENT NACHNAME="Heuer"/> <STUDENT NACHNAME="Lehmann"/> <STUDENT NACHNAME="Schmidt"/> <STUDENT NACHNAME="Mueller"/> <STUDENT NACHNAME="Kopmann"/> <STUDENT NACHNAME="Lehmann"/> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 33 SQL/XML-Beispiele select (xmlelement(name student, xmlattributes(name as nachname, vorname) )) from student; <STUDENT NACHNAME="Schulz" VORNAME="Sebastian"/> <STUDENT NACHNAME="Meyer" VORNAME="Renate"/> <STUDENT NACHNAME="Albrecht" VORNAME="Sabine"/> <STUDENT NACHNAME="Heuer" VORNAME="Petra"/> <STUDENT NACHNAME="Lehmann" VORNAME="Annika"/> <STUDENT NACHNAME="Schmidt" VORNAME="Maria"/> <STUDENT NACHNAME="Mueller" VORNAME="Brit"/> <STUDENT NACHNAME="Kopmann" VORNAME="Andreas"/> <STUDENT NACHNAME="Lehmann" VORNAME="Thomas"/> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 34 SQL/XML-Beispiele select (xmlelement(name student, xmlelement(name nachname, name), xmlelement(name vorname, vorname) )) from student; <STUDENT><NACHNAME>Schulz</NACHNAME><VORNAME>Sebastia n</VORNAME></STUDENT> <STUDENT><NACHNAME>Meyer</NACHNAME><VORNAME>Renate</ VORNAME></STUDENT> <STUDENT><NACHNAME>Albrecht</NACHNAME><VORNAME>Sabine </VORNAME></STUDENT> <STUDENT><NACHNAME>Heuer</NACHNAME><VORNAME>Petra</V ORNAME></STUDENT> <STUDENT><NACHNAME>Lehmann</NACHNAME><VORNAME>Annik a</VORNAME></STUDENT> Meike... Klettke Vorlesung “XML und Datenbanken” 35 Universität Rostock 4) Generieren von XML-Dokumenten aus Datenbanken SQL/XML-Beispiele select (xmlelement(name student, xmlforest(name, vorname) )) from student; <STUDENT><NAME>Schulz</NAME><VORNAME>Sebastian</VORNAM E></STUDENT> <STUDENT><NAME>Meyer</NAME><VORNAME>Renate</VORNAME> </STUDENT> <STUDENT><NAME>Albrecht</NAME><VORNAME>Sabine</VORNAME ></STUDENT> <STUDENT><NAME>Heuer</NAME><VORNAME>Petra</VORNAME></ STUDENT> <STUDENT><NAME>Lehmann</NAME><VORNAME>Annika</VORNAM E></STUDENT> <STUDENT><NAME>Schmidt</NAME><VORNAME>Maria</VORNAME> </STUDENT> ... Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 36 SQL/XML-Beispiele select (xmlconcat ( xmlelement(name nachname, name), xmlelement(name vorname, vorname))) from student; <NACHNAME>Schulz</NACHNAME><VORNAME>Sebastian</V ORNAME> <NACHNAME>Meyer</NACHNAME><VORNAME>Renate</VOR NAME> <NACHNAME>Albrecht</NACHNAME><VORNAME>Sabine</VO RNAME> <NACHNAME>Heuer</NACHNAME><VORNAME>Petra</VORN AME> ... Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 37 SQL/XML-Beispiele select (xmlelement(name studenten, xmlagg(xmlelement(name nachname, name)) )) from student; <STUDENTEN><NACHNAME>Meyer</NACHNAME><NA CHNAME>Schulz</NACHNAME><NACHNAME>Meyer</N ACHNAME><NACHNAME>Albrecht</NACHNAME><NAC HNAME>Heuer</NACHNAME><NACHNAME>Lehmann</ NACHNAME><NACHNAME>Schmidt</NACHNAME><NA CHNAME>Mueller</NACHNAME><NACHNAME>Kopman n</NACHNAME><NACHNAME>Lehmann</NACHNAME> </STUDENTEN> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 38 Verwendung von objektrelationalen Datenbanken /1 XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur adäquate Abbildung von komplexen Attributen (als Tupel, Mengen oder Listen definierten) Beispiel: create row type Adresse_t ( PLZ INTEGER, Ort VARCHAR(25), Strasse VARCHAR(20), Nr INTEGER ); create table Hotel ( HotelID INTEGER NOT NULL PRIMARY KEY, Name VARCHAR(20) NOT NULL, Adresse Adresse_t, Telefon SET(INTEGER NOT NULL) ); Meike Klettke Universität Rostock <Hotelinformationen> <Hotel> <HotelID>H0001</HotelID> <Name>Hotel Hübner</Name> <Adresse> <PLZ>18119</PLZ> <Ort>Warnemünde</Ort> <Strasse>Seestrasse</Strasse> <Nr>12</Nr> </Adresse> <Telefon>0381/5434-0</Telefon> <Telefon>0381/5434-44</Telefon> </Hotel> </Hotelinformationen> Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 39 Verwendung von objektrelationalen Datenbanken /2 XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur adäquate Abbildung von komplexen Attributen (als Tupel, Mengen oder Listen definierten) Beispiel: create row type Adresse_t ( PLZ INTEGER, Ort VARCHAR(25), Strasse VARCHAR(20), Nr INTEGER ); create table Hotel ( HotelID INTEGER NOT NULL PRIMARY KEY, Name VARCHAR(20) NOT NULL, Adresse Adresse_t, Telefon SET(INTEGER NOT NULL) ); Meike Klettke Universität Rostock <!ELEMENT Hotelinformationen (Hotel*)> <!ELEMENT Hotel (HotelID, Name, Adresse, Telefon+)> <!ELEMENT HotelID (#PCDATA)> <!ELEMENT Name (#PCDATA)> <!ELEMENT Adresse (PLZ, Ort, Strasse, Nr)> <!ELEMENT PLZ (#PCDATA)> <!ELEMENT Ort (#PCDATA)> <!ELEMENT Strasse (#PCDATA)> <!ELEMENT Nr (#PCDATA)> <!ELEMENT Telefon (#PCDATA)> Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 40 Eigenschaften der Ausgabe objektrelationaler Datenbanken XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur Ausgabe der Datenbank Erforderliche Informationen Variables Ausgabeformat Erhalt von Datentypen Speicherung von Schlüsseln und Fremdschlüsseln Weitere Besonderheiten Meike Klettke Universität Rostock vollständig keine nein bei Verwendung von XML Schema als ID/IDREF oder Verwendung von XML Schema adäquate Darstellung von Tupeln, Mengen und Listen der Datenbank im XML-Dokument Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 41 Generierung von XML-Dokumenten aus weiteren Datenformaten /1 XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur allgemeine Prinzipien: aussagekräftige Bezeichnungen für Element- und Attributnamen sinnvolle Gruppierungen und hierarchische Darstellungen Darstellung aller benötigten Informationen keine Darstellung von überflüssigen Informationen Lesbarkeit (für Anwendungen sowie für Menschen) Strukturierung der Informationen durch feingranulares Markup Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 42 Generierung von XML-Dokumenten aus weiteren Datenformaten /2 XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen Alle Merkmale: nicht formal definierbar nicht formal überprüfbar Qualität der erzeugten Dokumente überprüfen: Arbeit mit Beispieldokumenten (alle benötigten Informationen dargestellt, Zusammenhänge schlüssig) - Systeme - Literatur Betrachten von typischen Anfragen (lassen sich Informationen erfragen und vollständig ableiten) Metriken bewerten Benutzerbarkeit und Änderbarkeit entstandener XML-Dokumente. Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 43 ANSI-Standard SQL/XML /1 XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur Teil des SQL-Standards Hersteller wie IBM, Oracle, Microsoft, Informix und Software AG beteiligt enthalten sind: Mapping zwischen SQL- und XMLKonzepten (jeweils in beide Richtungen) – Abbildung von zwischen SQL- und XML-Bezeichnern (max. Länge, erlaubte Sonderzeichen) • z.B: Verlag&Ort Verlag_x0026_Ort (das Zeichen & darf im XML-Markup nicht auftreten und wird durch den Unicode-Wert ersetzt) – Abbildung zwischen SQL- und XML (Schema)Datentypen – Abbildung von Datenwerten Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 44 ANSI-Standard SQL/XML /2 XML-Generierung - aus Relationen Abbildung von Relationen als XML-Dokument und XMLSchema - aus Anfrageergebnissen Hotel: - anwenderdefinierte Verfahren HotelID Name Kategorie Adresse H0001 Hotel Huebner 4 A0001 H0002 Warnemuender Hof 3 A0002 - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur <Hotelinformationen> <Hotel> <HotelID>H0001</HotelID> <Name>Hotel Huebner</Name> <Kategorie>4</Kategorie> <Hoteladr>A0001</Hoteladr> </Hotel> <Hotel> ... </Hotel> <Adresse> ... </Adresse> </Hotelinformationen> Abbilden von Anfrageergebnissen als XML-Dokumente und XML-Schemata Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 45 XML Developer's Kit (Oracle XDK) XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren Grundbausteine zum Lesen, Manipulieren, Transformieren und Anzeigen von XML-Dokumenten XML SQL Utility (XSU) unterstützt die Ausgabe von Datenbankinhalten mit XML-Syntax – vollständige Inhalte relationaler Datenbanken auf XML-Dokumente, – Abbildung der Ergebnisse von SQL-Anfragen – in XMLGEN: einfache Änderungen an den XML-Dokumenten möglich (Bezeichnungen des Markups) – individuell angepasste XML-Dokumente: Einsatz von XSLT - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur Anfrageergebnisse: XML-Text oder DOM-Graphen Ab Version 9i, Release 2: XML-Schema für die XMLErgebnisse der SQL-Anfragen (Darstellung der Typinformationen) Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 46 IBM DB2 UDB XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur XML-Extender Generieren von XML-Dokumenten aus DB2-Datenbanken Syntax der Dokumente wird durch DAD-Dateien (- Data Access Definition) festgelegt Vorhin vorgestellte Funktionen wie xmlelement, xmlattributes, … werden unterstützt Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 47 Microsoft SQL-Server XML-Generierung Ausgabe der Ergebnisse von SQL-Anfragen als XMLDokumente Erweiterung der SQL-Anfrage um die Spezifikation FOR XML { RAW, AUTO, EXPLICIT } (bei Verwendung von „AUTO“ erhält man das in SQL/XML definierte Ausgabeformat) drei verschiedene Ausgabeformate – verschiedene Formate mit feststehender Syntax – individuelle Festlegung der XML-Syntax durch speziell erweiterte Anfragen - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 48 Zusammenfassung XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur verschiedene Methoden existieren, um XML-Dokumente aus anderweitig elektronisch gespeicherten Informationen zu generieren Schwerpunkt dabei relationale und objektrelationale Datenbanken viele Methoden werden in kommerziellen Datenbanksystemen umgesetzt durch SQL/XML ist eine Vereinheitlichung erreicht, die sich (zukünftig) in allen Systemen wiederfinden wird Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 49 Literatur / 1 XML-Generierung - aus Relationen - aus Anfrageergebnissen Lee Buck: XML representation of a relational database, http://www.w3.org/XML/RDB.html Tim Bray: Adding Strong Data Typing to SGML and XML, http://www.textuality.com/xml/typing.html - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur Jim Melton: WG3 Tutorial Presentation on 2000-10-09, ISO/IEC JTC/SC 32 - Data Management and Interchange, United States of America (ANSI), 2000 Jim Melton: ISO-ANSI Working Draft XML-Related Specifications (SQL/XML), http://www.sqlx.org/, 2001 SQL/XML Jayavel Shanmugasundaram, Eugene J. Shekita, Rimon Barr, Michael J. Carey, Bruce G. Lindsay, Hamid Pirahesh, Berthold Reinwald: Efficiently Publishing Relational Data as XML Documents, VLDB, 2000 Thomas Courvoisier, Guntram Flach: Integration relationaler Datenstrukturen in XMLApplikationen - database to XML Servlet, 30. GI Jahrestagung, Workshop InternetDatenbanken, 2000 Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 50 Literatur / 2 XML-Generierung - aus Relationen - aus Anfrageergebnissen - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken - aus beliebigen Informationen - Systeme - Literatur Mary Fernandez, Wang-Chiew Tan, Dan Suciu: SilkRoute: Trading between Relations and XML , WWW9, http://db.cis.upenn.edu/DL/rxl/rxl.html, 2000 Mary Fernandez, Yana Kadiyska, Atsuyuki Morishima, Dan Suciu, Wang-Chiew Tan: SilkRoute a framework for publishing relational data in XML, Unpublished, Manuscript availabe from www.cs.washington.edu/homes/suciu, 2002 Micheal Carey, Daniela Florescu, Zachary Ives, Ying Lu,Jayavel Shanmugasundaram, Eugene Shekita, Subbu Subramanian: XPERANTO: Publishing Object-Relational Data as XML, WebDB Informal Proceedings, May, 2000 Volker Turau: Making legacy data accessible for XML applications, http://www.informatik.fh-wiesbaden.de/~turau/DB2XML/index.html,2000 Volker Turau: Generieren von XML-Dokumenten aus relationalen Datenbanken, 4. Darmstädter XML Kongress, XML und Datenbanken, Dezember, 2000 Christian Ettinger: Ein Java-Werkzeug zur Transformation von relationalen Datenbanken nach XML-Schema, FH Wiesbaden, Fachbereich Informatik, 2000 Ramnivas Laddad: XML APIs for databases, http://www.javaworld.com/javaworld/jw01-2000/jw-01-dbxml.html, 2000 Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 51 Literatur /3 XML-Generierung Ronald Bourret: XML-DBMS - Middleware for Transferring Data between XML Documents and Relational Databases, http://www.rpbourret.com/xmldbms/index.htm - anwenderdefinierte Verfahren - aus objektrelationalen Datenbanken Gregor Zimmermann: Repräsentation von Objekt-relationalen Daten in XML, Studienarbeit, Universität Rostock, Fachbereich Informatik, 2002 Sascha Klopp: Automatische Generierung von virtuellen XML-Sichten aus relationalen Datenbankschemata und Übersetzung von XQuery-Anfragen nach SQL, GI-Arbeitskreis Grundlagen von Informationssystemen, 14. Workshop über Grundlagen von Datenbanken, 2002 - aus Relationen - aus Anfrageergebnissen - aus beliebigen Informationen - Systeme - Literatur Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 52