XML und Datenbanken - PowerPoint PPT Presentation

1 / 39
About This Presentation
Title:

XML und Datenbanken

Description:

... (Tamino) XML Abfragesprachen XPath Pfadausdr cke zur Adressierung von XML Fragmenten Grundlage f r viele weitere Standards XSLT Xquery Von meisten XML ... – PowerPoint PPT presentation

Number of Views:114
Avg rating:3.0/5.0
Slides: 40
Provided by: PeterB212
Category:
Tags: xml | datenbanken | tamino | und

less

Transcript and Presenter's Notes

Title: XML und Datenbanken


1
XML und Datenbanken
  • Peter Brezany
  • Institut für Softwarewissenschaften
  • Universität Wien

2
Inhalt
  • Motivation
  • XML Basiswissen
  • DTD, XML Schema
  • Wohlgeformtheit und Gültigkeit
  • Klassifikation von XML Dokumenten
  • XML/DB
  • Anforderungen
  • Eigenschaften
  • Native XML Datenbanken (NXD)
  • Abfragesprachen
  • XQuery, XPath
  • XML Prozessoren
  • SAX, DOM
  • SQL/XML

3
Motivation
  • Java write once, run everywhere
  • XML write once, read everywhere
  • zur Darstellung und Transport von Information
    eingesetzt
  • Zwischen Mensch-Mensch, Computer-Computer,....
  • Anwendungen für XML Datenbanken
  • Platz um Webseite zu speichern
  • Datenbank einer e-Commerce Anwendung die XML zum
    Daten transport verwendet
  • Wenn Daten semistrukturiert sind
  • Aufzeichnung von SOAP Nachrichten,.......

4
Schemabeschreibung mittels DTD
  • Darstellung, welche Elemente auftreten können und
    wie sie geschachtelt werden
  • Also Deklaration von Strukturinformationen
  • Vorteile einer DTD
  • Entspricht einer Dokumentation für die
    XML-Dokumente
  • Anwendungen können darauf reagieren
  • Fehler in XML-Dokumenten können erkannt werden
  • Oft bessere Qualität der XML-Dokumente, weil
    durchdachteres Vorgehen

5
XML Schema
  • wesentlich umfangreichere Darstellungsmöglichkeite
    n als DTDs
  • vordefinierte Datentypen
  • Vielzahl von Standardtypen (int, float,
    string,....)
  • die Möglichkeit zur Definition eigener Datentypen
  • basieren auf den vordefinierten Datentypen
  • XML-Syntax
  • die Möglichkeit, Integritätsbedingungen
    darzustellen, die die Korrektheit der
    XML-Dokumente beschreiben
  • Eindeutigkeitsbedingung (unique)
  • Schlüssel (key)
  • sowie Referenzen auf Schlüssel (keyref)

6
XML Schema vs. DTD
  • XML Schema umfasst alle Modellierungsmöglichkeiten
    , die mit der DTD bereitstehen, mit Ausnahme von
    Entities.
  • Übersetzung DTD in XML Schema gt verlustfrei,
    Entities werden vor der Übersetzung expandiert
    und dadurch aufgelöst.
  • DTDs enthalten wesentlich weniger
    Darstellungsmöglich-keiten als XML Schema und
    auch keine Typinformationen.
  • Übersetzung XML Schema in DTDs gt Informationen
    gehen verloren

7
Eigenschaften von XML Dokumenten
  • Wohlgeformtheit
  • Dokument syntaktisch korrekt? Überprüft wird
  • Alle Elemente müssen ein Start-Tag und ein
    Ende-Tag haben, außer leere Elemente
  • Korrekte Schachtelung von Tags
  • Alle Attributwerte stehen in Hochkommas oder
    Anführungsstrichen
  • Ohne zugeordnete DTD sind alle Attribute nach
    Definition vom Typ CDATA
  • Keine mehrfach auftretenden Attributnamen an
    einem Element
  • Alle Zeichen, die Markup sein könnten (Bsp lt, ),
    dürfen nicht im Text auftreten, sondern müssen
    durch Entityreferenzen (lt amp) ersetzt
    werden
  • Gültigkeit
  • Wohlgeformtheit und entspricht das XML-Dokument
    der zugeordneten DTD/Schema?
  • Getestet wird z.B.
  • Inhaltsmodelle der Elemente so im Schema
    definiert?
  • Attribute definiert?

