39
Institute for Software Science – University of Vienna P.Brezany XML und Datenbanken XML und Datenbanken Peter Brezany Institut für Softwarewissenschaften Universität Wien

XML und Datenbanken

Embed Size (px)

DESCRIPTION

XML und Datenbanken. Peter Brezany Institut für Softwarewissenschaften Universität Wien. Motivation XML Basiswissen DTD, XML Schema Wohlgeformtheit und Gültigkeit Klassifikation von XML Dokumenten XML/DB Anforderungen Eigenschaften Native XML Datenbanken (NXD) Abfragesprachen - PowerPoint PPT Presentation

Citation preview

Page 1: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany

XML und DatenbankenXML und Datenbanken

Peter Brezany Institut für Softwarewissenschaften

Universität Wien

Page 2: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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

Page 3: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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,.......

Page 4: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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

Page 5: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 5

XML Schema

• wesentlich umfangreichere Darstellungsmöglichkeiten 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)

Page 6: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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 => 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 => Informationen gehen verloren

Page 7: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 7

Eigenschaften von XML Dokumenten

• WohlgeformtheitDokument 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 <, &), 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?

Page 8: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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

<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 9: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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

Page 10: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 10

Speicherungsmöglichkeiten

Volltextindex und XML-Index

Volltextindex

Als Dateien / Clobs

Speicherung derDokumentstruktur

StrukturierteSpeicherung

in (rel.) Datenbanken

VollständigesMapping

Benutzer-definiertesMapping

Abbilden des DOM-Modells

Abbildung derGraphstruktur

Textbasierte native Modellbasierte nativeSpeicherung Speicherung

Page 11: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 11

Volltext-Index

- bekannte Methode (älter als relationale Datenbanken)- Verfahren aus dem Bereich der Dokumentverarbeitung

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

anreisebeschreibungortRostock

hotel

<strasse>Seestraße</strasse>

Page 12: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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

Page 13: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 13

Volltext und XML-Index

Page 14: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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 Anfragenmöglich

• Weitere Besonderheiten– Volltextfunktionen

• Einsatz: – für dokumentzentrierte und semistrukturierte Anwendungen

Page 15: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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

Page 16: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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

Page 17: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 17

Vollständiges Mapping auf rel. DB

- DTD ist erforderlich - typgerechte Speicherung

XML-Dokument HotelID

Hotelname Adresse Preise

H0001 Hotel Hübner

A0001 P0001

AdresseID Ort Strasse ...A0001 Warnemünd

eSeestraße

PreiseID Einzelzimmer ...P0001 198

Hotel:

Preise:

Adresse:

<hotel url="www.hotel-huebner.de"> <hotelname>Hotel Hübner </hotelname> <adresse> <ort>Warnemünde</ort> <strasse>Seestraße</strasse> ... </adresse> <preise> <einzelzimmer>198 </einzelzimmer> ... </preise></hotel>

Page 18: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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

Page 19: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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

Page 20: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 20

Benutzerdefiniertes Mapping

Hotel Hübner

Hotel_URL

Hotelpreise

Name Einzelzimmer

www.hotel-huebner.de 198

Datenbank

<ClassMap>

<ToClassTable>

</ToClassTable>

<Table Name="Hotelpreise"/>

<ElementType Name="hotel"/>

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

<PropertyMap>

<ToColumn>

</ToColumn>

</PropertyMap>

<PropertyMap>

<ToColumn>

</ToColumn>

</PropertyMap>...

<Attribute Name="url"/>

<Column Name="Hotel_URL"/>

<ElementType Name="hotelname"/>

<Column Name="Name"/>

</Classmap>

XML-Dokument Mapping Vorschrift

Page 21: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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

Page 22: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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)

Page 23: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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/

Page 24: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 24

XML Abfragesprachen

Page 25: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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“)

Page 26: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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 ’{’ ’}’

