23
XML und Datenbanken

XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

Embed Size (px)

Citation preview

Page 1: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

XML und Datenbanken

Page 2: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

Motivation XML-Dokumente können für sehr verschiedene

Anwendungen eingesetzt werden Aussehen der Dokumente unterscheidet sich

stark

Vielzahl von Methoden zur Speicherung existiert verschiedene Abfragemethoden Mehrere Varianten zur Modellierung von XML-

Dokumenten und deren Struktur

Page 3: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

Daten oder Dokumente (1) „Lesbare Dokumente“ (dokumentzentriert)

– sind selten genau gleich strukturiert– Reihenfolge ist wichtig– sinntragende Daten auf allen Ebenen, viel Mixed

Content– Volltextsuche ist unabdingbar, aber nicht

ausreichend– Beispiele

Zeitschriftenbeiträge, Bücher Gebrauchsanweisungen, Handbücher e-Mail Präsentationen Verträge

– 70% der relevanten Geschäftsinformationen in Textdokumenten

Page 4: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

Daten oder Dokumente (2) Datenzentrierte Dokumente

– wie Daten im herkömmlichen Sinn (z.B. in relationalen Datenbanken)

– Reihenfolge ist oft nicht relevant– sind einheitlich und meist einfach strukturiert– haben Datentypen– sinntragende Daten in Blattelementen oder Attributen– Mixed Content ist die Ausnahme (oder Dekoration)– Beispiele:

Telefonbücher wissenschaftliche Daten Fahrpläne, Flugpläne Bestellungen

Page 5: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

Daten und Dokumente Semistrukturierte Daten

– Strukturiert: Felder– Unstrukturiert: binäre Daten wie Text, Video- und Audio-Streams,

Bilder (in XML: External Entities, CDATA Sections)– unregelmäßiges Auftreten von Hyperlinks

Mangel an Struktur– Mischform aus datenzentriert und dokumentenzentriert– Struktur implizit oder verborgen– Integration von Daten aus heterogenen Quellen (hierfür

strukturiertes Modell oft zu restriktiv)– Bestimmte Anfragetypen ignorieren Schema bewußt (z.B.

Zeichenkettensuche über gesamte Datenbank hinweg) Beispiel Krankenakten:

– Krankenakten Daten: Geburtsdatum, Adresse, etc, binäre Daten: Röntgenbilder Dokumente: Diagnose, Anamnese etc.

Page 6: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

Klassifikation: Beispiel

Datenzentrierte Dokumente (strukturiert, regulär

Beispiele: Produktkataloge, Bestellungen, Rechnungen)

Dokumentzentrierte Dokumente (unstrukturiert, irregulär

Beispiele: wissenschaftliche Artikel,

Bücher, E-Mails, Webseiten)

Semistrukturierte Dokumente (datenzentrierte und dokumentenzentrierte

Anteile

Beispiele: Veröffentlichungen, Amazon)

<order> <customer>Meyer</customer> <position> <isbn>1-234-56789-0</isbn> <number>2</number> <price currency=„Euro“>30.00</price> </position></order>

<content>XML builds on the principles of two existing languages, <emph>HTML</emph> and <emph>SGML</emph> to create a simple mechanism .. The generalized markup concept ..</content>

<book> <author>Neil Bradley</author> <title>XML companion</title> <isbn>1-234-56789-0</isbn> <content> XML builds on the principles of two existing languages, <emph>HTML</emph> and .. </content></book>

Page 7: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

Warum XML in DatenbankenXML als SGML-Nachfolger

– entstehende Dokumente müssen gespeichert werdenXML als Austauschformat

– Originaldaten werden in XML transformiert Austauschdaten müssen aber ebenfalls gespeichert werden

(z.B. beim Empfänger)

Nur die Speicherung in Datenbanken garantiert– mächtige und effiziente Suchfunktionen– transaktionsorientierte Speicherung– Mehrbenutzerbetrieb

Anwendungen– Dokumentenverwaltung– Website-Management– Verkaufsunterstützung– Information Publishing

Page 8: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

Volltextindex und XML-Index

Volltextindex

Als Dateien / Clobs

Speicherung derDokumentstruktur

StrukturierteSpeicherung

in Datenbanken

VollständigesMapping

Benutzer-definiertesMapping

Abbilden des DOM-Modells

Abbildung derGraphstruktur

Für dokument-zentrierte XML-Dokumente

Für daten-zentrierte XML-Dokumente

Für semistrukturierte XML-Dokumente

Speicherung von XML-Dokumenten

Page 9: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK LeipzigBeispielSpeicherung mit Volltext-Index