8
Klassifikation von XML Dokumenten
  • 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 dokumentzentrierte
  • 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
9
XML/DB Anforderungen
  • effektive Speicherung
  • Keine optimale Lösung für alle Anwendungen
  • Dokumentcharakter spielt entscheidende Rolle
  • effizienter Zugriff auf XML-Dokumente
  • oder Teile davon
  • Transaktionsverwaltung
  • Unterstützung von XPath und XQuery
  • Unterstützung von SAX und DOM für Anwendungen
  • Wiederherstellbarkeit der Dokumente

10
Speicherungsmöglichkeiten
Als Dateien / Clobs
Speicherung der Dokumentstruktur
Strukturierte Speicherung in (rel.) Datenbanken
Volltextindex
Vollständiges Mapping
Abbildung der Graphstruktur
Volltextindex und XML-Index
Benutzer- definiertes Mapping
Abbilden des DOM-Modells
Textbasierte native Modellbasierte
native Speicherung Speicherung
11
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)
  • Verfahren aus dem Bereich der Dokumentverarbeitun
    g

12
Volltext-Index
  • Schemabeschreibung
  • nicht erforderlich
  • Dokumentrekonstruktion
  • Dokumente bleiben im Original erhalten
  • Anfragen Anfragen des Information Retrieval
  • Weitere Besonderheiten
  • Volltextfunktionen
  • keine Auswertung des XML-Markups
  • Einsatz
  • für dokumentzentrierte XML-Anwendungen

13
Volltext und XML-Index
14
Volltext und XML-Index
  • XML - Struktur kann in Anfragen ausgewertet
    werden
  • Einsatz von XPath und XQuery ist dadurch möglich
  • Schemabeschreibung
  • nicht erforderlich
  • Dokumentrekonstruktion
  • Dokumente bleiben im Original erhalten
  • Anfragen Anfragen des Information Retrieval
  • Auswertung des Markup in den
    Anfragen möglich
  • Weitere Besonderheiten
  • Volltextfunktionen
  • Einsatz
  • für dokumentzentrierte und semistrukturierte
    Anwendungen

15
Speicherung der Graphenstruktur
  • Verwendung von Relationen zur Speicherung von
    Elementen und Attributen
  • Elemente
  • Elementname Wert Verweis auf
    Vorgänger Ordnung
  • Attribute
  • Attributname Wert Verweis auf Element
  • Damit ist die Zuordnung von Inhalten zur
    Struktur, sowie die vollständige
    Wiederherstellung der Struktur möglich

16
Speicherung der Graphenstruktur
  • Schemabeschreibung
  • zur Speicherung nicht erforderlich
  • Dokumentrekonstruktion
  • möglich, aber sehr aufwändig
  • Anfragen
  • angepasste DB-Anfrage
  • Weitere Besonderheiten
  • Anfragen über vielen Elementen/Attributen sind
    aufwändig
  • Einsatz
  • daten-,dokumentzentrierte und semistrukturierte
    XML-Dokumente

17
Vollständiges Mapping auf rel. DB
lthotel url"www.hotel-huebner.de"gt
lthotelnamegtHotel Hübner lt/hotelnamegt
ltadressegt ltortgtWarnemündelt/ortgt
ltstrassegtSeestraßelt/strassegt ...
lt/adressegt ltpreisegt
lteinzelzimmergt198 lt/einzelzimmergt
... lt/preisegt lt/hotelgt
Hotel
HotelID Hotelname Adresse Preise
H0001 Hotel Hübner A0001 P0001
XML-Dokument
Adresse
AdresseID Ort Strasse ...
A0001 Warnemünde Seestraße
PreiseID Einzelzimmer ...
P0001 198
Preise
  • DTD ist erforderlich
  • - typgerechte Speicherung

