XML und Datenbanken - PowerPoint PPT Presentation

About This Presentation
Title:

XML und Datenbanken

Description:

XML und Datenbanken – PowerPoint PPT presentation

Number of Views:88
Avg rating:3.0/5.0
Slides: 24
Provided by: Thomas1169
Category:
Tags: xml | datenbanken | java | servlet | und

less

Transcript and Presenter's Notes

Title: XML und Datenbanken


1
XML und Datenbanken
2
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

3
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

4
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

5
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.

6
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)
ltordergt ltcustomergtMeyerlt/customergt
ltpositiongt ltisbngt1-234-56789-0lt/isbngt
ltnumbergt2lt/numbergt ltprice currencyEurogt30.0
0lt/pricegt lt/positiongt lt/ordergt
ltcontentgt XML builds on the principles of two
existing languages, ltemphgtHTMLlt/emphgt and
ltemphgtSGMLlt/emphgt to create a simple mechanism
.. The generalized markup concept .. lt/contentgt
ltbookgt ltauthorgtNeil Bradleylt/authorgt
lttitlegtXML companionlt/titlegt ltisbngt1-234-56789-0
lt/isbngt ltcontentgt XML builds on the
principles of two existing languages,
ltemphgtHTMLlt/emphgt and .. lt/contentgt lt/bookgt
7
Warum XML in Datenbanken
  • XML als SGML-Nachfolger
  • entstehende Dokumente müssen gespeichert werden
  • XML 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

8
Speicherung von XML-Dokumenten
Als Dateien / Clobs
Speicherung der Dokumentstruktur
Strukturierte Speicherung in Datenbanken
Volltextindex
Vollständiges Mapping
Abbildung der Graphstruktur
Volltextindex und XML-Index
Benutzer- definiertes Mapping
Abbilden des DOM-Modells
Für dokument-zentrierte XML-Dokumente
Für semistrukturierte XML-Dokumente
Für daten-zentrierte XML-Dokumente
9
BeispielSpeicherung mit Volltext-Index
lthotelgt
lthotelnamegtHotel Hübnerlt/hotelnamegt
Verweis
Begriff
ltadressegt
ltplzgt18119lt/plzgt
hotel
ltortgtWarnemündelt/ortgt
Warnemünde
ltstrassegtSeestraßelt/strassegt
Rostock
ltnummergt12lt/nummergt
ort
lt/adressegt
ltanreisebeschreibunggt
anreisebeschreibung
Aus Richtung Rostock kommend ...
lt/anreisebeschreibunggt
lt/hotelgt
- bekannte Methode (älter als relationale
Datenbanken) - Boolesches Retrieval (AND, OR, NOT)
10
BeispielRelationale Speicherung von XML
XML-Dokument
HotelID Hotelname Adresse Preise
H0001 Hotel Hübner A0001 P0001
Hotel
lthotel url"www.hotel-huebner.de"gt
lthotelnamegtHotel Hübnerlt/hotelnamegt
ltadressegt
ltortgtWarnemündelt/ortgt
AdresseID Ort Strasse ...
A0001 Warnemünde Seestraße
Adresse
ltstrassegtSeestraßelt/strassegt
...

lt/adressegt

ltpreisegt
lteinzelzimmergt198lt/einzelzimmergt
Preise
PreiseID Einzelzimmer ...
P0001 198
...

lt/preisegt
lt/hotelgt
  • DTD ist erforderlich
  • - Anfragen verwenden SQL - Funktionalität
  • - Datentypen

11
BeispielHybride Ansätze zur Speicherung
  • Auswahl
  • unterschiedlicher
  • Speicherungsmethoden
  • für verschiedene
  • Dokumentanteile