- bekannte Methode (älter als relationale Datenbanken)- Boolesches Retrieval (AND, OR, NOT)

Verweis

Warnemünde

<adresse> <plz>18119</plz> <ort>Warnemünde</ort>

<nummer>12</nummer> </adresse> <anreisebeschreibung>

</anreisebeschreibung></hotel>

<hotelname>Hotel Hübner</hotelname>

Aus Richtung Rostock kommend ...

<hotel>

Begriff

anreisebeschreibung

ort

Rostock

hotel

<strasse>Seestraße</strasse>

Page 10: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK LeipzigBeispielRelationale Speicherung von XML

- DTD ist erforderlich - Anfragen verwenden SQL - Funktionalität- Datentypen

<hotel url="www.hotel-huebner.de">

<hotelname>Hotel Hübner</hotelname> <adresse> <ort>Warnemünde</ort>

...

</adresse> <preise> <einzelzimmer>198</einzelzimmer>

</preise>...

</hotel>

<strasse>Seestraße</strasse>

XML-Dokument HotelID Hotelname Adresse Preise

H0001 Hotel Hübner A0001 P0001

AdresseID Ort Strasse ...

A0001 Warnemünde Seestraße

PreiseID Einzelzimmer ...

P0001 198

Hotel:

Preise:

Adresse:

Page 11: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK LeipzigBeispielHybride Ansätze zur Speicherung

Auswahl

unterschiedlicher

Speicherungsmethoden

für verschiedene

Dokumentanteile

Hotel

0381/5434-0

Ort Strasse Telefon

Strand Hotel Hübner Warnemünde Seestraße

komfortabel eingerichtetes 4-Sterne Hotel direkt an der Strandpromenade von Warnemünde mit Blick auf Leuchtturm, Hafeneinfahrt

Sie finden unser elegant und

und Ostsee.

<hotel>

<adresse><plz>18119</plz>

<nummer>12</nummer> <telefon>0381/5434-0</telefon>

</adresse> <hausbeschreibung> Sie finden unser elegant und

</hotel>

komfortabel eingerichtetes 4-Sterne Hotel direkt an der Strandpromenade von Warnemünde mit Blick auf Leuchtturm, Hafeneinfahrt und Ostsee. </hausbeschreibung>

<hotelname>Strand Hotel Hübner</hotelname>

<ort>Warnemünde</ort> <strasse>Seestraße</strasse>

Page 12: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

XSQL XML + SQL Bestandteil des Oracle XDK (XML Development

Kit) XML-formatierte Ausgabe von relational

gespeicherten Daten in jedem DBMS verfügbar Grundidee:

– relational gespeicherte Daten als XML darstellen– Einbettung von SQL-Anweisungen in XML– Weiterverarbeitung mittels XSL-Stylesheets möglich

Page 13: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

Vorteile von XSQL Pages einfache Generierung von XML-Dokumenten

auf der Basis von SQL Queries erlaubt Insert-, Update- und Delete-Operationen unterstützt XSL Transformation durch

Anwendung von XML Stylesheets, beliebige Zielformate wie z.B. HTML

dient als Input für den XSQL Page Processor

Trennung der Daten von der Darstellung

Page 14: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

XSQL Page Verarbeitung

Bestandteile XSQL Pages

– SQL Queries– DML und DDL in XML Tags

XSQL Page Processor (in Java)– nimmt XSQL Pages als Input– erzeugt dynamische XML Seiten mit den Ergebnissen der SQL-

Queries

XSQL Servlet– erlaubt XSQL Page Verarbeitung im Web

Erweiterbare Stylesheets– optional– XSL Transformationen zur Formatierung des Output

Page 15: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

Verarbeitung von XSQL Pages

<?xml version=“1.0“ ?><xsql:query connection=“demo“ xmlns:xsql=“urn:oracle-xsql“> SELECT ‘Hello World‘ AS greeting FROM DUAL</xsql:query>

<?xml version=“1.0“ ?><xsql:query connection=“demo“ xmlns:xsql=“urn:oracle-xsql“> SELECT ‘Hello World‘ AS greeting FROM DUAL</xsql:query>

XSQL Page Input

XML Output

<ROWSET><ROW num=“1“><GREETING>Hello World</GREETING></ROW></ROWSET>

<ROWSET><ROW num=“1“><GREETING>Hello World</GREETING></ROW></ROWSET>

Einführendes Beispiel

Page 16: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

XSQL Queries und ConnectionsXSQL Page erlaubt die Definition von SQL Queries Query ist eingebettet in ein xsql:query Tag Connection-Attribut definiert die Verbindungsinformaiton