18
Vor/Nachteile vollständ. Mapping
  • Vorteile bei der Speicherung strukturierter
    Daten
  • Anfragen, Datentypen, Aggregatfunktionen, Sichten
  • Integration in andere Datenbanken
  • Nachteile bei der Speicherung semi- und
    unstrukturierter
  • Daten
  • großes Schema, schwach gefüllte Datenbanken,
    viele Nullwerte
  • Keine flexiblen Datentypen, Speicherung von
    Alternativen problematisch
  • Fehlende Information Retrieval Anfragen, keine
    Volltextoperationen möglich

19
Vollständiges Mapping auf rel. DB
  • Schemabeschreibung
  • zur Speicherung erforderlich
  • Dokumentrekonstruktion
  • nur eingeschränkt möglich (Protokollierung des
    Abbildungsprozesses)
  • Anfragen
  • Datenbankanfragen
  • Weitere Besonderheiten
  • Föderationen mit bestehenden Datenbanken möglich
  • Einsatz
  • für datenzentrierte XML-Anwendungen

20
Benutzerdefiniertes Mapping
21
Benutzerdefiniertes Mapping
  • Schemabeschreibung
  • Zur Speicherung erforderlich
  • Dokumentrekonstruktion
  • Meist nicht möglich
  • (Voraussetzung Protokollierung des
    Abbildungsprozesses
  • vollständige Abb.)
  • Anfragen
  • Datenbankanfragen
  • Weitere Besonderheiten
  • Integration in bestehende Datenbanken möglich
  • XML-Dokumente und DB voneinander unabhängig
  • Einsatz
  • für datenzentrierte XML-Anwendungen

22
Native XML Database
  • Spezialisiert für die Speicherung von XML Daten
  • XML Dokumente gehen rein/raus
  • Muss keine Stand-alone Datenbank sein
  • Kein neues low-level Datenbank Modell
  • Sollen nicht alle bestehenden Datenbanken
    ersetzen
  • OpenSource (Xindice, eXist) sowie kommerzielle
    Lösungen (Tamino)

23
XML Abfragesprachen
  • XPath
  • Pfadausdrücke zur Adressierung von XML Fragmenten
  • Grundlage für viele weitere Standards
  • XSLT
  • Xquery
  • Von meisten XML Datenbanken unterstützt
  • grundlegendes Konstrukt sind XPath-Ausdrücke
  • Pfadausdrücke (Location path),
  • logische und mathematische Verknüpfungen,
  • Funktionsaufrufe
  • sind vom Typ her Knotenmengen oder Werte
    (boolean, number, string)
  • XQuery
  • Praktische Beispiele http//www.w3.org/TR/xquery-
    use-cases/

24
XML Abfragesprachen
25
XQuery
  • Basiert auf Xpath
  • SQL ähnlich
  • FOR-LET-WHERE-RERTURN
  • FOR/LET geordnete Liste von Tupeln gebundener
    Variablen
  • WHERE eingeschränkte Liste von Tupeln gebundener
    Variablen
  • RETURN Ergebniskonstruktion, Instanzen des XML
    Query data model
  • Ausdrücke
  • Konstanten und Variablen Hallo x
  • Kommentare -- Kommentar --
  • Sequenzen (1, /a/b/c, Hallo)

26
XQuery
  • Operatoren und Funktionen
  • sum( a 1, b 2 )
  • zaus UNION haus
  • Benutzerdefinierte Funktionen
  • Elementkonstruktoren
  • reines XML, wird so in das Ergebnis übernommen,
    wie es ist
  • XML mit geschachtelten Ausdrücken in
  • Sortierung
  • FOR h IN /hotelname "Hübner"
  • ORDER BY zimmer/preis DESCENDING
  • RETURN h

