Kapitel 6 Abbildung von Datenbanken auf XML Standard-Abbildung von Tabellen Standard-Abbildung von Anfrageergebnissen Individuelle Abbildungsvorschriften Anforderungen an die Generierung von XML-Dokumenten aus Datenbanken z Datenbanksysteme sind sehr weit verbreitet z Grosse Datenmengen sind in Datenbanken elektronisch gespeichert z XML attraktiv als Format zum Austausch zwischen Datenbanken – – – Transport via Internet-Protokolle definiert Vereinheitlichung durch gemeinsame DTDs oder XML-Schemas möglich Viele Tools verfügbar z Austausch erfordert Export und Import der Daten (unter anderem) z Anforderungen an den Datenexport – – – Standard-Abbildung von Tabellen Standard-Abbildung von Anfrageergebnissen oder Sichten Individuelle Abbildungsvorschriften Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) 6-2 Allgemeine Problemstellung XML-Dokument Datenbank Tabellen- und Spaltennamen Datentypen ? Daten aus Datenbanken Element- und Attributnamen Datentypen von XML-Schema Inhalte in XML-Dokumenten z Problem ist für alle Hersteller von Datenbanksystemen im Prinzip gleich z SQL/XML - Standardisierungsinitiative verschiedener Hersteller (siehe Kapitel 7) Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) 6-3 Generieren von XML-Dokumenten aus Datenbanken Generieren von XML-Dokumenten Standard-Abbildung von Tabellen • Feste Transformationsregeln • Feststehende Syntax des entstehenden XML-Dokumentes Standard- Abbildung von Anfrageergebnissen Individuelle Abbildungsvorschriften • Lee Buck (Grundprinzip) • Tim Bray, Lee Buck (Datentypen in DTDs ergänzen) • Oracle • DB2 • Informix • SQL/XML (Standardisierungsinitiative) Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) 6-4 Standard-Abbildung von Tabellen z Datenbank als dreistufige Hierarchie von – – – z Darstellung der Datenbankinhalte und Struktur im XML-Dokument – – z Datenbank Tabellen Spalten durch Elemente durch Elemente und Attribute Beispielrelationen: Hotel: Adresse: HotelID Name Kategorie Adresse AdresseID Ort PLZ Strasse Nr H0001 Hotel Hübner 4 A0001 A0001 Warnemünde 18119 Seestrasse 12 H0002 Warnemünder Hof 3 A0002 A0002 Warnemünde 18119 Stolteraer Weg 8 Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) 6-5 Standard-Abbildung von Tabellen: Darstellung durch Elemente Hotel: Adresse: HotelID Name Kategorie Adresse AdresseID Ort PLZ Strasse Nr H0001 Hotel Hübner 4 A0001 A0001 Warnemünde 18119 Seestrasse 12 H0002 Warnemünder Hof 3 A0002 A0002 Warnemünde 18119 Stolteraer Weg 8 <Hotelinformationen> <Hotel> <HotelID>H0001</HotelID> <Name>Hotel Hübner</Name> <Kategorie>4</Kategorie> <Hoteladr>A0001</Hoteladr> </Hotel> <Hotel> ... </Hotel> <Adresse> ... </Adresse> </Hotelinformationen> Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) Standard-Abbildung der Spaltennamen auf Elementnamen 6-6 Standard-Abbildung von Tabellen: Darstellung durch Elemente und Attribute Hotel: Adresse: HotelID Name Kategorie Adresse AdresseID Ort PLZ Strasse Nr H0001 Hotel Hübner 4 A0001 A0001 Warnemünde 18119 Seestrasse 12 H0002 Warnemünder Hof 3 A0002 A0002 Warnemünde 18119 Stolteraer Weg 8 <Hotelinformationen> <Hotel HotelID='H0001' Name='Hotel Hübner' Kategorie='4' Hoteladr='A0001' /> <Hotel ... /> <Adresse ... /> </Hotelinformationen> Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) Standard-Abbildung der Spaltennamen auf Attributnamen 6-7 Abbildung von Schlüssel-Fremdschlüssel-Beziehungen z Zielsetzung: Schlüssel und Fremdschlüssel sollen möglichst adäquat im XML-Dokument wiedergegeben werden z Abbildung von Schlüssel- und Fremdschlüsselbeziehungen auf Elementhierarchien – – 1:n-Beziehungen werden auf geschachtelte Elemente im Dokument abgebildet n:m-Beziehungen sind problematisch: z Verwendung von XML-Schema – z Abbildung auf ID/IDREF Denormalisierter Inhalt im XML-Dokument – eventuell hohe Redundanz Darstellung von Schlüsseln und Fremdschlüsseln: Einsatz von key / keyref Verwendung einer DTD – Darstellung von Schlüsseln und Fremdschlüsseln Abbildung auf Attribute (ID/IDREF) Eindeutigmachen der Schlüssel- und Fremdschlüsselwerte (ID muss eindeutig sein für das ganze Dokument) Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) 6-8 Hierarchien aus Schlüssel- und Fremdschlüsselbeziehungen Hotel: Adresse: FK HotelID Name Kategorie Adresse AdresseID Ort PLZ Strasse Nr H0001 Hotel Hübner 4 A0001 A0001 Warnemünde 18119 Seestrasse 12 H0002 Warnemuender Hof 3 A0002 A0002 Warnemünde 18119 Stolteraer Weg 8 <!ELEMENT Hotel (HotelID, Name, Kategorie?, Hoteladr)> <!ELEMENT Hoteladr (AdresseID, Ort, PLZ, Strasse, Nr)> <!ELEMENT HotelID (#PCDATA)> <!ELEMENT Name (#PCDATA)> <!ELEMENT Kategorie (#PCDATA)> <!ELEMENT AdresseID (#PCDATA)> <!ELEMENT Nr (#PCDATA)> <!ELEMENT Ort (#PCDATA)> <!ELEMENT PLZ (#PCDATA)> <!ELEMENT Strasse (#PCDATA)> Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) Auflösung der FremdschlüsselBeziehungen durch Einbettung der referenzierten Elemente 6-9 Abbildung von Datentypen z Verwendung von XML-Schema: Vielzahl vordefinierter Datentypen <xsd:element name=''ort'' type=''xsd:string''> <xsd:element name=''plz'' type=''xsd:integer''> z Erweiterung von DTDs um reservierte Attribute <ort xml-sqltype=''varchar''>Rostock</ort> <plz xml-sqltype=''integer''>18055</plz> z XML-Prozessoren oder Applikationen müssen diese Informationen kennen und auswerten Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) 6-10 Abbildung von objektrelationalen Datenbanken (1) z Objektrelationale Datenbanken unterstützen nicht-atomare, komplexe Spalten – – – – z tupelwertig kollektionswertig objektwertig referenzwertig Vorhandene Struktur soll in das XML-Dokument übernommen werden – – Instanzenebene Schemaebene Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) 6-11 Abbildung von objektrelationalen Datenbanken (2) z Instanzenebene: adäquate Abbildung von Instanzen mit komplexen Attributen (Tupel, Mengen oder Listen) HotelID H0001 Hotelname <Adresse> Hotel Hübner {Telefon} PLZ Ort Strasse Nr 18119 Warnemünde Seestrasse 12 {'0381/5434-0', '0381/5434-44'} <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" - WS 2002/2003 (Schek/Türker/Grabs) 6-12 Abbildung von objektrelationalen Datenbanken (3) z Schemaebene: Ableiten eines XML-Schema oder einer DTD aus objektrelationalem Schema INFORMIX-DDL 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-DTD <!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" - WS 2002/2003 (Schek/Türker/Grabs) 6-13 Eigenschaften der Abbildung von Tabellen z Ausgabe der Datenbank – z keine nein – – z Erhalt von Datentypen – – Speicherung von Schlüsseln und Fremdschlüsseln – Variables Ausgabeformat – z vollständig Erforderliche Informationen – z z durch erweiterte DTDs durch ein XML-Schema Weitere Besonderheiten – – – Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) Abbilden auf Hierarchien im XMLDokument ID/IDREF XML-Schema Parser müssen DTD-Erweiterungen auswerten XML-Schema ist wesentlich besser geeignet als DTDs adäquate Darstellung von Tupeln, Mengen, Listen und Referenzen aus objektrelatioanlen Datenbanken im XML-Dokument 6-14 Generieren von XML-Dokumenten aus Datenbanken Generieren von XML-Dokumenten Standard-Abbildung von Tabellen Standard-Abbildung von Anfrageergebnissen • Feste Transformationsregeln • Feststehende Syntax des entstehenden XML-Dokumentes Individuelle Abbildungsvorschriften • Oracle • DB2 • Microsoft • Auswahl der dazustellenden Daten durch die Datenbankanfrage Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) 6-15 Abbildung von Anfrageergebnissen z Ergebnisse von SQL-Anfragen als XML-Dokumente bzw. XML-Elemente ausgeben z Abbildung der Ergebnistabelle in eine Standard-Repräsentation – – – – Ergebnistabelle auf rowset-Element Jede Zeile auf ein row-Element Tabellenspalten auf Sub-Elemente oder XML-Attribute Dadurch kein variables Ausgabeformat XML SQL SELECT Name, Kategorie, Ort FROM Hotel, Adresse WHERE Ort='Warnemünde' AND Hotel.Hoteladr=Adresse.AdresseID z <rowset> <row no='1'> <Name>Hotel Hübner</Name> <Kategorie>4</Kategorie> <Ort>Warnemünde</Ort> </row> </rowset> Ähnliches Verfahren Bestandteil im zukünftigen SQL/XML-Standard Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) 6-16 Eigenschaften der Abbildung von Datenbankanfragen z Ausgabe der Datenbank – z Speicherung von Schlüsseln und Fremdschlüsseln – Datenbankanfrage/Datenbanksicht – nein Erhalt von Datentypen bei tabelleninternen Beziehung abbildbar Variables Ausgabeformat – z partiell Erforderliche Informationen – z z z Einbettung ID/IDREF XML-Schema Weitere Besonderheiten – keine geht typischerweise verloren, wäre aber ableitbar Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) 6-17 Generieren von XML-Dokumenten aus Datenbanken Generieren von XML-Dokumenten Standard-Abbildung von Tabellen Standard-Abbildung von Anfrageergebnissen • Silkroute (SQL,XML-QL) • Courvoisier/ Flach (DaS) (SQL+Muster für Ergebnis) • Shamnagunsadaram et. al. • XPERANTO • Volker Turau (DB2XML) (XSLT) • Laddad (XSLT) Individuelle Abbildungsvorschriften • Auswahl der darzustellenden Daten durch die Datenbankanfrage • Individuelle Transformationsregeln durch den Benutzer • Dadurch Spezifikation der Syntax des entstehenden XML-Dokumentes Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) 6-18 Varianten für individuelle Abbildungsvorschriften Erweiterte Datenbankanfrage mit Transformationsregeln 1 2 Datenbank XML-Sicht Standardtransformation Standardtransformation XML-Dokument XML-Anfragesprache 3 Standardisiertes XML-Dokument Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) XSLTStylesheet 6-19 Erweiterte Datenbankanfragesprachen z Anteile von Datenbank- und XML-Anfragesprache z Erweiterung des SQL-Dialektes um XML-Operatoren Erweiterte Datenbankanfrage Datenbank XML-Dokument z Datenbankanfrage (in SQL) zur Auswahl der darzustellenden Daten z XML-Anfrage zur Bestimmung der Syntax des Zielformates (beispielsweise: CONSTRUCT / RETURN / FOR XML) Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) 6-20 Erweiterte Datenbankanfragesprachen Ergebnis: Anfrage: <hotel> <name>Hotel Hübner</name> <adresse> <plz>18119<plz> <wohnort>Warnemünde</wohnort> <strasse>Seestrasse</strasse> <hausnummer>12</hausnummer> </adresse> </hotel> select * from Hotel, Adresse where (Hoteladr = AdresseID) construct <hotel> <name>{$name}</name> <adresse> <plz>{$plz}<plz> <wohnort>{$ort}</wohnort> <strasse>{$strasse}</strasse> <hausnummer>{$nr}</hausnummer> </adresse> </hotel> XML-Element und XMLAttributnamen frei wählbar Zugriff auf die Spalten im SQLErgebnis Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) 6-21 Individuelle Abbildungsvorschriften und XML-Anfragen z Anfrage an die Datenbank mit XML-Anfragesprachen ermöglichen z Naive Umsetzung – – – z Kompletten Datenbankinhalt in ein XML-Dokument umsetzen Komplettes XML-Dokument mit XML-Anfrage verarbeiten Sehr ineffizient (XML-Dokument evtl. gross, nur Teile davon gebraucht) Besser: XML-Sicht auf die Daten in einer Datenbank – – – XML-Dokument wird nicht materialisiert (virtuell) XML-Anfragen werden an dieses virtuelle XML-Dokument gestellt Möglichst grosser Anteil der Verabeitung mittels nativer DB-Engine XML-Anfrage Datenbank XML-Sicht XML-Dokument Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) 6-22 Speziallfall: Annotationen von DTD oder XML-Schema z Festlegen der genauen Verbindung von Datenbank-Entitäten und XMLElementen bzw. XML-Attributen Datenbank: Hotel-URL Tabelle Hotel www.hotel-huebner.de Name Einzelzimmer Hotel Hübner 198 Abbildungsvorschrift: <ClassMap> <ElementType Name=''hotel''/> <ToClassTable> <Table Name=''Hotel''> </ToClassTable> <PropertyMap> <Attribute Name=''url''/> <ToColumn> <Column Name=''Hotel-URL''/> </ToColumn> </PropertyMap> <PropertyMap> <ElementType Name=''hotelname''/> ... Ergebnisdokument: <hotel url=''www.hotel-huebner.de''> <hotelname> Hotel Hübner </hotelname> <einzelzimmer> 198 </einzelzimmer> </hotel> Angabe der DB-Tabelle Konstruktion des XMLErgebnisses Angabe des DB-Attributs Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) 6-23 Beispiel Silkroute z Silkroute – – z Erzeugen einer XML-Sicht – – z Freie Wahl des Ausgabeformats Sichtinhalt wird nicht materialisiert XML-Anfragen über diese XML-Sicht – – z Middleware zwischen RDBMS und XMLApplikation Entwickelt von AT&T und Uni Pennsylvania XML-QL XQuery Problematik – – Beispiel einer View-Definition in Silkroute-Syntax: 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> Ableiten der SQL-Queries aus der Sichtdefinition Meist muss nicht die ganze Sicht berechnet werden Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) 6-24 Eigenschaften individueller Abbildungsvorschriften z Ausgabe der Datenbank – z – – XML-Anfrage XSLT Sichtdefinition Speicherung von Schlüsseln und Fremdschlüsseln – – – z Variables Ausgabeformat – z vollständig oder partiell Erforderliche Informationen – z z Element-Schachtelung ID/IDREF XML-Schema Weitere Besonderheiten – keine ja Erhalt von Datentypen – gehen typischerweise verloren, wären aber ableitbar Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) 6-25 Zusammenfassung z Verschiedene Methoden existieren, um XML-Dokumente aus anderweitig elektronisch gespeicherten Informationen zu generieren – Standard-Abbildung von Tabellen auf XML – Standard-Abbildung von Abfrageergebnissen auf XML – Ergänzung von Datenbankabfragen um XML-Funktionalität Standard-XML-Dokument Individuelle Abbildung von Tabellen und Abfrageergebnissen z Standard-XML-Dokument: festgelegtes Ausgabeformat XML-Sichten auf Datenbankinhalte XML-Anfragesprachen arbeiten auf der Sicht Schwerpunkt dabei relationale und objektrelationale Datenbanken Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs) 6-26