1 / 39

XML und Datenbanken

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

micah-love
Download Presentation

XML und Datenbanken

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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 Inhalt

  3. 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,....... Motivation

  4. 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 Schemabeschreibung mittels DTD

  5. 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) XML Schema

  6. 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 XML Schema vs. DTD

  7. 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 <, &), 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? Eigenschaften von XML Dokumenten

  8. 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 Klassifikation von XML Dokumenten <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>

  9. 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 XML/DB Anforderungen

  10. Speicherungsmöglichkeiten Als Dateien / Clobs Speicherung der Dokumentstruktur Strukturierte Speicherung in (rel.) Datenbanken Volltextindex Abbildung der Graphstruktur Vollständiges Mapping Volltextindex und XML-Index Abbilden des DOM-Modells Benutzer- definiertes Mapping Textbasierte native Modellbasierte native Speicherung Speicherung

  11. Volltext-Index <hotel> <hotelname>Hotel Hübner</hotelname> Begriff Verweis <adresse> <plz>18119</plz> hotel <ort>Warnemünde</ort> Warnemünde <strasse>Seestraße</strasse> Rostock <nummer>12</nummer> ort </adresse> <anreisebeschreibung> anreisebeschreibung Aus Richtung Rostock kommend ... </anreisebeschreibung> </hotel> • bekannte Methode (älter als relationale Datenbanken) • Verfahren aus dem Bereich der Dokumentverarbeitung

  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. 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 Volltext und XML-Index

  15. 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 Speicherung der Graphenstruktur

  16. 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 Speicherung der Graphenstruktur

  17. Vollständiges Mapping auf rel. DB <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> Hotel: XML-Dokument Adresse: Preise: • DTD ist erforderlich - typgerechte Speicherung

  18. 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 Vor/Nachteile vollständ. Mapping

  19. 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 Vollständiges Mapping auf rel. DB

  20. XML-Dokument Mapping Vorschrift <hotel url="www.hotel-huebner.de"> <ClassMap> <hotelname>Hotel Hübner</hotelname> <ElementType Name="hotel"/> <adresse> <ToClassTable> <ort>Warnemünde</ort> <Table Name="Hotelpreise"/> <strasse>Seestraße</strasse> </ToClassTable> ... <PropertyMap> </adresse> <Attribute Name="url"/> <preise> <ToColumn> <einzelzimmer>198</einzelzimmer> ... <Column Name="Hotel_URL"/> </preise> </ToColumn> </hotel> </PropertyMap> <PropertyMap> <ElementType Name="hotelname"/> <ToColumn> <Column Name="Name"/> </ToColumn> </PropertyMap> ... </Classmap> Hotelpreise Hotel_URL Name Einzelzimmer Datenbank www.hotel-huebner.de Hotel Hübner 198 Benutzerdefiniertes Mapping

  21. 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 Benutzerdefiniertes Mapping

  22. 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) Native XML Database

  23. 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/ XML Abfragesprachen

  24. XML Abfragesprachen

  25. 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“) XQuery

  26. 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 /hotel[name = "Hübner"] ORDER BY zimmer/preis DESCENDING RETURN $h XQuery

  27. 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 XQuery

  28. <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> XQuery Beispiel

  29. <billighotels> FOR $h IN //hotel FOR $z IN $h/zimmertyp WHERE $z/@preis <= 100 RETURN <hotel> <name> {$h/@name} </name> <preis> {$z/@preis} </preis> </hotel> </billighotels> XQuery Beispiel Ergebnis: <billighotels> <hotel><name>...</name><preis>...</preis></hotel> ... </billighotels>

  30. 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 XML Prozessoren

  31. 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 SAX – ereignisorientierte Abarbeitung startDocument() <?xml version="1.0"?> startElement("hotel", AttributeList( <hotel id= length=1, {name= value= <hotelname> startElement("hotelname", null) Strand Hotel Hübner </hotelname> endElement("hotelname") <adresse> startElement("adresse", null) <ort> startElement("ort", null) Warnemünde characters(char[], start, length) </ort> endElement("ort") <telefon> . . . 0381/548230 </telefon> </adresse> endElement("adresse") endElement("hotel") </hotel> 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. 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 SQL/XML

  36. <Admin> <EMPLOYEE> <row> <EMPNO>000010</EMPNO> <FIRSTNAME>CHRISTINE</FIRSTNAME> <LASTNAME>HAAS</LASTNAME> <BIRTHDATE>i933-08-24</BIRTHDATE> <SALARY>52750.OO</SALARY> </row> ... </EMPLOYEE> ..... </Admin> SQL/XML • Ausgabe der Relation Employee als XML Dokument im Schema Admin

  37. Ausgabe von Anfrageergebnissen und Sichten Darstellung von Null Values: Tabellen und XQuery SQL/XML <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>

  38. 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 Zusammenfassung

  39. 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 Resources

More Related