Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
XML, QPATH, XQUERY: NEUE KONZEPTE FÜR DATENBANKEN4. ÜbungSQL/XML
Agenda
XML zum Abbilden von DB-Inhalten Motivation Abbildungsvorschriften
Vollständige Abbildung mithilfe von XML-Schema Beispiel Laender SQL/XML
Transformation der Inhalte nach Abbildungsvorschriften Übungen
Beispiel Bibliothek (s. Aufgabe 3) Aufgabe 4
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
2
XML zum Abbilden von DB-InhaltenMotivation
RDBMS sehr ausgereift (stabil, zuverlässig, schnell, ACID, …) Große Datenmengen bereits verfügbar Datenaustausch über DB-Produkt hinweg umständlich
Verschiedene Formate Dumpfiles nicht vom Menschen lesbar Nutzerdefinierte Formate nur schwer erzeugbar
XML Standardisiertes Austauschformat Menschenlesbar „einfache“ Transformation in andere Formate
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
3
XML zum Abbilden von DB-InhaltenMethoden zum Erstellen einer Abbildung verschiedene (standardisierte) Methoden siehe auch
SQL/XML aus Aufgabe 3: Vollständige (schematische) Abbildung von
Datenbanken Informationserhaltend: (Alle) Gewünschte Informationseinheiten
der Datenbank müssen sich vollständig und konsistent im XML-Dokument wiederfinden.
Grundprinzip Darstellung von Relationen, Tupeln und Attributen durch XML-
Elemente oder -Attribute Abbildung von Schlüsseln und Fremdschlüsseln Abbilden von Typinformationen Ableitung von Elementhierarchien
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
4
XML zum Abbilden von DB-InhaltenBeispiel – Laender
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
5
XML zum Abbilden von DB-InhaltenAbbildungsvorschrift aus Aufgabe 3 vierstufige Verschachtelung:
Bezeichnung der Datenbank Relationennamen Tupel Attributnamen
Beispiel Laenderinformationen:CREATE TABLE Laender(
ID VARCHAR(13) NOT NULL,BevoelkerungsVerweis INTEGER,Hauptstadt VARCHAR(50),PRIMARY KEY(ID),FOREIGN KEY(BevoelkerungsVerweis) REFERENCES Bevoelkerungen);
<Datenbankname><Relationnenname>
<Tupel><Attributname></Attributname><Attributname>
…
6
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
<Laenderinformationen><Laender>
<Laender_Tupel><ID>GER</ID><Bevoelkerungsverweis>
0</Bevoelkerungsverweis>
<Hauptstadt>Berlin</Hauptstadt>
…
XML zum Abbilden von DB-InhaltenAbbildungsvorschrift aus Aufgabe 3 Abbilden des DB-Schema auf XML-Schema vierstufige Verschachtelung Relationen- und Attributnamen auf Elementnamen SQL-Datentypen auf Datentypen von XML-Schema Tupel auf Elemente mit der Bezeichnung: Relationenname + „_Tupel“ Ableiten von Elementhierarchien
Auswertung von Schlüssel-Fremdschlüssel-Beziehungen Kardinalitäten beachten
1:1 – Kardinalität = 1; 1:n – Kardinalität = unbounded & Fremdschlüssel ist unique; m:n – Kardinalität = unbounded
meist sinnvoll per Hand festzulegen, da Verweise oft das bessere Mittel sind
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
7
XML zum Abbilden von DB-InhaltenAbbildungsvorschrift aus Aufgabe 3 Ableiten von Elementhierarchien
bisher: direkte Darstellung von Relationen in XML-Dokumenten keine hierarchischen Beziehungen zwischen Relationen durch Auswertung von Schlüsseln und Fremdschlüsseln Ableitung von
hierarchischen Strukturen möglich Vorgehen:
Root-Tabelle der Datenbank wählen Element erstellen, das der Relation entspricht (enthält Elemente, die den
Attributen entsprechen) falls ein Attribut als Fremdschlüssel definiert ist zugehörige Relation (mit
Schlüssel) hierarchisch einsortieren Abbildungsprozess nur eindeutig, falls Fremdschlüssel-Beziehungen der
Datenbank einen Baum darstellen falls Datenbank durch Normalisierung zum Erreichen der ersten Normalform
entstanden ist, macht dieses Verfahren den Normalisierungsprozess rückgängig
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
8
XML zum Abbilden von DB-InhaltenAbbildungsvorschrift aus Aufgabe 3
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
9
Export mit SQL/XMLTransformation der Inhalte nach Abbildungsvorschriften
Bestandteile der Transformation Quelle
Relationen Tupel Attribute Schlüssel/Fremdschlüssel
Ziel XML-Deklaration Dokumentknoten Wurzelknoten Referenz des entsprechenden
Schemas Verschachtelung von Elementen
Hilfsmittel aus SQL/XML SQL-Anfragen
Select … XQuery-Anfragen
XMLGEN/XMLQUERY … XML-Funktionen
XMLELEMENT … XMLFOREST … …
Verschachtelung1. SELECT … FROM …, (SELECT …
FROM … UNION SELECT … FROM …) AS AA …;
2. xmlquery for $l in db2-fn:sqlquery('SELECT …;
3. SELECT XMLQUERY('… $VN ' PASSING BY REF Vorname AS "VN“) FROM Personen;
10
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
Export mit SQL/XMLBibliothek-Datenbank
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
11
Export mit SQL/XMLTransformation der Inhalte nach Abbildungsvorschriften
SELECT XMLELEMENT(NAME "Person", XMLATTRIBUTES(ID), Name) AS PersonenInXML FROM Personen;
XQUERY for $m in db2-fn:sqlquery('SELECT XMLELEMENT(name "Name", P.Name) FROM Personen P') where $m/text()='Lam'return <Nachname>{$m/text()}</Nachname>;
SELECT XMLQUERY('<Autor Vorname="{$VN}" Name="{$N}"/>' PASSING BY REF Vorname AS "VN", Name AS "N") AS Autoren FROM Personen AS P;
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
12
Export mit SQL/XMLTransformation der Inhalte nach Abbildungsvorschriften
SELECT XMLQUERY('<Autor Vorname="{$VN}" Name="{$N}"><Buch>{$T}</Buch>
</Autor>' PASSING BY REF P.Vorname AS "VN", P.Name AS "N", B.Titel AS "T")
AS AutorenMitBuchtitel FROM Personen AS P, Autoren AS A, Buecher AS B, ZuweisungBuchAutor AS Z
WHERE A.PersonenVerweis = P.ID AND Z.AutorenID = A.ID AND Z.BuchISBN = B.ISBN;
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
13
Export mit SQL/XMLTransformation aus Beispiel „Laenderinformationen“
XQUERY document {<Laenderinformationen> {attribute xsi:noNamespaceSchemaLocation {'Laenderinformationen.xsd'}}
<Laender>{for $l in db2-fn:sqlquery(
'SELECT XMLELEMENT(name "Laender", XMLELEMENT(name "ID", L.ID), XMLELEMENT(name "BevoelkerungsVerweis",
L.BevoelkerungsVerweis), XMLELEMENT(name "Hauptstadt", L.Hauptstadt)) FROM Laender AS L')
return <Laender_Tupel>{$l/node()}</Laender_Tupel>}</Laender>
</Laenderinformationen>};
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
14
Export mit SQL/XML DB2
Umgebung bereitstellen Bash: source~db2lehre/sqllib/db2profile C-Shell: source~db2lehre/sqllib/db2cshrc Windows :db2cmd
db2–Kommandointerpreter starten db2 db2 –t '<SQL-Statement> { ; <SQL-Statement> }‚
Verbindung mit Datenbank herstellen CONNECT TO <datenbankname> Z. B. „dbprakU8“ von Amsel oder Star (dort katalogisiert)
Verbindung mit Datenbank beenden DISCONNECT <datenbankname> CONNECT RESET
db2–Kommandointerpreter beenden quit
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
15
Export mit SQL/XML DB2
Ausführen von Skripten db2 -tvf script -d -i > filename
t = "terminate each statement with a semi-colon" v = "verbose" f = "the file that follows contains the commands to run" d = "add XML-Declaration, …" i = "pretty print for XML"
Dokumentationen http://www.ibm.com/developerworks/db2/library/techarticle/dm-0604saracco/ http://db2.mi.hdm-stuttgart.de/db2help/help/topic/com.ibm.db2.xquery.doc/xqrcontainer.html http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/topic/com.ibm.db29.doc/db2z_xml.htm http://www.research.ibm.com/journal/sj/452/ozcan.html
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
16
Export mit SQL/XML DB2
Zu beachten Datenbank muss UTF-8 als Encoding verwenden
Eingabedaten müssen als UTF-8 übergeben werden, sonst Konflikte bei der XML-Serialisierung
XMLGEN XMLQUERY Hilfreich bei Fehlern mit Bezeichnung SQL… ist der
Aufruf von „db2 ? SQL…“
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
17
Übungen
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
18
~vier bis fünf
XML-APIs
XQuery Im-/Export von XML mit Datenbanken
XML-Indexi
erung
SQL/XML
4. Übung - Aufgabenstellung
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
19
Abbildung von Datenbankinhalten auf XML Transformation des Inhalts der Datenbank Bibliothek
mithilfe von SQL/XML in ein XML-Dokument, welches dem in Aufgabe 3 erstelltem XML-Schema entspricht
Beantworten der gestellten Fragen mittels SQL/XML
4. Übung – AufgabenstellungBibliothek-Datenbank
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
20
Literaturangaben
XML, QPath, XQuery: Neue Konzepte für Datenbanken WS 07/08 Martin Kost
21
http://www.w3.org http://www.w3.org/TR/2004/REC-xml-20040204/ http://www.w3.org/XML/Schema#dev http://www.w3.org/TR/xmlschema-0/ http://www.edition-w3c.de/TR/2001/REC-xmlschema-0-20010502/ Klettke/Meyer: XML & Datenbanken, dpunkt, 2003 http://www.ibm.com/developerworks/db2/library/techarticle/dm-0604saracco/ http://db2.mi.hdm-stuttgart.de/db2help/help/topic/com.ibm.db2.xquery.doc/xqrcontainer.html http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/topic/com.ibm.db29.doc/db2z_xml.htm http://www.research.ibm.com/journal/sj/452/ozcan.html