lthotelgt
lthotelnamegtStrand Hotel Hübnerlt/hotelnamegt
ltadressegt
ltplzgt18119lt/plzgt
ltortgtWarnemündelt/ortgt
ltstrassegtSeestraßelt/strassegt
ltnummergt12lt/nummergt
lttelefongt0381/5434-0lt/telefongt
lt/adressegt
lthausbeschreibunggt Sie finden unser elegant und
komfortabel eingerichtetes 4-Sterne Hotel
direkt an der Strandpromenade von Warnemünde
mit Blick auf Leuchtturm, Hafeneinfahrt
und Ostsee. lt/hausbeschreibunggt
lt/hotelgt
Sie finden unser elegant und
komfortabel eingerichtetes 4-Sterne Hotel
direkt an der Strandpromenade von Warnemünde
mit Blick auf Leuchtturm, Hafeneinfahrt
und Ostsee.
Hotel
Ort Strasse
Telefon
0381/5434-0
Strand Hotel Hübner
Warnemünde
Seestraße
12
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

13
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

14
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

15
Verarbeitung von XSQL Pages
Einführendes Beispiel
XSQL Page Input
lt?xml version1.0 ?gt ltxsqlquery
connectiondemo xmlnsxsqlurnoracle-xsqlgt
SELECT Hello World AS greeting FROM
DUAL lt/xsqlquerygt
XML Output
ltROWSETgt ltROW num1gt ltGREETINGgtHello
Worldlt/GREETINGgt lt/ROWgt lt/ROWSETgt
16
XSQL Queries und Connections
  • XSQL Page erlaubt die Definition von SQL Queries
  • Query ist eingebettet in ein xsqlquery Tag
  • Connection-Attribut definiert die
    Verbindungsinformaiton zur Datenbank
  • Connection Name wird aufgelöst in einer
    Konfigurationsdatei XSQLConfig.xml (in xsql/lib)
  • Beispiel

ltconnectiondefsgt ltconnection namedemogt ltusern
amegtxuserlt/usernamegt ltpasswordgtxuserlt/passwordgt
ltdburlgtjdbcoraclethin_at_localhost1521mydblt/dbur
lgt ltdrivergtoracle.jdbc.driver.OracleDriverlt/drive
rgt lt/connectiongt ... lt/connectiondefsgt
17
XSQL Page Processor Architektur
XSL Stylesheet
XSQLConfig
XSQL Page
Datenbank
XML o.a. Formate
18
Überblick über XSQL Tags
  • ltxsqlquerygt
  • ltxsqldmlgt
  • ltxsqlset-stylesheet-paramgt
  • ltxsqlinsert-requestgt
  • ltxsqlinclude-xmlgt
  • ltxsqlinclude-request-paramsgt
  • ltxsqlinclude-xsqlgt
  • ltxsqlinclude-owagt
  • ltxsqlactiongt
  • ltxsqlref-cursor-functiongt
  • ltxsqlinclude-paramgt
  • ltxsqlset-session-paramgt
  • ltxsqlset-page-paramgt
  • ltxsqlset-cookiegt
  • ltxsqlinsert-paramgt

19
Anpassung von XSQL Queries
Attribute für xsqlquery
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
20
XSQL Query Parameter
Beispiel Deklaration einer parametrisierten
Query in einer XSQL Page
lt?xml version1.0 ?gt lt?xml-stylesheet
typetext/xsl hrefemp.xsl?gt ltxsqlquery
connectiondemo xmlnsxsqlurnoracle-xsql fi
nd sortENAME null-indicatoryesgt SELECT
FROM EMP WHERE ENAME LIKE _at_find ORDER
BY _at_sort lt/xsqlquerygt
Die Parameterwerte können in einer URL geliefert
werden, z.B. http//localhost/xsql/demo/emp.xsql?
findAsortSAL
21
Aufruf XSQL Page Processor
Kommando- Zeile
Java Applikation
XSQL Page Processor
XSQL Servlet
Java Server Page
22
Aufruf XSQL von der Kommandozeile
  • Beispiel1
  • Lese Fluginformation von San Francisco mittels
    xsql Command Line Utility
  • gtxsql airport.xsql airportsfoxml-stylesheetnon
    e
  • 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
  • gtxsql insertnewsstory.xsql
  • posted-xmlhttp//www.news.com/source

23
XSQL Servlet Environment
Web Server mit Servlet Engine
XSQL Page Processor
http
JDBC
Web-Browser
Oracle DB
XSQL Servlet
Write a Comment
User Comments (0)
About PowerShow.com