27
XQuery
  • Bedingte Ausdrücke
  • IF expr THEN expr ELSE expr
  • Verwendung von Quantoren
  • SOME var IN expr SATISFIES expr
  • EVERY var IN expr SATISFIES expr
  • Typwandlung mit CAST und TREAT
  • Typprüfung mit INSTANCEOF und TYPESWITCH

28
XQuery Beispiel
  • lthotel name"Hotel Neptun"gt
  • ltzimmertyp typ"EZ" preis"180" währung"DM"/gt
  • ltfoto href"neptun01.jpeg"/gt
  • lt/hotelgt
  • lthotel name"Hotel Hübner"gt
  • ltzimmertyp typ"EZ" preis"150" währung"DM"/gt
  • ltzimmertyp typ"DZ" preis"180" währung"DM"/gt
  • lt/hotelgt
  • lthotel name"Pension Dräger"gt
  • ltfoto href"bild-pd01.jpeg"/gt
  • ltfoto href"bild-pd02.jpeg"/gt
  • lt/hotelgt

29
XQuery Beispiel
  • ltbillighotelsgt
  • FOR h IN //hotel
  • FOR z IN h/zimmertyp
  • WHERE z/_at_preis lt 100
  • RETURN lthotelgt
  • ltnamegt h/_at_name lt/namegt
  • ltpreisgt z/_at_preis lt/preisgt
  • lt/hotelgt
  • lt/billighotelsgt
  • Ergebnis

ltbillighotelsgt lthotelgtltnamegt...lt/namegtltpreisgt...lt/
preisgtlt/hotelgt ... lt/billighotelsgt
30
XML Prozessoren
  • machen den Inhalt eines XML-Dokumentes für eine
    Anwendung verfügbar
  • Standardisierte Schnittstellen für zahlreiche
    Programmiersprachen (Java, Phyton, C, C, ...)
  • Einbindung von Bibliotheken
  • Auflösen von Entities
  • nichtvalidierend / validierend
  • in Bezug auf DTD oder XML Schema

31
SAX ereignisorientierte Abarbeitung
  • durch Bestandteile des Dokumentes werden Aktionen
    ausgelöst
  • sequentielle Abarbeitung
  • im Anwendungspro-gramm müssen die Methoden
    definiert
  • werden, die durch Auftreten von
    Dokumentbestandteilen
  • ausgelöst werden
  • zustandslos