zur Datenbank Connection Name wird aufgelöst in einer

Konfigurationsdatei XSQLConfig.xml (in xsql/lib) Beispiel

<connectiondefs><connection name=“demo“><username>xuser</username><password>xuser</password><dburl>jdbc:oracle:thin:@localhost:1521:mydb</dburl><driver>oracle.jdbc.driver.OracleDriver</driver>

</connection>... </connectiondefs>

<connectiondefs><connection name=“demo“><username>xuser</username><password>xuser</password><dburl>jdbc:oracle:thin:@localhost:1521:mydb</dburl><driver>oracle.jdbc.driver.OracleDriver</driver>

</connection>... </connectiondefs>

Page 17: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

XSQL Page Processor Architektur

XSL Stylesheet

XSQL Page

XML o.a. Formate

XSQLConfig

Datenbank

XSQL Page Processor

XSLT

XML Parser

XML Utility

JDBC

Page 18: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

Überblick über XSQL Tags <xsql:query> <xsql:dml> <xsql:set-stylesheet-param> <xsql:insert-request> <xsql:include-xml> <xsql:include-request-params> <xsql:include-xsql> <xsql:include-owa> <xsql:action> <xsql:ref-cursor-function> <xsql:include-param> <xsql:set-session-param> <xsql:set-page-param> <xsql:set-cookie> <xsql:insert-param>

Page 19: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

Anpassung von XSQL Queries

rowset-element Elementname für Anfrageergebnis; leerer String, wenn kein Elementname gewünscht

row-element Elementname für jede Zeile im Anfrageergebnis; leerer String, wenn kein Name gewünscht

max-rows Maximalanzahl von Zeilen, die vom Ergebnis ausgegeben werden sollen, sinnvoll z.B. für Top-N-Queries

skip-rows Anzahl von Zeilen, die übersprungen werden soll vor Darstellung des Ergebnisses

id-attribute Attributname für id-Attribute für jede Zeile im Anfrageergebnis

id-attribute-column

Zu nutzender Spaltenname, um den Wert des id-Attributs in jeder Ergebniszeile zu liefern

null-indicator Wenn auf “y“ oder „“yes“ gesetzt: Null-Indicator-Attribut bei den Elementen genutzt, dessen Wert NULL ist

Attribute für xsql:query:

Page 20: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

XSQL Query Parameter

Beispiel: Deklaration einer parametrisierten Query in einer XSQL Page

Die Parameterwerte können in einer URL geliefert werden, z.B.:http://localhost/xsql/demo/emp.xsql?find=A&sort=SAL

<?xml version=“1.0“ ?><?xml-stylesheet type=“text/xsl“ href=“emp.xsl“?><xsql:query connection=“demo“ xmlns:xsql=“urn:oracle-xsql“

find=“%“ sort=“ENAME“ null-indicator=“yes“>

SELECT * FROM EMP WHERE ENAME LIKE ‘%{@find}%‘ORDER BY {@sort}

</xsql:query>

<?xml version=“1.0“ ?><?xml-stylesheet type=“text/xsl“ href=“emp.xsl“?><xsql:query connection=“demo“ xmlns:xsql=“urn:oracle-xsql“

find=“%“ sort=“ENAME“ null-indicator=“yes“>

SELECT * FROM EMP WHERE ENAME LIKE ‘%{@find}%‘ORDER BY {@sort}

</xsql:query>

Page 21: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

Aufruf XSQL Page Processor

Kommando-Zeile

JavaApplikation

XSQLServlet

Java ServerPage

XSQL PageProcessor

Page 22: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

Aufruf XSQL von der Kommandozeile

Beispiel1• Lese Fluginformation von San Francisco mittels xsql

Command Line Utility>xsql airport.xsql airport=sfoxml-stylesheet=none

Beispiel2• Es hängt von der XSQL Page ab, welche Aktion

ausgeführt werden sollen• Ausführung einer Insert-operation, 2. Parameter gibt

die XML Quelle an, die durch XSQL Page eingefügt werden soll, dafür kann URL verwendet werden>xsql insertnewsstory.xsql

posted-xml=http://www.news.com/source

Page 23: XML und Datenbanken. © Prof. T. Kudraß, HTWK Leipzig Motivation XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden Aussehen der

© Prof. T. Kudraß, HTWK Leipzig

XSQL Servlet Environment

Web Server mitServlet Engine

XSQL PageProcessor

XSQL Servlet

JDBChttp

Oracle DBWeb-Browser