• SortierungFOR $h IN /hotel[name = "Hübner"]ORDER BY zimmer/preis DESCENDINGRETURN $h

Page 27: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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

Page 28: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 28

XQuery Beispiel<hotel name="Hotel Neptun"> <zimmertyp typ="EZ" preis="180" währung="DM"/>

<foto href="neptun01.jpeg"/></hotel><hotel name="Hotel Hübner"> <zimmertyp typ="EZ" preis="150" währung="DM"/>

<zimmertyp typ="DZ" preis="180" währung="DM"/>

</hotel><hotel name="Pension Dräger"> <foto href="bild-pd01.jpeg"/> <foto href="bild-pd02.jpeg"/></hotel>

Page 29: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 29

XQuery Beispiel

<billighotels>FOR $h IN //hotelFOR $z IN $h/zimmertypWHERE $z/@preis <= 100RETURN <hotel><name> {$h/@name} </name><preis> {$z/@preis} </preis></hotel>

</billighotels>

<billighotels><hotel><name>...</name><preis>...</preis></hotel> ...</billighotels>

•Ergebnis:

Page 30: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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

Page 31: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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

<?xml version="1.0"?>

startDocument()

<hotel id=

</hotel>

<adresse>

<ort>

Warnemünde

</ort>

<telefon>

</telefon>

</adresse>

endElement("ort")

endElement("adresse")

0381/548230

<hotelname>

</hotelname>

Strand Hotel Hübner

endElement("hotelname")

characters(char[], start, length)

endElement("hotel")

endDocument()

. . .

startElement("adresse", null)

startElement("ort", null)

startElement("hotel", AttributeList(

startElement("hotelname", null)

length=1,{name=value=

Page 32: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 32

DOM - Manipulation von Baumstrukturen

Comment

ProcessingInstruction

Document

DocumentFragment

DocumentType

Element

Entity

EntityReference

Notation

Text

CDataSection

DOMImplementation Node NodeList NamedNodeMap

CharacterData

Attr

• XML-Dokument als Baum dargestellt, • Zugriff kann durch Navigation erfolgen• Manipulation des Dokumentstruktur ebenfalls möglich

•Löschen•Einfügen•ändern

Page 33: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 33

Vergleich DOM - SAX

DOM

Parser

SAX

DTDXML-Dokument

startDocumentstartElementstartElementendElement

endDocument...

Anwendung,implemen-tiert DocumentHandler

Page 34: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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

Page 35: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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

Page 36: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 36

SQL/XML

<Admin> <EMPLOYEE> <row> <EMPNO>000010</EMPNO> <FIRSTNAME>CHRISTINE</FIRSTNAME> <LASTNAME>HAAS</LASTNAME> <BIRTHDATE>i933-08-24</BIRTHDATE> <SALARY>52750.OO</SALARY> </row> ...</EMPLOYEE>.....</Admin>

•Ausgabe der Relation Employee als XML Dokument im Schema Admin

Page 37: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 37

SQL/XML

• Ausgabe von Anfrageergebnissen und Sichten– Darstellung von Null Values:

– Tabellen und XQuery

<row> <EMPNO>000010</EMPNO> <FIRSTNAME>CHRISTINE</FIRSTNAME> <LASTNAME >HAAS </LASTNAME> <BIRTHDATE xsi:nil="true" /> <SALARY>52750.00</SALARY></row>

<row><EMPNO>0000I0</EMPNO><FIRSTNAME>CHRISTINE</FIRSTNAME><LASTNAME>HAAS </LASTNAME ><SALARY>52750.00</SALARY></row>

highemps>{ for Se in table{"Sample_db",...)/EMPLOYEE/row where Be/SALARY > 40000 return <emp> { Se/FIRSTNME, $e/LASTNAME } </emp>} </highemps>

Page 38: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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

Page 39: XML und Datenbanken

Institute for Software Science – University of Vienna

P.Brezany 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/XMLAndDatabases.htm