startDocument()
lt?xml version"1.0"?gt
startElement("hotel", AttributeList(
lthotel id
length1,
name
value
lthotelnamegt
startElement("hotelname", null)
Strand Hotel Hübner
lt/hotelnamegt
endElement("hotelname")
ltadressegt
startElement("adresse", null)
ltortgt
startElement("ort", null)
Warnemünde
characters(char, start, length)
lt/ortgt
endElement("ort")
lttelefongt
. . .
0381/548230
lt/telefongt
lt/adressegt
endElement("adresse")
endElement("hotel")
lt/hotelgt
endDocument()
32
DOM - Manipulation von Baumstrukturen
  • XML-Dokument als Baum
  • dargestellt,
  • Zugriff kann durch
  • Navigation erfolgen
  • Manipulation des
  • Dokumentstruktur
  • ebenfalls möglich
  • Löschen
  • Einfügen
  • ändern

33
Vergleich DOM - SAX
XML-
DTD
Dokument
Parser
DOM
SAX
startDocument
startElement
Anwendung,
startElement
implemen-
tiert
endElement
Document
...
Handler
endDocument
34
Einsatz von SAX und DOM
  • SAX
  • einfacher Zugriff
  • einfach strukturierte oder gleichartig
    strukturierte Dokumente
  • auch geeignet für sehr große XML-Dokumente
  • Zugriff nur auf geringe Anteile eines Dokumentes
  • DOM
  • Navigation durch Dokumentstruktur
  • dadurch kontextabhängige Zugriffe
  • Manipulation der Struktur
  • Für sehr große XML-Dokumente problematisch
  • auch Speicherungsstruktur

35
SQL/XML
  • ANSI-Standard
  • Version 2003 bzw. 2005 (in Arbeit)
  • Hersteller wie IBM, Oracle, Microsoft, Informix
    und Software AG beteiligt
  • Features
  • Ausgabe von Relationen als XML-Dokument
  • Ausgabe von Anfrageergebnissen und Sichten als
    XML-Dokument
  • Abbildung von Datenbanktypen auf Typen von
    XML-Schemata und umgekehrt
  • Konvertierung der Daten aus Datenbanken auf Werte
    in XML-Dokumenten
  • Übersicht Eisenberg, SQL/XML is making good
    progress, 2002

36
SQL/XML
  • Ausgabe der Relation Employee als XML Dokument im
  • Schema Admin
  • ltAdmingt
  • ltEMPLOYEEgt
  • ltrowgt
  • ltEMPNOgt000010lt/EMPNOgt
  • ltFIRSTNAMEgtCHRISTINElt/FIRSTNAMEgt
  • ltLASTNAMEgtHAASlt/LASTNAMEgt
  • ltBIRTHDATEgti933-08-24lt/BIRTHDATEgt
  • ltSALARYgt52750.OOlt/SALARYgt
  • lt/rowgt
  • ...
  • lt/EMPLOYEEgt
  • .....
  • lt/Admingt

37
SQL/XML
  • Ausgabe von Anfrageergebnissen und Sichten
  • Darstellung von Null Values
  • Tabellen und XQuery

ltrowgt ltEMPNOgt000010lt/EMPNOgt
ltFIRSTNAMEgtCHRISTINElt/FIRSTNAMEgt ltLASTNAME
gtHAAS lt/LASTNAMEgt ltBIRTHDATE xsinil"true" /gt
ltSALARYgt52750.00lt/SALARYgt lt/rowgt
ltrowgt ltEMPNOgt0000I0lt/EMPNOgt ltFIRSTNAMEgtCHRISTINElt/
FIRSTNAMEgt ltLASTNAMEgtHAAS lt/LASTNAME
gt ltSALARYgt52750.00lt/SALARYgt lt/rowgt
highempsgt for Se in table"Sample_db",...)/EMPLO
YEE/row where Be/SALARY gt 40000 return ltempgt
Se/FIRSTNME, e/LASTNAME lt/empgt lt/highempsgt
38
Zusammenfassung
  • Es ist wichtig, Dokumentenklassen zu kennen um
    richtige Speichermöglichkeit zu finden
  • XQuery ist mächtigerer Nachfolger von XPath 1.0
  • XML Prozessoren um Ergebnisse von Anfragen an
    Datenbanken die XML zurückliefern
    weiterverarbeiten zu können
  • SAX arbeitet ereignisorientiert
  • DOM Baummanipulationen möglich
  • SQL/XML ist Versuch um wichtige Aufgaben beim
    Umgang mit XML in Datenbanken zu standardisieren
  • Verwendet XQuery

39
Resources
  • Open Source Native XMLDB
  • Apache Xindice http//xml.apache.org/xindice/
  • Supports XPath
  • eXist http//exist.sourceforge.net/
  • Supports XPath 2.0 and XQuery 1.0
  • Open Source XQuery Processor
  • SAXON http//saxon.sourceforge.net/
  • Supports XSLT 2.0 and XQuery 1.0
  • Mehr Information zu XML und Datenbanken
  • Ronald Bourret 2004 http//www.rpbourret.com/xml/X
    MLAndDatabases.htm
Write a Comment
User Comments (0)
About PowerShow.com