152
Modul 6 XML & Datenbanken Vorlesung Informationssysteme 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer, Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz, 2006 Artikel: XML Syntax Quick Reference, Mulberry Technologies Inc., 2000. G. Kappel, E. Kapsammer, W. Retschitzegger, Integrating XML and Relational Database Systems, World Wide Web Journal (WWWJ), Kluwer Academic Publishers, Vol. 7(4), December 2004 M. Klettke, H. Meyer, W. Retschitzegger, R. Unland, Speicherung von XML-Dokumenten, in: Web & Datenbanken, E. Rahm, G. Vossen (Hrsg.), dpunkt.verlag, 2002 A. Eisenberg, J. Melton, SQL/XML is Making Good Progress, SIGMOD Record, 31(2), pp. 101-108, June 2002

V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

Modul 6XML & Datenbanken

Vorlesung

Informationssysteme 2

Folien:XML & DatenbankenWerner Retschitzegger, Elisabeth Kapsammer, Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz, 2006

Artikel:XML Syntax Quick Reference, Mulberry Technologies Inc., 2000.G. Kappel, E. Kapsammer, W. Retschitzegger, Integrating XML and Relational Database Systems, World Wide Web Journal (WWWJ), KluwerAcademic Publishers, Vol. 7(4), December 2004M. Klettke, H. Meyer, W. Retschitzegger, R. Unland, Speicherung von XML-Dokumenten, in: Web & Datenbanken, E. Rahm, G. Vossen (Hrsg.), dpunkt.verlag, 2002A. Eisenberg, J. Melton, SQL/XML is Making Good Progress, SIGMOD Record, 31(2), pp. 101-108, June 2002

Page 2: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-1

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

InhaltGrundlagen von XML

Motivation, Dokumentbeschreibungssprachen und Anwendungsbereiche

XML Dokumente und DTDs

Namensräume (XML Namespace)

XML Schema

Pfadausdrücke (XPath)

XML & DatenbankenMotivation und HeterogenitätsaspekteArt der SpeicherungArt des Zugriffs – XQuery W3C-StandardSQL/XML – SQL:2003-StandardForschungsprototyp X-RayXML in RDBS

Page 3: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-2

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Motivation für XML 1/4Von HTML zu XML

HTML (HyperText Markup Language) ist die "Lingua Franca" zurBeschreibung von Hypertextdokumenten im WWWBasiskonzept: Auszeichnungen ("Markup") in Form von "Tags"Vom W3C (World Wide Web Consortium) standardisiertWeist eine Reihe von Einschränkungen auf:

beschränkte Anzahl vordefinierter Tagsdaher ständig Erweiterungen um (proprietäre) Tags

Tags beschreiben vorwiegend Layout-Aspektedaher wird die Suche im Web erschwert

Brian Kerningham: "The problem with what you see is what you get is that what you see is all you've got"

Page 4: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-3

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Motivation für XML 2/4Von HTML zu XML

<h1>HandyKatalog</h1><h2>Nokia 8210</h2><table border="1"><tr><td>Batterie</td><td>900mAh</td></tr><tr><td>Gewicht</td><td>141g</td></tr> …</table>

HTML beschreibtLayout des Dokumentinhalts

<HandyKatalog><Hersteller name="Nokia"><Modell name="8210"><Batterie>900mAh</Batterie><Gewicht>141g</Gewicht>…

</Modell></Hersteller></HandyKatalog>

XML beschreibtStruktur u. Semantik d. Dokumentinhalts

Tim Bray, Co-Editor von XML 1.0:"XML will become the ASCII of the 21st century -

basic, essential, unexciting"

Page 5: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-4

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Motivation für XML 3/4Merkmale von XML

LayoutunabhängigkeitTrennung der Struktur und Semantik des Inhalts von dessen Layout

Erweiterbarkeit (Metasprache)Tags und Attribute können beliebig neu definiert und benannt werden

StrukturierbarkeitTags können beliebig komplex geschachtelt werden

SemistrukturiertheitInhalt kann auch nicht-strukturierte Teile aufweisen

SelbstbeschreibendTags im XML Dokument beschreiben Struktur und Semantik des Inhalts... für den Menschen: einfach zu lesen u. zu erstellen... für die Maschine: einfach zu generieren u. zu parsen

ValidierbarkeitXML Dokumente können optional ein Schema, d.h. eine formaleBeschreibung ihres Vokabulars und ihrer Grammatik aufweisen(Document Type Definition - DTD oder XML Schema) und gegenüberdieser validiert werden

Page 6: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-5

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Wohlgeformtheit (well-formedness)best. syntaktische Eigenschaften, z.B.:

Mindestens 1 Tag pro DokumentExakt 1 Tag als WurzelKeine Überlappungen bei TagsJedes Tag muß abgeschlossen werden....

Motivation für XML 4/4Eigenschaften von XML-Dokumenten und XML-Prozessoren

Gültigkeit (validity)XML Dokument ist wohlgeformt und entspricht einem Schema

XML-Prozessoren lesen XML-Dokumente ein und überprüfenentweder nur deren Wohlgeformtheit (Nicht-validierende Prozessoren)oder auch deren Validität (validierende Prozessoren)

Können in Anwendungen (z.B. Browser) eingebunden werdenZerlegen ein XML-Dokument in seine Einzelteile und erstellen einen Baum, durch den die Einzelteile für die Anwendung zugreifbar werden

AnwendungDokument-EinzelteileFehler

Katalog.DTD

XML Prozessor

ParserEntityManagerHandyKatalog1.XML

Modell

XML-Dokument

FeaturesEntities

Page 7: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-6

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Dokumentbeschreibungssprachen 1/3Historische Entwicklung

Vannevar Bush 1945 MemexDouglas Engelbart 1962 AugmentTed Nelson 1965 XanaduWilliam Tunniclife (GCA) 1967 GenCodeGoldfarb, Mosher, Lorie (IBM) 1969 GML (Generalized Markup Language)ANSI 1978 Standardisierung (GenCode & GML)Charles GoldfarbISO 1986 SGML (Standard Generalized Markup

Language - ISO 8879)Tim Berners-Lee (CERN) 1989 HTML (Hypertext Markup Language)Mark Andreessen (NCSA) 1993 HTML-Formulare (XMosaic)Netscape, Microsoft 1994 HTML-AbweichungenJon Bosak, Tim Bray, 1996 XML ArbeitsgruppeJames Clark et al. (W3C)

10. Feb. 1998 XML 1.06. Okt. 2000 XML 1.0, 2nd Edition

Page 8: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-7

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Memex

Page 9: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-8

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Dokumentbeschreibungssprachen 2/3Einordnung von XML in OMG’s Metadata Architecture

SGMLXML Metaebene

XHTML Sprachebene(z.B. DTDs)HTMLMathML

Ausprägungs-ebene(Dokumente)

e iπ +1= 0n

f (n) = Σ kk=1

WMLz.B.

z.B.

M2

M1

M0

[www.omg.org]

Page 10: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-9

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Dokumentbeschreibungssprachen 3/3XML versus ...

... SGMLXML ⊂SGML (60 Seiten vs. 600 Seiten)XML hat 20% der Komplexität von SGML, jedoch 80% der FunktionalitätXML-Dokumente sind konform zu einer ISO-Revision von SGML -WebSGML (Annex zum SGML-Standard ISO8879)

... HTMLXML ist komplementär zu HTML (Semantik u. Struktur vs. Layout)XML ist NICHT rückwärtskompatibel zu HTMLEinfache Konvertierungsmöglichkeit von HTML Dokumenten nach XML

... XHTML= Extensible HTML - W3C Recommendation 26. Jan. 2000HTML 4.01 als XML-Anwendung realisiert, d.h. HTML wurde in Form einer XML-DTD beschrieben

Page 11: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-10

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Anwendungsbereiche für XML 1/3

Datenaustausch ("Portable Daten")über XML als reine Notation oderzusätzlich über gemeinsame Schemata

Multi-Deliveryein und derselbe Inhalt kann auf verschiedenen Endgeräten unterschiedlichpräsentiert werden

Intelligente Suchestatt einfacher Schlagwortsuche in HTML-Dokumenten, strukturbasierteSuche in XML-Dokumenten möglich

"Mozart" -

Komponist oder Kugel?

Page 12: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-11

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Anwendungsbereiche für XML 2/3Branchen - "Vertikalisierung von XML"

[http://www.oasis-open.org/cover/xml.html#applications]

XML-DTDs für ...Literatur "Gutenberg"Reisen "openTravel"News "NewsML"Werbung "adXML"Wetter "OMF"Personalwesen "XML-HR"Sprachapplikationen "VoxML"Vektorgraphiken "SVG"Mobile Applikationen "WML"Geo Applikationen "ANZMETA"Gesundheitswesen "HL7"Mathematik "MathML”Bankenwesen "MBA”eGovernment “eGovML”

Electronic CommerceCBL: Common Business

Library (Commerce One)

BizTalk: MicrosoftcXML: Commerce XMLRosettaNet: Format für Online-

BestellungenebXML: OASIS + XML/EDIFnXML: Financial Products

Markup Language...

Page 13: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-12

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Anwendungsbereiche für XML 3/3XML Standardfamilie (Auszug)

XMLXML Sprachkonzepte inkl. DTD

Namespaces in XMLUnterstützung global eindeutigerElement- und Attributnamen

XPath (XML Path Language)Pfadausdrücke zur Navigation in XML-Dokumenten

XML SchemaSprache zur Beschreibung von XML-Schemata in XML

XLink, XPointerVerknüpfung von XML-Dokument(teil)en

XSL (Extensible Stylesheet Language)XSLT: Transformation von XML-Dokumenten (deklarativ)XSL-FO: Formatierung von XML-Dokumenten (deklarativ)

DOM (Document Object Model)API für den prozeduralen Zugriff auf XML-Dokumente

W3C Standardisierungsstufen:(1) Note(2) Working Draft (WD)(3) Candidate Recommendation (CR)(4) Proposed Recommendation (PR)(5) Recommendation (REC)

Page 14: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-13

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML-Dokument 1/3Beispiel: HandyKatalog

<?xml version="1.0" encoding="UTF-8"?><HandyKatalog><!-- NOKIA -->

<Hersteller name="NOKIA"><HerstellerNr nr="h1234"/><Modell name="7110"><Gewicht>141g</Gewicht><Preis vertrag="ja">999</Preis><Preis vertrag="nein">4999</Preis>

</Modell><Modell name="8210">...

</Modell></Hersteller>

</HandyKatalog>

Elementwurzel"root element" oder"document element"

Prolog (optional)"xml declaration"

Kommentar

Start Tag

End Tag Attribut

Attributwert

Elementname

Text"character data"Elementinhalt

"element content"von <Hersteller>

Leeres Element"empty element"

Subelement

HandyKatalog1.XML

Gemischter Inhalt"mixed content"

Page 15: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-14

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML-Dokument 2/3Syntax von Elementen und Attributen

Element- und Attributnamen müssen gültige "XML Namen" sein:[ letter | _ | : ] [ letter | '0..9' | '.' | '-' | '_' | ':' ]*"letter" umfassen A-Z, a-z, sowie andere Schriftzeichen wie bspw. ä, ê, γ ,ςVerwendung von ':' ist Namensräumen vorbehaltenkeine LängenbeschränkungCase-sensitiv

Leere Elemente können in Kurzform angeschrieben werden<HerstellerNr nr="h1234"></HerstellerNr> oder<HerstellerNr nr="h1234"/>

Attributwerte müssen unter Anführungszeichen gesetzt werden<Modell name='8210'> oder<Modell name="8210">

Page 16: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-15

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML-Dokument 3/3Syntax von Kommentaren

Können sich über mehrere Zeilen erstreckenzwischen Start Tag und End Tag eines Elementsvor oder nach der Elementwurzel

Restriktionen:nicht innerhalb eines Tags erlaubtkeine Schachtelung von Kommentaren erlaubtkeine "--" innerhalb eines Kommentars erlaubt

<!--Ein Kommentar darfauch Dinge wie <tagnamen> oder &entitäten; enthalten-->

...

Page 17: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-16

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

DTD 1/8Zweck und Charakteristika

Eine DTD beschreibt Vokabular und Grammatik für eine Menge von XML-Dokumenten

Ein XML-Dokument darf nur eine einzige DTD einbinden("document type declaration - DOCTYPE")

Eine DTD muß im XML-Dokument NACH dem Prolog, jedoch VOR der Elementwurzel eingebunden werden

Eine DTD legt nicht die Elementwurzeleines XML-Dokuments fest

dies erfolgt durch das XML-Dokument selbst innerhalb der DOCTYPE-Deklarationkann ein beliebiges Element der DTD sein

<?xml version="1.0"?><!DOCTYPE HandyKatalog ...<HandyKatalog>.....

HandyKatalog1.XML

Katalog.DTD

Elementwurzel

DefintionVerwendung

Page 18: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-17

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

DTD 2/8Einbindung in XML-Dokumente

3 Alternativen zur Einbindung in XML-Dokumenteexterne DTD, d.h. in eigener Datei (*.dtd) identifiziert über URI ("external subset")<!DOCTYPE HandyKatalog SYSTEM "Katalog.dtd">interne DTD, d.h. im Dokument selbst definiert ("internal subset")<!DOCTYPE HandyKatalog […]>externe & interne DTD, d.h. externe ergänzt interne DTD

Exkurs - URL vs. URI: ein URL (Uniform Resource Locator) identifiziert Internet-Ressourcen durch deren Lokation über den Domain Name Service (DNS)ein URI (Uniform Resource Identifier) identifiziert beliebige Ressourcen über deren Namen (z.B. ISBN#) oder andere Attribute der Ressourcejeder URL ist ein gültiger URI

Page 19: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-18

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

DTD 3/8Beispiel - Katalog.dtd

<!-- Katalog DTD Version 1.0 --><!ELEMENT HandyKatalog (Hersteller*)><!ELEMENT Hersteller (HerstellerNr, Modell+)><!ATTLIST Hersteller name CDATA #REQUIRED><!ELEMENT HerstellerNr EMPTY><!ATTLIST HerstellerNr nr ID #REQUIRED><!ELEMENT Modell (Gewicht, Preis+)><!ATTLIST Modell name CDATA #REQUIRED><!ELEMENT Gewicht (#PCDATA)><!ELEMENT Preis (#PCDATA)><!ATTLIST Preis vertrag (ja|nein) "nein">

Gewicht

HerstellerNrnr

*

1..*

Preisvertrag

Modellname

HandyKatalog

Herstellername

1

1 1..*

UML Klassendiagramm XML DTD

XML ElementXML Attribut

Legende:1 : genau eines1..* : ein oder mehrere* : 0 oder mehrere

: besteht aus

Page 20: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-19

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

DTD 4/8Elementdeklaration

Sequenz <!ELEMENT Hersteller (HerstellerNr, Modell+)>

Alternative <!ELEMENT Batterie (LiIo | NiMh | NiCd)>

KardinalitätenOptional (Null- oder einmal)

<!ELEMENT Modell (Kommentar?)>Optional und mehrmals (Null oder mehr)

<!ELEMENT HandyKatalog (Hersteller*)>Notwendig und wiederholbar (Eins oder mehr)<!ELEMENT Hersteller (Modell+)>Inhaltsmodell durch Klammern gruppierbar<!ELEMENT div1 (head, (p | list | note)*, div2*)>

"content model"

<!ELEMENT Elementname (Inhaltsmodell)>

Page 21: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-20

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

DTD 5/8Elementdeklaration

Leeres Element ("empty element")Element beinhaltet optional Attribute, weder Text noch Subelemente

<!ELEMENT HerstellerNr EMPTY>

Elementinhalt ("element content")Element beinhaltet Subelemente und optional Attribute, keinen Text

<!ELEMENT HandyKatalog (Hersteller*)>

Gemischter Inhalt ("mixed content")Element beinhaltet Text und optional Subelemente oder Attribute

<!ELEMENT Preis (#PCDATA)> <!ELEMENT Preis (#PCDATA | Kategorie | Rabatt)*>

Element mit beliebigem Inhalt Nicht näher spezifiziert in DTDVerwendete Elemente müssen allerdings sehr wohl deklariert werden!

<!ELEMENT Kommentar ANY>

Page 22: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-21

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

DTD 6/8Attributdeklaration

<!ATTLIST ElementnameAttributname1 Typ DefaultAttributname2 Typ Default...>

Attributnamen müssen innerhalb eines Elements eindeutig sein

DefaultspezifikationenNotwendiger Wert #REQUIREDOptionaler Wert #IMPLIEDVorgabewert [#FIXED] "wert"

Page 23: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-22

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

DTD 7/8Attributdeklaration - 10 Typen

CDATAZeichenkette<!ATTLIST Hersteller name CDATA #REQUIRED>

ID, IDREF(S)ID gewährleistet Eindeutigkeit von Attributwerten innerhalb eines Dokumentspro Element ist nur 1 Attribut vom Typ ID erlaubtIDREF ist eine Referenz auf ein Attribut vom Typ IDreferentielle Integrität (ungetypt!) wird durch XML-Prozessor geprüft Werte von ID- u. IDREF(S)-Attributen müssen gültige XML Namen sein, d.h. dürfen z.B. nicht mit Zahlen beginnen

<!ATTLIST beispielidentität ID #IMPLIEDreferenz IDREF #IMPLIED>

Page 24: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-23

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

DTD 8/8Attributdeklaration - 10 Typen

AufzählungstypEine vorgegebene Wertemenge bestehend aus XML name tokens<!ATTLIST Preis vertrag (ja|nein) "nein">

ENTITY, ENTITIESAttributwert ist Name eines deklarierten nicht-analysierten Entity<!ATTLIST Image filename ENTITY #REQUIRED>

NMTOKEN(S)"XML name tokens” sind eine erweiterte Form von XML Namenkönnen zusätzlich mit "0..9 ", ". " und "-" beginnen<!ATTLIST journal year NMTOKEN #REQUIRED>

NOTATIONAttributwert ist Name einer deklarierten Notation - selten verwendet<!ATTLIST image type NOTATION (gif | tiff) #REQUIRED>

Page 25: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-24

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Entities 1/1Überblick

Referenzierbare, mit Namen versehene Teileeines XML-Dokuments (Text, Markup oder Dateien beliebiger Formate) oder einer DTD

Zweck: Zeichenersetzung, ModularisierungVerarbeitung: Referenzen werden beim Parsevorgang expandiert

General EntitiesVerwendung in XML-Dokumenten

Parameter EntitiesVerwendung in DTDs

VordefiniertErsetzung XML-spezifischer Zeichen

UnicodeErsetzung von nicht-ASCII-Zeichen

BenutzerdefiniertErsetzung von Dokument-Teilen

Interneingebettet

Externeigene Datei

Validierbar

Nicht-ValidierbarIntern Extern

Page 26: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-25

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Namensräume 1/5

Ein XML Namensraum ("namespace") ermöglicht eine global eindeutige Identifizierung von Elementen und Attributen

W3C-REC "Namespaces in XML" vom 14. Jan. 1999 (13 Seiten)

Dazu werden Elemente und Attribute eines Anwendungsbereiches (z.B. MathML) einem oder mehreren Namensräumen zugeordnet

XSL verwendet z.B. verschiedene Namensräume für XSLT u. XSL-FO

Ein Namensraum wird durch einen URI repräsentiertmuß nicht als physische Ressource existieren

Die zugeordneten Elemente und Attribute werden durch diesen URI bei Verwendung qualifiziert

dies erlaubt die Wiederverwendung (das Mischen) von MarkupVokabularen

Page 27: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-26

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Namensräume 2/5Namensraum mit Präfix vs. Defaultnamensraum

Da URIs oft Zeichen enthalten die nicht in XML Namen erlaubt sind (z.B. " / ", " & ") können Elemente und Attribute nicht direkt über den URI qualifiziert werden sondern ausschließlich über benutzerdefinierte Präfixe

Ein oder mehrere Namensräume werden bei einem Elementinkl. Präfixe über das vordefinierte Attribut xmlns deklariert

der Name des Elements selbst sowie direkte oder indirekte Sub-elemente u. Attribute können mit diesem Präfix qualifiziert werden

Defaultnamensraumüber das vordefinierte Attribut xmlns kann auch 1 Defaultnamensraum pro Element deklariert werdennichtqualifizierte Subelemente unterliegen automatisch dem Defaultnamensraum, Attribute nichtkann in Subelementen überschrieben werden

Page 28: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-27

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Namensräume 3/5Deklaration und Verwendung

...<edi:HK

xmlns:edi='http://ecommerce.org/schema'xmlns='http://www.mobildev.com/schema'>

<model name="8210"><edi:price edi:units='Euro'>32.18</edi:price><price währung='USD'>25.16</price>...

</model>...</edi:HK>

Namensraum-Präfix (optional) URI des Namensraums

Vordefiniertes Attributzur Namensraum-Deklaration

Default-Namensraum(ohne Präfix)

Der Namensraum des Elements edi:price ist http://ecommerce.org/schemaDer Namensraum der Elemente model und price ist der Defaultnamensraumhttp://www.mobildev.com/schemaDie Attribute name und währung unterliegen keinem Namensraum

Page 29: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-28

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Namensräume 4/5... und DTDs

Namensräume sind prinzipiell unabhängig von DTDskönnen sowohl in Dokumenten mit, als auch ohne DTD verwendetwerden

Jedoch müssen alle im XML-Dokument qualifizierten Elementeund Attribute auch entsprechend in der DTD deklariert werden

<edi:HK> ... <!ELEMENT edi:HK (....)><edi:price> ... <!ELEMENT edi:price (#PCDATA)>

Darüberhinaus kann in der DTD ein Defaultnamensraumspezifiziert werden

<!ATTLIST edi:HK xmlnsCDATA #FIXED 'http://www.mobildev.com/schema'>

Page 30: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-29

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Namensräume 5/5Beispiele für Namensräume

RDF http://www.w3.org/1999/02/22-rdf-syntax-ns#http://www.w3.org/2000/01/rdf-schema#

MathML http://www.w3.org/1998/Math/MathMLXHTML http://www.w3.org/1999/xhtmlSMIL http://www.w3.org/TR/REC-smil

XSL http://www.w3.org/1999/XSL/Transformhttp://www.w3.org/1999/XSL/Format

Page 31: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-30

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML SchemaDTD versus XML Schema 1/2

Nachteile DTDseigene Syntaxwenige eingeschränkte Datentypen (nur einBasisdatentyp: String)globale Definition von ETsParameter Entities für Modularisierung, VererbungID, IDREF(S): Einschränkungen

Vorteile XML SchemaXML als Syntaxzahlreiche vordefinierte Datentypenbenutzerdefinierte einfache und komplexe DatentypenVererbungSchlüssel, Referenz:flexibles Konzept

XML SchemaDefinition der Struktur von XML-DokumentenW3C REC 2.5.2001, ca. 420 Seiten2. Auflage 28.10.2004

Page 32: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-31

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML SchemaDTD versus XML Schema 2/2

<?xml version="1.0"?><schema ...>

<simpleType name="herstellerNr"> ...<element name="HandyKatalog">

<complexType><sequence>

<element name="Hersteller" minOccurs="0" maxOccurs="unbounded"><complexType>

<sequence><element name="HerstellerNr" type="hk:herstellerNr" minOccurs="1" maxOccurs="1"/><element name="Modell" minOccurs="1" maxOccurs="unbounded">

<complexType><sequence>

<element name="Gewicht" type="string" minOccurs="1" maxOccurs="1"/><element name="Batterie" type="string" minOccurs="1" maxOccurs="1"/>

</sequence> ...</schema>

Katalog.xsd ...<!ELEMENT HandyKatalog (Hersteller*) ><!ELEMENT Hersteller (HerstellerNr, Modell+)><!ELEMENT Modell (Gewicht, Batterie)> <!ELEMENT Gewicht (#PCDATA)><!ELEMENT Batterie (#PCDATA)> ...

Katalog.dtd

Page 33: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-32

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML SchemaNamensräume 1/2

XML Schema–DokumentNamensraum (Namespace: NS) des zu definierenden Schemas kann über targetNamespace festgelegt werdenNS von “XML Schema” (definiert <element>, <attribute>,…) muss angegeben werdenWeitere NS können eingebunden werdenEin NS (zu definierender NS, XML Schema–NS od. anderer NS) kann als Default–NS definiert werden; für alle anderen muss einPräfix verwendet werden

<?xml version="1.0"?><schema targetNamespace="http://www.ifs.uni-linz.ac.at/hk"

xmlns:hk="http://www.ifs.uni-linz.ac.at/hk"xmlns="http://www.w3.org/2001/XMLSchema"elementFormDefault="qualified">...

Page 34: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-33

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML SchemaNamensräume 2/2

XML–DokumentSchema eines XML–Dokuments wird im Root–Element durchAttribut schemaLocation bestimmt1. Komponente: targetNamespace des Schemas2. Komponente: Angabe des Schema-Dokuments

Katalog.xsd

Katalog1.xml

<?xml version="1.0"?><schema targetNamespace="http://www.ifs.uni-linz.ac.at/hk"

xmlns:hk="http://www.ifs.uni-linz.ac.at/hk"xmlns="http://www.w3.org/2001/XMLSchema"elementFormDefault="qualified">...

<?xml version="1.0"?><HandyKatalog xsi:schemaLocation="http://www.ifs.uni-linz.ac.at/hk Katalog.xsd"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://www.ifs.uni-linz.ac.at/hk">...

Page 35: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-34

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML SchemaElemente und Attribute 1/3

Element

Attribut

Globale Definition: Definition als direktes Sub-Element von schemaLokale Definition: Definition in tieferer Schachtelungsebene

<element name="name" type="type" minOccurs="int" maxOccurs="int|unbounded"... />

einfacher od.komplexer Typ

Kardinalität: Unter- u. Obergrenze(nur in lokalen Elementen)

<attribute name="name" type="type" use="how-its-used" default/fixed="value"... />

Werte: required,optional, prohibited(nur in lokalen Attributen)

nur relevant, wennuse nicht gesetzt

einfacher Typ

Page 36: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-35

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML SchemaElemente und Attribute 2/3

Elemente und Attribute können globale (siehe oben) od. lokale Datentypen verwenden oder auf ein bereits spezifiziertes Element bzw. Attribut verweisen(Zweck: Modularisierung, Wiederverwendung)

Element/Attribut mit lokalem Datentyp

Verweis auf Element/Attribut

<element name="name" minOccurs="int" maxOccurs="int|unbounded"...><complexType>…</complexType>

</element>

<element ref="name" minOccurs="int" maxOccurs="int|unbounded".../>

<attribute name="name" use="how-its-used" default/fixed="value"...><simpleType>...</simpleType>

</attribute>

<attribute ref="name" use="how-its-used" default/fixed="value".../>

Page 37: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-36

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML SchemaElemente und Attribute 3/3

<schema ...><element name="Hersteller">

<complexType><sequence>

<element name="HerstellerNr" type="hk:herstellerNr" minOccurs="1" maxOccurs="1"/>

<element ref="hk:Modell" maxOccurs="unbounded"/></sequence><attribute name="name" type="string" use="required"/>

</complexType></element><element name="Modell">

<complexType><sequence>

<element name="Gewicht" type="string"/><element name="Batterie" type="string"/>

</sequence></complexType>

</element><simpleType name="herstellerNr"> …

globales Element,lokaler Datentyp

Referenz aufglobales Element

lokales Element,globaler Datentyp

globales Element,lokaler Datentyp

lokales Element,vordef. Datentyp

lokales Attribut,vordef. Datentyp

Page 38: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-37

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

string boolean float double duration dateTime

time date gYear gMonthDay

gDaygYearMonth

anyType

anySimple Type(all complex types)

gMonth hexBinary

base64Binary

anyURI

QName NOTATION

normalizedString

token

language NMTOKEN Name

NMTOKENS NCName

ID IDREF ENTITY

IDREFS ENTITIES

decimal

integer

nonPositiveInteger nonNegativeInteger

negativeInteger positiveInteger unsignedLong

unsignedInt

unsignedShort

unsignedByte

long

int

short

byte

(W3C REC, 2.5.2001)

XML SchemaVordefinierte Datentypen

primitivabgeleitet

Page 39: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-38

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML SchemaBenutzerdefinierte Datentypen - Klassifizierung

<schema ...><simpleType name="batterieKapazitaeten">

<restriction><simpleType>

<list itemType="hk:batterieKapazitaet"/></simpleType><length value="7"/>

</restriction></simpleType><complexType name="Modell">...</complexType>...

</schema>

benannt

komplexeinfach

unbenannt

globallokal

Einfach (simpleType) – komplex (complexType)Global - lokal

Globaler Datentyp: Definition als direktes Sub-Element von schemaLokaler Datentyp: Definition in tieferer Schachtelungsebene

Benannt - unbenannt

Page 40: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-39

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Sequenz – sequence

Auswahl – choiceBeliebige Reihenfolge – all

Geschachtelte Elemente können in beliebiger Reihenfolge verwendet werdenKardinalität wird durch minOccurs u. maxOccurs ausgedrückt

Einschränkung bei all: minOccurs kann nur die Werte 0 od. 1 haben, maxOccurs muss den Wert 1 haben

<complexType name="Modell"><sequence minOccurs="1" maxOccurs="1">

<element name="Gewicht" type="string" minOccurs="1" maxOccurs="1"/><element name="Batterie" type="string" minOccurs="1" maxOccurs="1"/>

</sequence><attribute name="nr" type="nonNegativeInteger" use="required"/>

</complexType>

XML SchemaKomplexe Datentypen mit geschachtelten Elementen

Page 41: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-40

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Pfadausdrücke 1/11XPath - XML Path Language

Zweckursprüngliches Ziel: Selektion von Dokumentteilen zum Layoutieren (XSL)mittlerweile auch für XPointer verwendetkeine XML-Syntax - proprietär!Selektionskriterien: Element- und Attributnamen, Inhalt, Typ, etc.

Grundprinzip der VerarbeitungNavigation in einem Baum, ähnlich zur Navigation in einem DateisystemAusgangspunkt ist immer ein bestimmter Kontext in Form einesBaumknotensdieser wird entweder von einem XPath-Ausdruck selbst oder von einerAnwendung (z.B. XSLT) vorgegebenNavigation und Filter modifizieren den KontextErgebnis eines XPath-Ausdrucks = zuletzt berechneter Kontext

W3C-Standard "XML Path Language (XPath) 1.0", 16. Nov. 1999 (44 Seiten)

Page 42: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-41

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

nr:Attribute

h1234

HandyKatalog:Element

name:Attribute

NOKIA

HerstellerNr:Element Modell:Element Modell:Element

Gewicht:Element Preis:Elementvertrag:Attributenein

:Comment

NOKIA

Hersteller:Element

....

Preis:Element

:Text

999

:Text

4999:Text

141g

name:Attribute

8210

name:Attribute

7110

vertrag:Attributeja

:root

Pfadausdrücke 2/11XPath-Datenmodell - Beispiel HandyKatalog1.xml

Knotenname: KnotentypKnotenwert

Legende:Dokumentwurzel

Elementwurzel

: besteht aus

UML Objektdiagramm

Page 43: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-42

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Pfadausdrücke 3/11XPath-Datenmodell - 13 Achsentypen

self

ancestor-or-self

ancestor

parent

following-sibling

following

child

descendant

descendant-or-self

preceding

preceding-sibling

Kontextknoten

Bestandteile eines XML-Dokuments repräsentiertals Knoten eines BaumesVerarbeitungsrichtungdes XPath-Prozessorsist depth-firstWeitere Achsentypen:

attributenamespace

Page 44: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-43

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Pfadausdrücke 4/11XPath-Datenmodell - Knotentypen

Node

NodeWithChildren

Element Attribute Text Comment ProcessingInstruction

Root

Namespace

declares

*

*

has1 *

*

Hinweis: Root (node) ist NICHT die Elementwurzel sondern repräsentiertdas gesamte XML Dokument("document entity" - "Dokumentwurzel")

NodeWithoutChildren

1

0..1

keine Konzepte des Datenmodells

isDefinedBy

*AxisName

Page 45: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-44

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Pfadausdrücke 5/11Hierarchieoperatoren, Element- u. Attributzugriff

Hierarchieoperatoren / und ///Dokumentwurzel (root node)//Modellalle Modell Elemente, beliebig tief im Kontext//Modell/Preisalle Preis Subelemente von Modell Elementen, beliebig tief im Kontext

Zugriff auf beliebige Elemente */*Elementwurzel//*alle Elemente, inklusive Elementwurzel/HandyKatalog/*/Modellalle Modell Elemente, sofern Enkeldes HandyKatalog Elements

Zugriff auf Attribute @//@*alle Attribute

Gewicht

HerstellerNrnr

Preisvertrag

Modellname

HandyKatalog

Herstellername

root

Page 46: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-45

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Pfadausdrücke 6/11Filter

//Modell[Preis]alle Modell Elemente, die ein Preis Element enthalten

//Hersteller[HerstellerNr]/Modell[Preis]alle Modell Elemente, die ein Preis Element enthalten und in einem Hersteller Element enthalten sind, das einHerstellerNr Element enthält

//Hersteller[Modell/Preis]alle Hersteller Elemente, die ein Modell Element enthalten, das ein Preis Element als Kind hat

//Modell[Gewicht and Preis]alle Modell Elemente mit Gewicht und Preis Subelementen

//Modell[Gewicht = "141g"]alle Modell Elemente, die ein Gewicht Element enthalten, das den Wert 141g hat

//Modell[@name = "7110"]alle Modell Elemente, deren Attribut name den Wert 7110 hat

Gewicht

HerstellerNrnr

Preisvertrag

Modellname

HandyKatalog

Herstellername

root

Page 47: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-46

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Pfadausdrücke 7/11Mengenoperatoren und Indizes

Mengenoperatoren: | Vereinigung//Modell/Gewicht | //Modell/Preisalle Gewicht und Preis Subelemente von Modell Elementen

Indizierter Zugriff über Kontextposition des Knotens//Modell[1]erstes Modell ElementModell[last()]letztes Modell Element

Gewicht

HerstellerNrnr

Preisvertrag

Modellname

HandyKatalog

Herstellername

root

Page 48: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-47

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Pfadausdrücke 8/11Location PathRelativer Pfad

Auswertung beginnt beim aktuellen Kontextknoten(z.B. vom vorangegangenen Location Step bestimmt)

Absoluter PfadAuswertung beginnt bei der Dokumentwurzel ("/") UNABHÄNGIG vomaktuellen Kontext

Location StepAxisName - Navigation über Achsenbezeichnung (ancestor, etc.)::NodeTest - Vorauswahl der Knoten auf dem eingeschlagenen Weg

Name des Knotens oderWildcard "*" - beliebige Elemente, "@*" - beliebige Attribute oderTyp des Knotens über Funktionen(text(), comment(), processing-instruction(), node())Ergebnis = Menge von Knoten

Verkettung

AxisName::NodeTest('['predicate']')*

Location Step[/Location Step]*

/Path

Page 49: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-48

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Pfadausdrücke 9/11Location Path

Kurzformen für Achsenbezeichnungenchild:: element-name element-nameattribute::attname @attname/descendant-or-self::node()/ //self::node() .parent::node() ..

[predicate]Ist ein Filter über alle im NodeTest ausgewählten Knoten - z.B. Angabe der Kontextposition eines Knotens über dessen Nummermehrere Prädikate werden von links nach rechts abgearbeitetErgebnis = Boolscher WertPrädikate können wiederum Location Paths beinhalten

z.B. Auswahl eines Knotens, falls ausgehend von diesem Knotenbestimmte Elemente/Attribute existieren//address[tel/@type="work"]

Page 50: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-49

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Pfadausdrücke 10/11Weitere Operatoren und Funktionen

Operatoren+, -, *, div, modor, and, =, !=, <=, <, >=, >

FunktionsbibliothekFunktionen auf geordneten Mengen von Knoten

last(), position(), count(), id() etc.String-Funktionen

contains(string s1, string s2)concat(string s1, string s2, string sn*)

etc.Boolsche FunktionenNumerische Funktionen

Page 51: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-50

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Pfadausdrücke 11/11Neuerungen in XPath 2.0 – Auszug

W3C Candidate Recommendation (June 2006)

Umfangreiche (!) Untermenge von XQuery 1.0

70 % mehr Sprachelemente als XPath 1.0Unterstützung des gesamten Typsystems von XML SchemaAlles ist eine „Sequenz“Neue Mengenoperatoren, zusätzlich zu Vereinigung nun Differenz und DurchschnittExistentielle (some) und universelle Quantifier (every)Weitere KnotentestsVerzweigungen – if und typeswitch

Page 52: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-51

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

InhaltGrundlagen von XML

Motivation, Dokumentbeschreibungssprachen und Anwendungsbereiche

XML Dokumente und DTDs

Namensräume (XML Namespace)

XML Schema

Pfadausdrücke (XPath)

XML & DatenbankenMotivation und HeterogenitätsaspekteArt der SpeicherungArt des Zugriffs – XQuery W3C-StandardSQL/XML – SQL:2003-StandardForschungsprototyp X-RayXML in RDBS

Page 53: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-52

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Motivation 1/3Gründe für den Einsatz von Datenbanken

Existierende DBs verwalten große DatenbeständePublizieren dieser Daten als XML-Dokumente

Verwaltung von existierenden XML-DokumentenSpeichern in DBs u.U. mit beschreibenden Attributen

Vorteile von DBsEffiziente Verwaltung großer, strukturierter DatenmengenAbfragesprachenOptimierungverschiedene Benutzersichten, Datenschutz u. DatensicherheitMehrbenutzerfähigkeit - feinere Granularität als nur “Dokument”Transaktionen u. Recovery

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

DBs sind essentielle Komponenten existierender IT-InfrastrukturenDie Wichtigkeit von DBs für Web-Applikationen steigt"... The Web is one huge database..."

[The Asilomar Report on Database Research, SIGMOD Record 27(4), Dec. 1998]

Page 54: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-53

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Motivation 2/3Szenario 1: Ubiquitous B2C Electronic Commerce

Daten des Systems (z.B. Tourismusinformationssystem) sind in einer DB gespeichert

Inhalts-Ebene (DB)

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

Hypertext-Ebene (XML)

XML wird zur Repräsentation auf der Hypertext-Ebene verwendet

Wichtige Aspekte: PerformanzAktualitätWartbarkeit

XML-Dokumente müssen aus der DB generiert werden

Präsentations-Ebene (z.B. HTML, WML)

XML-Dokumente sollen zur Präsentationauf verschiedenen Ausgabegeräten mitStylesheets weiter bearbeitet werden

Page 55: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-54

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Motivation 3/3Szenario 2: Datenaustausch im B2B Electronic Commerce

Die Schemata für diese XML-Dokumentewerden von den Geschäftspartnernvorgegeben

Wichtige Aspekte:Unabhängige SchemataAbbildungs-TransparenzSchema Autonomie

XML-Dokumente der Geschäftspartner (z.B. Produktkatalog) müssen in einer existierenden (“legacy”) DB gespeichert werden

Inhalts-Ebene (DB)

XML-Dokumente für die Geschäftspartner (z.B. Bestellung) müssen aus der DB generiert werden

XML wird als Format zum Datenaustausch im B2B EC verwendet

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

Geschäfts-Ebene

Daten-austausch-Ebene (XML)

Page 56: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-55

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Heterogenitätsaspekte 1/4Klassifikation von XML-Dokumenten

Datenorientiertes XML-DokumentDaten sind strukturiert, fein-granular und getyptSub-Element-Ordnung ist unwichtigStruktur wird meist durch ein Schema (z.B. DTD, XML Schema) festgelegtBeispiele: Produktkatalog, Bestellung, Rechnung

Dokumentorientiertes XML-DokumentDaten sind semistrukturiert, grob-granular und ungetyptSub-Element-Ordnung ist wichtig, gemischter Inhalt kommt vorStruktur oft nicht mehr durch ein Schema fixierbar oder Schema ist sehr generischBeispiel: Bericht

Mischformdatenorientierte und dokumentorientierte TeileBeispiel: Publikation

Page 57: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-56

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Heterogenitätsaspekte 2/4Klassifikation von XML-Dokumenten<Bestellung bestellnummer="1012"><Kundennummer>8596</Kundennummer><Position posNr="1"><Produktnummer>14896612</Produktnummer><Anzahl>2</Anzahl>...

</Position>...</Bestellung>

<Buch><Titel>XML companion</Titel>...<Kapitel nr="1">XML builds on the principles of two existinglanguages, <emph>HTML</emph> and <emph>SGML</emph> to create...</Kapitel>

</Buch>

<Schadensbericht>Ein schweres <Ursache>Feuer</Ursache> verwüstete dasGebäude und forderte <Todesopfer>12</Todesopfer>Menschenleben. Erste polizeiliche Untersuchungendeuten auf eine <Motiv>Brandstiftung</Motiv> hin.</Schadensbericht>

Mischform

DatenorientiertesXML

Dokument-orientiertes

XML

Page 58: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-57

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Heterogenitätsaspekte 3/4Datenmodell Heterogenität

DatenmodellEbene

InstanzEbene

SchemaEbene

XML-Dokument

ElementElement Wert

AttributElement Typ

DTD / XML Schema (optional)

AttributAttribut Wert

Element Typ aElement Typ b...

Attribut xAttribut y...

XML Konzepte

Relationale Datenbank

Relation Attribut

Tupel Wert

Relationales Schema

Relation ARelation B...

Attribut XAttribut Y...

Relationale Konzepte

Legende: ... besteht aus... kann bestehen aus

Page 59: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-58

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Heterogenitätsaspekte 4/4Datenmodell Heterogenität

XML (DTD)geschachteltnur „STRING“ in Attributen u. ETs gespeichertETs u. Elemente sind geordnet

einzelnes Attribut eines ETs (ID)IDREFs (ungetypt) u.geschachtelte ETs (getypt)

RDBSflachzahlreichin Attributen gespeichertRelationen und Tupeln sindnicht geordnetzusammengesetzter SchlüsselFremdschlüssel - getypt

optionalauch im Nachhinein erstellbarimplizites Schema in Form von Tags ist Teil des Inhalts (selbst-beschreibend)

notwendigim Vorhinein erstelltist nicht Teil des Inhalts

StrukturDatentypenWerteOrdnung

IdentifikationBeziehungen

Schema

Page 60: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-59

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Art der Speicherung 1/14Überblick

Art der Speicherung

Dateisystem DBS Hybrid

Natives DBSHerkömmliches DBS

DateisystemXML-Dokumente als Dateien auf Betriebssystem-EbeneZusätzlich Speichern von beschreibenden Attributen und Verweisauf Datei in DB

DatenbankXML Dokument wird als eine Einheit oder zerlegt, u.U. gemeinsammit beschreibenden Attributen, in der Datenbank gespeichert

HybridSpeicherung der XML-Dokumente od. Teilen davon im Dateisystemu. in der DatenbankRedundante u. nicht redundante Speicherung möglich

Page 61: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-60

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Art der Speicherung 2/14Klassifizierung gemäß Datenmodell/Schema-Sprache

Unterscheidung bzgl. Datenmodell der DB bzw. Schema-Sprache des XML-DokumentsSchema-Sprache: Unterscheidung, ob XML-Dokument einSchema hat oder schemalos ist

Datenmodell/Datenformat

Relational

Objektrelational

Objektorientiert

XML

kein Schema XML SchemaDTDSchema-Sprache

Page 62: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-61

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Art der Speicherung 3/14Abbildungsmöglichkeiten

RelationAttribut Attribut

ET_R

XML Konzepte

Abbildungsmöglichkeiten

RDBS Konzepte

Element Typ Attribut

ET_A A_A

Attribut

Page 63: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-62

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Art der Speicherung 4/14Schema-Arten

Fixes SchemaSchema ist unabhängig vomAnwendungsbereich (z.B. Handy-Katalog)und vom Schema zu dem abgebildet wird

ohne Dekomposition: XML-Dokument wirdals eine Einheit/ein Wert gespeichertmit Dekomposition: XML-Dokument wird zerlegt

Beispiele für fixes Schema

Schema DB-Seite

fixabgeleitet

benutzerdefiniert

fix

benu

tzer-

defin

iert

abge

leitet

SchemaXML-Seite

<!ELEMENT Datenbank (Tabelle*)><!ELEMENT Tabelle (Tupel*)><!ELEMENT Tupel (Attribut+)>...

XMLDok ElemNr SubElemPosition SubElemName SubElemNr/SubElemWert

Page 64: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-63

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Art der Speicherung 5/14Schema-Arten

Abgeleitetes SchemaSchema wird aus dem jeweils anderen Schema abgeleitetBenutzerdefiniertes SchemaSchema entspricht dem Anwendungsbereich, wurde jedochunabhängig vom Schema zu dem gemappt wird entworfenMischformenBeispiele für benutzerdefiniertes od. abgeleitetes Schema

<!ELEMENT HandyKatalog (Hersteller*)><!ELEMENT Hersteller (HerstellerNr, Modell+)><!ATTLIST Hersteller Name CDATA #REQUIRED>...

Hersteller HerstellerNr Name Modell Name Gewicht HerstellerNr

Page 65: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-64

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Art der Speicherung 6/14Schema-Arten - Vorteile/Nachteile

Fixes Schema- Realität wird durch das fixe Schema nicht abgebildet- Queries u. Optimierung schwierig zu realisieren+ fix auf DB-Seite:

kein Schema auf XML-Seite notwendigfür dokumentenorientiertes XML geeignet

Abgeleitetes Schema und benutzerdefiniertes Schema+ Realität wird abgebildet+ Queries u. Optimierung können genutzt werden+ für datenorientiertes XML geeignet

Abgeleitetes Schema- anderes Schema muß vorhanden sein

Benutzerdefiniertes Schema+ Schema kann unabhängig vom anderen Schema entworfen werden+ Daten existierender DBs können genutzt werden- bei benutzerdefinierten Schemata auf beiden Seiten: Heterogenitäten

Page 66: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-65

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Art der Speicherung 7/14Zusammenhang Schema-Art/Abbildungs-Art

Kombination der Schema-Art bedingt Art der Abbildung

fix abgeleitet

fixeAbbildung

n.a.nicht sinnvoll

XML DB benutzerdefiniert

fix

abgeleitet

benutzer-definiert

benutzerdefinierteAbbildung

abgeleiteteAbbildung

fixeAbbildung

abgeleiteteAbbildung

nicht sinnvoll nicht sinnvoll

Page 67: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-66

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Art der Speicherung 8/14Repräsentation des Abbildungswissens

Abbildungswissen hard-codierenin Transformations-Programmenin Abfragen

Abbildungswissen reifizieren (als Daten speichern)in Datei speichern (z.B. als XML-Dokument)in DB speichern: DB-Funktionalität nutzenMeta-Wissen sollte separat von den anderen Daten verwaltet werdenMischform

Page 68: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-67

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Abbildungswissen hard-codiert in Abfrage - Template Driven

Art der Speicherung 9/14Verwaltung Abbildungswissen - Beispiel

[R. Bourret: XML and Databases, http://www.rpbourret.com/xml/XMLAndDatabases.htm, 2000]

<?xml version="1.0" ?><Unterkuenfte xmlns:sql="urn:schemas-microsoft-com:xml-sql">

<sql:query>SELECT * FROM Accommodation FOR XML AUTO,ELEMENTS

</sql:query></Unterkuenfte>

XML-Template-File

Page 69: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-68

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Abbildungswissen reifiziert in Datei - Model Driven

Art der Speicherung 10/14Verwaltung Abbildungswissen - Beispiel

[R. Bourret: XML and Databases, http://www.rpbourret.com/xml/XMLAndDatabases.htm, 2000]

<?xml version="1.0" ?><Schema xmlns="urn:schemas-microsoft-com:xml-data"

xmlns:dt="urn:schemas-microsoft-com:datatypes"xmlns:sql="urn:schemas-microsoft-com:xml-sql">

<ElementType name="Phone" content="textOnly" /><ElementType name="Accommodation" sql:relation="Accommodation"><element type="Phone" sql:relation="Phone" sql:field="Number">

<sql:relationshipkey-relation="Accommodation"key="AcID"foreign-key="AccID"foreign-relation="Phone" />

</element></ElementType>

</Schema>

Page 70: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-69

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Art der Speicherung 11/14Abbildungs-Alternativen - Beispiel

*

hotelChain

«attribute»hotelID

name category location telephone

hotel

room

roomCat price

*

*11 1

1 1

1

UML Diagramm:

<!ELEMENT hotelChain (hotel*)><!ELEMENT hotel (name, category, location, telephone*, room*)><!ATTLIST hotel hotelID CDATA #REQUIRED><!ELEMENT name (#PCDATA)><!ELEMENT category (#PCDATA)><!ELEMENT location (#PCDATA)><!ELEMENT telephone (#PCDATA)><!ELEMENT room (roomCat, price)><!ELEMENT roomCat (#PCDATA)><!ELEMENT price (#PCDATA)>

DTD:

Page 71: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-70

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Art der Speicherung 12/14Abbildung in fixes DB-Schema

:hotelChain

«attribute»:hotelID

:name :category :location :telephone

:hotel

:room

:roomCat :priceSource Ordinal Name Target/ValueFixedMappingTable

Element Name DB WertAttribute Name DB WertXML Wert DB Wert

[vgl. Florescu et al., IEEE Data Engineering, 1999]

...location Viennatelephone 0043/732/2468roomroomCat Suite

...

Beispiel: Dekomposition des Dokuments (Inhalt u. Schemainformation)in eine Tabelle

Page 72: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-71

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

*

hotelChain

«attribute»hotelID

name category location telephone

hotel

room

roomCat price

*

*11 1

1 1

1

Problem: Fragmentierung

Element Typ DB RelationAttribut DB AttributFremdschlüssel verbinden Elemente

rID hID

room

rcID rID value

roomCat

hcID

hotelChain

[vgl. Shanmugasundaram et al., VLDB, 1999]

hID hcID hotelID

hotel

nID hID value

name

lID hID value

location

cID hID value

category

pID rID value

price

Beispiel: Dekomposition der XML Schema Spezifikation in Tabellen(Basic Inlining)

Art der Speicherung 13/14Abbildung in abgeleitetes DB-Schema

tID hID valuetelephone

Page 73: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-72

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Art der Speicherung 14/14Abbildung in benutzerdefiniertes DB-Schema

ID Phone# Desc

Phone

ID RoomCat Rate

RoomRatesTownID TownName Country

Town

ID Name Category TownID

Accommodation

*

hotelChain

«attribute»hotelID

name category location telephone

hotel

room

roomCat price

*

*11 1

1 1

1

Beispiel: Abbildung der XML Schema Spezifikation auf existierende Tabellen und Attribute

Page 74: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-73

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Art des Zugriffs 1/5Generierungsalternativen

Materialized

Art der Generierung

Virtuell

Change

Zeitpunktder Generierung

Periodisch

AnfrageGranularität

derGenerierungEinzelne

SeiteAlleSeiten

Element on Page

Entwurfsziel 1: Performanz

Inhalts-Ebene (DB)

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

HypertextEbene (XML)

Präsentations-Ebene (z.B. HTML, WML)

Scenario 1: Ubiquitous B2C EC

Element einer Seite

Entwurfsziel 3: Wartbarkeit

Materialisiert

Vorgenerierung vs.On-the-fly-Generierung

ÄnderungEntwurfsziel 2: Aktualität

Page 75: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-74

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Abfrage auf DB, um XML-Dokument zu erzeugenDatenbank-zentriert

Zugriff erfolgt über SQL auf DB-SchemaXML-zentriert

Zugriff erfolgt über XML auf DTD bzw. XML SchemaSpezieller Mechanismus

weder Datenbank- noch XML-zentriertMischform

Abfrage versus DatenmanipulationDatenmanipulation wird noch kaum unterstützt-> aktuelles ForschungsgebietAnsatz: XUpdate von A. Laux u. L. Martin (WD, 14.9.2000, http://www.xmldb.org/xupdate/xupdate-wd.html)

Art des Zugriffs 2/5

Page 76: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-75

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Quilt

SQL OQL

XML-QL

XQL

XQL-99

XSLXPointer

XPath

Quilt: XML-Abfragesprache von IBM Almaden, INRIA u. Software AGUnterstützt alle Anforderungen des W3C an eine Query-SpracheGrundlage für die Query-Sprache XQuery (W3C CR, 8. 6. 2006)

Navigation,Pfadausdrücke

Variablen-Bindung,flexible Strukturierungder Ausgabe

Ausdrücke

Art des Zugriffs 3/5XML Abfragesprachen

XQuery

Page 77: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-76

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Variablen werden zu Werten von (XPath)Ausdrücken gebunden

Filtern der Tupel entsprechendPrädikaten (optional)

Komposition des Ergebnisses(einzelner Knoten, geordneter Waldvon Knoten od. primitiver Wert

Ergebnis

RETURN

Bereinigte Liste von Tupelnvon gebundenen Variablen

WHERE

Geordnete Liste von Tupelnvon gebundenen Variablen

FOR/LET

XML-Dokument

Art des Zugriffs 4/5XQuery im Überblick

Page 78: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-77

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Art des Zugriffs 5/5XQuery im Überblick

Abfrage: Finde alle Hotels der Kategorie 5*, die sich in Wien befinden.

FOR $h IN document (“http://…/hotels.xml”)//hotel,

WHERE $h/category = “5*” AND $h/location = “Vienna”

RETURN $h

$h

Variablen Bindung

Navigation//hotel

/category /location

Page 79: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-78

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQuery 1/27Allgemein

Query Sprache, empfohlen vom W3CMehrere Standards zu Requirements, Use Cases, Formal Semantics, etc.Zum Abfragen von XML Dokumenten

Dzt. (noch) keine Möglichkeit zur DatenmanipulationAusweichen auf andere Sprachen wie XUpdate

Vgl. SQL für relationales Datenmodell, OQL für objektorientiertesDatenmodell, XQuery für semistrukturierte (XML) DatenVgl. XPath zur Evaluierung von Pfaden, XSLT zur Transformation von XML DatenStreng getypte Sprache

Page 80: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-79

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQuery 1/27Datenmodell 1/3

XQuery 1.0 und XPath 2.0 DatenmodellErweiterung des XPath 1.0 DatenmodellsEingabe- und Ausgabe-Daten von XQuery Queries alsAusprägungen dieses ModellsDefiniert 7 Knotenarten

document, element, attribute, text, namespace, processing instruction, und comment.

Basiert auf XML Information Set (Infoset), bietet zusätzlichIdentifikation des Typs eines Elements oder Attributs übereinen QNameSequenzen, bestehend aus Knoten und atomaren Werten, können dargestellt werden

• (Zwischen-) Ergebnis einer XQuery muss nicht einwohlgeformtes Dokument mit einem Dokumentelementsein, sondern ist eine beliebige Sequenz

Page 81: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-80

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryDatenmodell 2/3

SequenzGeordnete Sammlung von keinem bis mehreren Knoten und/oder atomaren Werten (in Dokument-Reihenfolge)Knoten haben Identität

Hinzunahme eines Knotens zu einer Sequenz beeinflusst nicht seine IdentitätEin Knoten kann in mehreren Sequenzen enthalten seinEine Sequenz kann denselben Knoten mehrmals enthalten (als Duplikate)

Alles ist eine SequenzEs erfolgt keine Unterscheidung zwischen einem einfachen Knoten oder atomaren Wert und einer Sequenz der Länge 1

Page 82: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-81

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryDatenmodell 3/3

Sequenz (cont.)Beispiele

1, 2, 31, <two/>, "three"()

4 (… eine Sequenz der Länge 1)Sequenzen sind flach, d.h. sie können nicht geschachtelt werden

let $a:=(1, 2)

let $b:=($a, $a) => (1, 2, 1, 2)

aber ein Knoten einer Sequenz kann natürlich Kinder haben, d.h. Wurzel eines Baums sein

KonstruktorenZur Erstellung von Knoten (Elementen, Attributen, ProcessingInstructions, etc.) oder atomaren Werten

Page 83: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-82

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryAusdrücke 1/5

XQuery ist eine funktionale SpracheBestehend aus Ausdrücken ohne SeiteneffektenAusdrücke sind zusammensetzbarAusdruck liefert Sequenz

Literaler AusdruckEinfachste Art eines AusdrucksBspw. 47 (xs:integer), 4.7 (xs:decimal), "47" oder '47'(xs:string)

Einfacher KonstruktorErzeugt atomaren Wert aus seiner String-RepräsentationBspw. date("2003-03-04")

Page 84: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-83

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryAusdrücke 2/5

KlammernBeliebige Benutzung von Klammern zur Herstellung einer expliziten Reihenfolge

Bspw. (2+3)*4 => 20, 2+3*4 => 14

Komma Operator Zur Konkatenation zweier Werte zu einer Sequenz

Bspw. "1,2" … Sequenz der Länge 2; oft auch als "(1,2)" notiert

Sequenz kann auch mit to erzeugt werdenBspw. (1 to 10)

VariableEin Bezeichner, der mit "$" beginntMit let können Variable gebunden werden

Bspw. let $x:=3

Page 85: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-84

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryAusdrücke 3/5

FunktionsaufrufXQuery stellt eine Kernbibliothek von Funktionen zur Verfügung

Bspw. substring("Imre Kertész",6,6)

Pfad-Ausdrückewie aus XPath bekannt

Besteht aus mehreren, durch "/" getrennten stepsEin step folgt einer axis, bspw. child, descendantPredicates zur Einschränkung, z.B. [@year=2003]

OperatorenOftmals in predicates benutztWertvergleich: eq, ne, lt, le, gt, ge

Einschränkung: Operanden müssen Sequenzen mit Länge 1 sein

Page 86: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-85

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryAusdrücke 4/5

Operatoren (cont.)Genereller Vergleich: =, !=, >, >=, <, <=

auf beliebige Sequenzen mit "existenzieller" Semantik$emps1/salary > $emps2/salary

Identität: is und isnot$node1 is $node2

Reihenfolge: <<, >>$node1 << $node2

Logisch: and, or$to-be or $not-to-be

Negation: not() Funktionlet $not-to-be := not($to-be)

Page 87: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-86

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryAusdrücke 5/5

Element-KonstruktorenEinfache Konstruktoren

<emp dept="10"><name>Franz Kantor</name>

</emp>

Evaluierung von Ausdrücken in Konstruktoren<emp dept="{$dept}"><name>{let $n:=document("new.xml")/personreturn $n/firstname, $n/lastname

}</name></emp>

Berechnete KonstruktorenElement- und Attribut-Name können auch berechnet werden

Page 88: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-87

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryBeispiel 1/2

<!DOCTYPE db [<!ELEMENT db (depts, emps)><!ELEMENT depts (dept*)><!ELEMENT dept (deptno,dname,loc)><!ELEMENT emps (emp*)><!ELEMENT emp (empno,ename,job,mgr?,hiredate,sal,comm?,deptno)>

]><db ..>

<!-- Departments --><depts><dept><deptno>10</deptno><dname>ACCOUNTING</dname><loc>NEW YORK</loc>

</dept><dept><deptno>20</deptno><dname>RESEARCH</dname><loc>DALLAS</loc>

</dept> ..</depts>

Page 89: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-88

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryBeispiel 2/2

<emps><!-- Employees --> <emp><empno>7369</empno><ename>SMITH</ename><job>CLERK</job><mgr>7902</mgr><hiredate>1980-12-17</hiredate><sal>800</sal><deptno>20</deptno>

</emp><emp><empno>7499</empno><ename>ALLEN</ename><job>SALESMAN</job>..

</emp>..

</emps></db>

Page 90: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-89

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryGrundlegende Struktur einer XQuery - FLOWR

Grundlegende Struktur eines ['floωer] Ausdrucks, d.h. einer Query

for Iterationlet Variablenbindungwhere Selektionorder by Sortierungreturn Konstruktion

Vgl. SQLselect Konstruktionfrom Iterationwhere Selektion

Syntax in DTD ausgedrücktFLWR := (for|let)+ where? order-by? return

Page 91: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-90

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryfor Clause

Iterationfor wird benutzt, um über Sequenzen zu iterieren

Jeder Ausdruck evaluiert zu einer Sequenz, jedes item daraus wird schrittweise an die Variable gebundenDie for Klausel produziert einen Tupelstrom aus dem kartesischen Produkt aller VariableD.h., jedes Tupel besteht aus einer oder mehreren Variablenbindungen

Die Ordnung der Sequenzen wird aufrechterhalten (von links nach rechts und Reihenfolge im Dokument)Entspricht SQL FROM

FOR Variable in Ausdruck

,

Page 92: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-91

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryfor Clause

Iteration (cont.)Q1

for $s in (<one/>, <two/>, <three/>)return <out>{$s}</out><out><one/></out><out><two/></out><out><three/></out>

Q2for $m in (2,3), $n in (5,10)return <fact>{$m} times {$n} is {$m*$n}</fact><fact>2 times 5 is 10</fact><fact>2 times 10 is 20</fact><fact>3 times 5 is 15</fact><fact>3 times 10 is 30</fact>

Page 93: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-92

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQuerylet Clause

Variablenbindunglet wird zur Variablenbindung benutzt

Eine let Clause erzeugt eine Variablenbindung je VariableNatürlich kann ein Ausdruck zu einer Sequenz mit mehreren items evaluieren, aber Variable wird an gesamte Sequenz gebunden (nicht an jedes seiner items wie bei der for Clause)

Dokument-Reihenfolge wird in den Sequenzen aufrechterhalten, außer es wird eine non-order-preserving Funktion verwendet wie distinct-values()

Ohne Entsprechung in SQL

LET Variable := Ausdruck

,

Page 94: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-93

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQuerylet Clause

Variablenbindung (cont.)let Clause wird einmal je Tupel aus dem Tupelstrom evaluiertKann Referenzen auf vorhergehende for und let ClausesbeinhaltenFür alle folgenden Queries gilt let $db := fn:doc('emp-sample.xml')/dblet $emps := $db/emps/emplet $depts := $db/depts/dept

Q3Gesucht ist je Angestellter sein Name und der Name der Abteilung, in der er angestellt istfor $e in $empslet $d := $depts[deptno=$e/deptno]return <emp>{$e/name, $d/name}</emp><emp><ename>SMITH</ename><dname>RESEARCH</..

Page 95: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-94

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQuerylet Clause

Variablenbindung (cont.)Q4 Gruppierung

Gesucht sind je Abteilung die Anzahl und das Durchschnittsgehalt der Angestelltenfor $d in $deptslet $e := $emps[deptno=$d/deptno]return<deptstat> <deptno>{$d/deptno}</deptno><count>{count($e)}</count><avgsal>{avg($e/sal)}</avgsal>

</deptstat>

Page 96: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-95

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQuerywhere Clause

SelektionWendet einen logischen Ausdruck auf die jeweilige TupelbindunganEs bleiben nur Tupel über, die den Ausdruck erfüllenDuplikate, sofern vorhanden, bleiben vorhandenEntspricht SQL where, wird daher für Joins benutztQ5

Gesucht sind alle Angestellte mit steuerfreiem Gehalt, das sind solche, deren Jahresgehalt unter 14.500,- liegt<tax-free-emps>{for $e in $emps where $e/sal*14 < 14500 return $e}</tax-free-emps>

where boolescher-Ausdruck

Page 97: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-96

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryorder by Clause

SortierungNeusortierung mit ORDER BY

Sortiert den gefilterten Tupelstrom aufgrund eines Ausdrucks neu, Knoten des Ausdrucks müssen mit gt vergleichbar seinEs können beliebige Sortierausdrücke benutzt werden (auch auf nicht "return-ierte" Elemente, Attribute, etc.)

Q5 (cont.)Gesucht sind alle Angestellte mit steuerfreiem Gehalt, aufsteigend sortiert nach Gehalt<tax-free-emps>{for $e in $emps where $e/sal*14 < 14500 order by $e/sal ascending return$e}</tax-free-emps>

order by Ausdruck

Page 98: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-97

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryreturn Clause

KonstruktionErzeugt das Ergebnis der QueryWird einmal je Tupelbindung evaluiertBenutzt oft einen Element-KonstruktorEntspricht SQL select

return Ausdruck

Page 99: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-98

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryNesting

FLWOR Ausdrücke können beliebig geschachtelt werden, überall dort, wo eine Sequenz erzeugt werden sollQ6

Gesucht sind Angestellte nach Abteilungsname sortiertfor $d in $deptsorder by $d/dnamereturn ($d/dname,for $e in $emps[deptno=$d/deptno]return $e)

for $d in $deptslet $e:= (for $e in $empswhere $e/deptno=$d/deptnoreturn $e)

order by $d/dnamereturn ($d/dname, $e)

Page 100: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-99

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryArithmetische Operatoren

+, -, *, div, modAchtung: ist ein Operand eine leere Sequenz, ist das Ergebnis eine leere Sequenz! (vgl. SQL)Q7

Liefere alle Angestellte mit einem pay Element, das die Summe aus salary und commission beinhaltetfor $e in $empsreturn <emp>{$e/ename, <pay>$e/sal+$e/comm</pay>}</emp>pay ist leer, sofern Angestellter keine comm erhält

Q8Liefere alle Angestellten, die keine Kommission erhaltenfor $e in $emps where empty($e/comm) return $e

Page 101: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-100

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryAggregatfunktionen

sum, avg, count, max, minQ9 (korrelierte Teilabfrage)

Gesucht sind alle Angestellten, deren Gehalt höher ist als das Durchschnittsgehalt aller Mitarbeiter in derselben Abteilungfor $e1 in $empslet $dept_sal := (for $e2 in $empswhere $e2/deptno=$e1/deptnoreturn $e2/sal

)where $e1/sal > avg($dept_sal)return $e1/ename

alternativlet $dept_sal := $emps[deptno=$e1/deptno]/sal

Page 102: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-101

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryOperationen auf Sequenzen

union, intersect, exceptQ10

Gesucht sind Abteilungen mit mehr als 2 aber weniger als 6 Angestelltenreturn(for $d1 in $deptswhere count($emps[deptno=$d1/deptno]) gt 2return $d1) intersect(for $d2 in $deptswhere count($emps[deptno=$d2/deptno]) lt 6return $d2)

Solche Queries sind oft alternativ ausdrückbarfor $d in $deptslet $e := $emps[deptno=$d/deptno] where count($e) ge 2 and count($e) lt 6return $d

Page 103: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-102

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryBedingte Ausdrücke

Mit if then elseAlle drei Klauseln sind verpflichtendTest-Ausdruck muss in Klammer gesetzt werden

Q11Zeichne Abteilungen mit dem Element big-dept oder small-dept aus, je nach Anzahl der Angestelltenfor $d in $deptslet $e := count($emps[deptno=$d/deptno])returnif ($e ge 5)then <big-dept emps="{$e}">{$d/*}</big-dept>else <sml-dept emps="{$e}">{$d/*}</sml-dept>

Page 104: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-103

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryQuantifizierte Ausdrücke

Boolscher Test, ob Ausdruck für einige Werte oder jedenWert einer Sequenz gilt

every $a in Sequenz satisfies Ausdruck

some $a in Sequenz satisfies Ausdruck

Q12Gesucht sind Abteilungen in denen jeder Angestellte mehr als 500,-verdientfor $d in $deptslet $e := $emps[deptno=$d/deptno]wherenot(empty($e)) and not(some $x in $e satisfies $x/sal <= 500)

return $d

Page 105: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-104

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XQueryProlog und Body einer XQuery

Eine XQuery besteht ausProlog

benötigt bei Referenzen auf Namensräume, Verwendung von Typen, oder benutzerdefinierten FunktionenDeklaration von Namensräumen (Deklaration der Präfixe oder eines Default-Namensraums)• declare namespace s="http://big.tuwien.ac.at/xquery/empsamle"

Import von Schemen• zur Validierung, Query Optimierung, statischen Typprüfung

BodyBeinhaltet die "eigentliche" Query

Page 106: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-105

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

SQL/XML 1/19Einführung

RDBS

XML-Datentyp

SQL XQuery

XML-Dokumente

Entnommen aus:

Speicherung von XML-Dokumenten in RDBSDer neue Basisdatentyp XML

Generierung von XML-Dokumenten aus SQL-DatenXML-Sichten auf SQL-Daten

Abfrage von XML-Dokumenten in RDBS Integration von XQuery in SQL

SQL/XML – Teil von SQL:2003sieht Speicherung eines XML-Dokumentsals Wert des Datentyps XML vordefiniert Abbildungen zwischen SQL und XMLspezifiziert Funktionen, die auf XML-Werten operierenermöglicht Generierung von XML-Dokumenten

Page 107: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-106

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

SQL/XML 2/19Basisdatentyp XML

ermöglicht Speicherung von XML-Werten in TabellenspaltenXML-Werte:

Nullwert: NULL vs. <a></a> vs. <a xsi:nil="true"/> XML-Dokument (mit oder ohne Prolog)XML-ElementWald von XML-Elementen

XML-Werte sind nicht vergleichbarkeine OrdnungsrelationStandard-SQL unterstützt benutzerdefinierte OrdnungenBenutzer muss Ordnung explizit definieren, falls XML-Werte in Vergleichsprädikaten einer SQL-Anfrage vorkommen sollen können

XML-Funktionen (später im Detail präsentiert)erzeugen XML-Werte aus SQL-Daten und anderen XML-Wertenermöglichen Zugriff auf Informationen in gespeicherten XML-Werten

872 <Autoren>Jack, Jim Beam</Autoren>234 <Autoren>Johnny Walker</Autoren>123 <Autoren>Jim Beam</Autoren>ID Autorennamen

Page 108: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-107

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

SQL/XML 3/19Abbildung zw. SQL-Identifiers und XML-Names

Bei regulären SQL-Identifiers erfolgt eine 1:1-Abbildung XML-Name wird vollständig in Grossbuchstaben notiert, z.B.

Nicht jeder SQL-Identifier ist ein gültiger XML-Name, z.B. @, :, &, etc.

Ungültige SQL-Identifier werden in "Escape-Notation" dargestellt, d.h. auf eine Sequenz von Hexits beginnend mit "_x" und endendmit "_" abgebildetBeispiele:

Abbildung ist reversibel

Ω →_x03A9_ (the Unicode value)Gehalt:FY2000 →Gehalt_x003A_FY2000Work@home →Work_x0040_ homeHome_Town →Home_x005F_ Town

Mitarbeiter →<MITARBEITER> … </MITARBEITER>

Page 109: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-108

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

SQL/XML 4/19XML-Schema-Namensräume für SQLXML

Namespace-Präfixe:

XML-zentrische Abbildung von SQL-Datentypen auf XML-Schema-Typen

Beschreibe die Semantik des SQL-Datentyps so exakt wie möglichunter Ausnutzung von Annotationen:

Annotationen sind XML-Attribute

xsd: xmlns:schema="http://www.w3.org/2001/XMLschema"xsi: targetNamespace:schema="http:// www.iso-standards.net/9075/2001/12/XMLschema"sqlxml: xmlns:sqlxml="http://www.iso-standards.net/9075/2001/12/XMLschema">

length maxLength characterSet collationprecision scale minExponent maxExponentuserPrecision leadingPrecision maxElements finalcatalogName schemaName domainName typeNamemappedType mappedElementType

Page 110: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-109

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

SQL/XML 5/19sqlxml-Namensraum

definiert SQL-Datentypen für XMLvordefinierte Basisdatentypen (CHAR, VARCHAR, INTEGER, …)Wertebereiche (DOMAIN)Tupeltypen (ROW)Arraytypen (ARRAY)Multimengentypen (MULTISET)Distinct-Typen (DISTINCT)

definiert SQL-Schemaobjekte für XMLKatalogeSchemataTabellenSichtenZeichensätzeSprachen

Page 111: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-110

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

SQL/XML 6/19Abbildung von SQL-Basisdatentypen – Beispiel 1

CHARACTER(20) CHARACTER SET LATIN1 COLLATION DEUTSCH

<xsd:simpleType name="CHAR_20"><xsd:annotation>

<xsd:appinfo><sqlxml:sqltype

kind="PREDEFINED"name="CHAR" length="20"characterSetName="LATIN1"collation="DEUTSCH"/>

</xsd:appinfo></xsd:annotation><xsd:restriction base="xsd:string">

<xsd:length value="20"/></xsd:restriction>

</xsd:simpleType>

CHARACTER

Exakte Typbeschreibung basierendauf den Datentypen bzw. Typkonstruktoren aus SQLXML

Abbildung auf Datentypendes XML-Schema

Page 112: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-111

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

SQL/XML 7/19Abbildung von SQL-Basisdatentypen – Beispiel 2

<xsd:complexType name="ROW.Name"><xsd:annotation>

<xsd:appinfo><sqlxml:sqltype kind="ROW">

<sqlxml:field name="VORNAME" mappedType="VARCHAR_25"/><sqlxml:field name="NACHNAME" mappedType="VARCHAR_35"/>

</sqlxml:sqltype></xsd:appinfo>

</xsd:annotation><xsd:sequence>

<xsd:element name="VORNAME" type="VARCHAR_25"/><xsd:element name="NACHNAME" type="VARCHAR_35"/>

</xsd:sequence></xsd:complexType>

ROW(Vorname VARCHAR(25), Nachname VARCHAR(35))

Page 113: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-112

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

SQL/XML 8/19Abbildung von SQL-Werten auf XML-Werte

Durch die Abbildung der Datentypen bestimmtKleinere Ausnahmen bei numerische Datentypen

Dezimalpunkt entfällt, wenn keine Nachkommastellen vorhanden sind

Abbildung von speziellen Zeichen (<, &, etc.) eines Strings

Zusammenspiel der Namensräume XML-Schema und SQLXML zur Definition der SQL-Basisdatentypen und Typkonstruktoren in XMLermöglicht Abbildung konstruierter und benutzerdefinierter SQL-Datentypen

170407.0 →170470

< →&lt;

Page 114: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-113

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

SQL/XML 9/19Abbildung von SQL-Tabellen

Abbildung einer Tabelle auf ein XML-Schema-Dokument (enthält das Tabellenschema) undein XML-Dokument (enthält die Tabellenzeilen)

Abbildung von Tabellenspalten auf XML-Elemente

Abbildung von Tabellenzeilen <row>-XML-Elemente

Page 115: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-114

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

SQL/XML 10/19Abbildung von SQL-Tabellenschemata

CREATE TABLE Mitarbeiter(Name CHARACTER(20),Gehalt NUMERIC(8, 2)

);

Abbildung von SQL-Tabellenspaltenauf XML-Elemente

<xsd:complexType name="ROW.MITARBEITER"><xsd:sequence>

<xsd:element name="NAME"type="CHAR_20"/>

<xsd:element name="GEHALT"type="NUMERIC_8_2"/>

</xsd:sequence></xsd:complexType>

<xsd:complexType name="TABLE.MITARBEITER"><xsd:annotation><xsd:appinfo>

<sqlxml:sqlname type="BASE TABLE"localName="MITARBEITER"/>

</xsd:appinfo></xsd:annotation><xsd:sequence>

<xsd:element name="row"type="ROW.MITARBEITER"/>

</xsd:sequence></xsd:complexType>

Page 116: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-115

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Abbildung von Tabellenzeilenauf <row>-XML-Elemente

SQL/XML 11/19Abbildung von SQL-Tabellenzeilen

<MITARBEITER><row>

<Name>Joe</Name><Gehalt>2000</Gehalt>

</row><row>

<Name>Jim</Name><Gehalt>3500</Gehalt>

</row></MITARBEITER>

JoeJim

20003500

Name GehaltMitarbeiter

Page 117: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-116

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

SQL/XML 12/19XML-Funktionen

XMLGENgeneriert ein XML-Dokument mittels einer Anfrage in XQuery

XMLELEMENTerzeugt ein XML-Element aus einer WertelisteXMLATTRIBUTES erzeugt XML-Attribute

XMLFORESTerzeugt aus beliebigen Werten einen Wald von XML-Elementen

XMLCONCATkonkateniert mehrere XML-Elemente zu einem Wald

XMLAGGaggregriert die XML-Elemente einer Gruppe

Page 118: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-117

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

SQL/XML 13/19XMLGEN

erzeugt einen XML-Wert aus einer Anfrage gemäss XQuery 1.0Beispiel:

XMLGEN(<XQuery-Konstruktor>[, <XMLGEN-Variable> ...] )

<XMLGEN-Variable> := <Wertausdruck>[AS <Variablenname>]

Joe

Jim

2000

3500

Name GehaltMitarbeiter SELECT XMLGEN('<Mitarbeiter Name="{$Name}"> <Gehalt>{12*$Gehalt}</Gehalt>

</Mitarbeiter>') AS AngestellteFROM Mitarbeiter;

<Mitarbeiter Name="Joe"><Gehalt>24000</Gehalt>

</Mitarbeiter>

<Mitarbeiter Name="Jim"><Gehalt>42000</Gehalt>

</Mitarbeiter>

AngestellteXMLGEN ermöglicht XML-Sichten auf SQL-Daten

Page 119: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-118

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

872 <Autoren>JackJim Beam</Autoren>234 <Autoren>Johnny Walker</Autoren>123 <Autoren>Jim Beam</Autoren>ID Autorennamen

SQL/XML 14/19XMLGEN

CREATE TABLE Berichte (ID INTEGER, Inhalt XML);

SELECT ID, XMLGEN('FOR $a IN $Inhalt//AutorRETURN <Autoren>{$a/data()}</Autoren>') AS Autorennamen

FROM Berichte;

XMLGEN ermöglicht XML-Sichten auf XML-Werten

872 <Bericht> <Titel>Great Single Malts</Titel> ... <Autor>Jack</Autor> <Autor>Jim Beam</Autor> <Datum>21.11.2002</Datum> </Bericht>

234 <Bericht><Autor>Johnny Walker</Autor><Datum>14.11.2002</Datum> <Titel>Whisky, Walking and Talking</Titel> ... </Bericht>

123 <Bericht> ... <Autor>Jim Beam</Autor> <Titel>Beam Dir einen Whisky</Titel> ... <Datum>16.11.2001</Datum> </Bericht>

IDBerichte Inhalt

Page 120: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-119

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

SQL/XML 15/19XMLELEMENT

erzeugt ein XML-ElementBeispiel:

XMLELEMENT(NAME <Elementname>[, XMLATTRIBUTES(<XML-Attributliste>)] [, <Wertausdrucksliste>])

<XML-Attribut> := <Wertausdruck> [AS <Attributname>]

Joe

Jim

2000

3500

Name GehaltMitarbeiter SELECT XMLELEMENT(NAME "Mitarbeiter", XMLATTRIBUTES(Gehalt), Name) AS Element

FROM Mitarbeiter;

<Mitarbeiter GEHALT="2000">Joe</Mitarbeiter>

<Mitarbeiter GEHALT="3500">Jim</Mitarbeiter>

Element

Umbenennung des Attributnamens

Elementinhalt

Page 121: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-120

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

<NAME>Joe</NAME><Einkommen> <Euro>24000</Euro> </Einkommen>

<NAME>Jim</NAME>< Einkommen> <Euro>42000</Euro> </Einkommen>

Mitarbeitergehalt

SQL/XML 16/19XMLFOREST

erzeugt einen Wald von XML-Elementen mit optionalen AttributenBeispiel:

XMLFOREST(<XML-Forest-Elementliste>)

<XML-Forest-Element>:=<Wertausdruck> [AS <Elementname>]

Joe

Jim

2000

3500

Name GehaltMitarbeiter SELECT XMLFOREST(Name, XMLELEMENT(NAME "Euro", 12*Gehalt)

AS Einkommen) AS MitarbeitergehaltFROM Mitarbeiter;

Page 122: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-121

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

<Name>Joe</Name><Euro>24000</Euro>

<Name>Jim</Name><Euro>42000</Euro>

Mitarbeitergehalt

SQL/XML 17/19XMLCONCAT

konkateniert XML-Elemente zu einem WaldBeispiel:

XMLCONCAT(<XML-Wertausdrucksliste>)

SELECT XMLCONCAT(XMLELEMENT(NAME "Name", Name), XMLELEMENT(NAME "Euro", 12*Gehalt))

AS MitarbeitergehaltFROM Mitarbeiter;

Joe

Jim

2000

3500

Name GehaltMitarbeiter

Page 123: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-122

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

SQL/XML 18/19XMLAGG

aggregiert die XML-Elemente einer GruppeBeispiel:

XMLAGG(<XML-Wertausdruck>[ORDER BY, <Sortierausdrucksliste>] )

Joe

Jim

2000

3500

Name GehaltMitarbeiter

Jim 5000

<Gehalt>2000</Gehalt>

<Gehalt>3500</Gehalt><Gehalt>5000</Gehalt>

Joe

Jim

Name Einkommen

SELECT Name, XMLAGG(XMLELEMENT(NAME "Gehalt",

Gehalt))AS Einkommen

FROM MitarbeiterGROUP BY Name;

Page 124: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-123

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

SQL/XML 19/19 Zusammenfassung

SQL/XML-Normierung ist noch nicht abgeschlossenin der Diskussion sind unter anderem

Funktionen zum Erzeugen von SQL-Daten aus XML-DokumentenUpdates auf XML-DokumentenVolltextsuche auf XML-Dokumenten

Aktuelle DBMS-Produkte bieten Unterstützung für XML-Verarbeitung

sind jedoch noch lange nicht ausgereiftenthalten unnötig viel Redandanzsind heterogen umgesetzt

Page 125: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

❑ reified in DB

❑ multiple at DB-side❑ multiple at XML-side

❑ loose

Forschungsprototyp X-Ray 1/9Design Alternativen

Coupling with Schemata

❑ tight

❑ hard-coded❑ reified in file

Representation of Mapping Knowledge

Mapping Cardinality

Mapping Transparency /Ease of Maintenance

Schema Autonomy

Multiple Schemata

Existing Schemata

Unified Approach

Access Homogeneity

DB SchemaTransparency

❑ Storage❑ Publishing

AccessCapability

❑ DB schema❑ XML schema❑ Mapping Knowledge

Access Target

❑ DB-centric❑ XML-centric❑ Others

AccessLanguage

Kind of Schemata❑ derived approach❑ user-defined

approach

Access

Mapping

XML & Datenbanken

Quelle: G. Kappel, E. Kapsammer, W. Retschitzegger, Integrating XML and Relational Database Systems, World Wide Web Journal (WWWJ), Kluwer Academic Publishers, Vol. 7(4), December 2004.

Page 126: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-125

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

MappingKnowledge

Editor

Domain DB

......

......

........................

XML Doc.<a>

<b>...</b><c d=.../>

</a>

XML Documents

......

......

......

DTD

Forschungsprototyp X-Ray 2/9Architecture

Meta Schema Repository

Mapping Knowledge

SQL Query

Decomposer

XML Query➂

Result

Composer

......

......

......

DTD..................

......

......

......XML Doc.<a>

<b>...</b><c d=.../>

</a>

XML Documents

Page 127: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-126

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Forschungsprototyp X-Ray 3/9Meta Schema: Big Picture

XML DTD DB Schema

XML DB Schema Mapping

* *

Page 128: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-127

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Forschungsprototyp X-Ray 4/9Meta Schema: DB Schema

DBSchema

DBRelation

DBConcept

1..*1

1

DBJoinSegment

DBJoinPath

11

* *

*1..*

DBRelationship

11

**

DBAttribute

1 1..*

1..*

Page 129: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-128

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Forschungsprototyp X-Ray 5/9Meta Schema: XML DTD - XMLMain

XMLCompositeET

*1

XMLAtomicET XMLEmptyET

XMLAttribute XMLAttValEnum

*XMLCompositeETElemContent

CompositionStructure::XMLContentParticle

1..*

1

1

0..1

XMLDTD

*

*1

XMLMain

CompositionStructure

<<access>> <<access>>

XMLConcept

XMLElemType

XMLCompositeETMixedContent

Page 130: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-129

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Forschungsprototyp X-Ray 6/9Meta Schema: XML DTD - Composition Structure

**

*

XMLMain::XMLCompositeETElemContent

1..*1

1..*

1

CompositionStructure

XMLMain::XMLElemType

XMLContentParticle

XMLSequence XMLChoicePosition

Page 131: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-130

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Forschungsprototyp X-Ray 7/9Meta Schema: XML DTD - Composition Structure Mapping

0..1

0..1

0..1

0..1

**

0..1 0..1

XML DBSchema Mapping

0..1

0..1

0..1

0..1

0..1

XMLCompositeET

XMLElemType

XMLAtomicET XMLEmptyET

XMLAttribute

XMLCompositeETElemContent

XML DTD

XMLCompositeETMixedContent

XMLConcept

* 11

0..1

DB Schema

DBRelation

DBConcept

DBAttribute1..*

1

1..*

1

Page 132: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-131

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Forschungsprototyp X-Ray 8/9Exemplary Meta Knowledge

ET_Rd

:XMLDBSchemaMapping

A_Ad

ET_Ad

ET_Ad

name:XMLAtomicET

pos1:Position

hotel:XMLCompositeET

ElemContent

:XMLSequence

pos2:Position

:XMLDTD

hotelID:XMLAttribute

category:XMLAtomicET

:DBSchema

Accommodation:DBRelation

ID:DBAttribute

Category:DBAttribute

Name:DBAttribute

Page 133: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-132

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Forschungsprototyp X-Ray 9/9Query User Interface

Page 134: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-133

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML in RDBS 1/16

Überblick über mehr als 80 XML Datenbank-Produktehttp://www.rpbourret.com/xml/XMLDatabaseProds.htm

ForschungsprototypenAgora (Inria)DB2XML (FH Wiesbaden)GETESS (Uni Rostock)Moa (Uni Twente)Monet (CWI Netherlands)

Kommerzielle ProdukteXML SQL Utility (Oracle) SQL Server 2000 (Microsoft)DB2 XML Extender (IBM)Tamino (Software AG)...

SilkRoute und Stored (AT&T Labs)XML-DBMS (Uni Darmstadt)XPERANTO (IBM Almaden)X-Ray (IFS - Uni Linz)...

Page 135: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-134

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML in RDBS 2/16Überblick

Mapping KnowledgeXML schemaDB schema

Access Target

OthersXML-centricDB-centric

AccessLanguage

StoragePublishingAccess

Capability

Access

multiple at XML-sidemultiple at DB-sideMapping

Capability

loosetightCoupling with

Schemata

reified in DBreified in filehard-coded at initialisation timehard-coded at runtime

Representationof MappingKnowledge

Mapping

user-defined appraochderived approachKind of

SchemataSchemata

Open

XM

LA

nnotatedS

chemata

FOR

XM

LX

ML

View

XS

U

XM

LTypeX

ML

Extender

SQL

Server

Oracle

DB

2XTAB

LES

SilkRoute

MXM

MA

RS

LegoDB

Agora

X-Ray

Commercial SystemsResearch Approaches

Page 136: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-135

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML in RDBS 3/16 Oracle

Abfragen mit demXML SQL Utility

SELECT-Statement aufrelationales oder objekt-relationales SchemaSchema auf XML-Seite: abgeleitet vom Abfrageergebnis auf benutzerdefiniertes DB-SchemaAbbildungs-Regeln

DB Relation Element “ROWSET” (kann umbenannt werden)DB Tupel Element “ROW” (kann umbenannt werden)DB Attribut Sub-Element von “ROW”, Name = Attribut-NameEindeutige Identifizierung von “ROW” Elementen vordefiniertes XML Attribut “NUM” (kein Bezug zum Primär-Schlüssel)Tiefere Schachtelungsebenen nur mit Hilfe von Objekt-Typen

<ROWSET><ROW num="1">

<ACCID>1</ACCID><NAME>Gasthof Post</NAME><VILLAGENAME>Innsbruck</VILLAGENAME><COUNTRY>Austria</COUNTRY>

</ROW></ROWSET>c

Page 137: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-136

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML in RDBS 4/16Oracle

Insert, Update, Delete mit dem XML SQL UtilityXML-Dokument enthält das neue oder zu ändernde ElementWhere-Klausel für Update u. Deletenur einzelne Tabelle kann modifiziert werdenXML-Dokument-Struktur muß der Tabellen-Struktur entsprechensomit ist es nicht unbedingt möglich, ein abgefragtes Dokument wiedereinzufügen...OracleXMLSave sav = new OracleXMLSave(conn, tableName);String [] keyColNames = new String[1];keyColNames[0] = "ID";sav.setKeyColumnList(keyColNames);...sav.updateXML(sav.createUrl("update_doc.xml"));...

Page 138: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-137

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML in RDBS 5/16Microsoft: SQL Server 2000

Abfragen mit der FOR XML-KlauselSELECT-Statement

auf relationales Schemaerweitert um FOR XML-Klausel, um Abbildungsalternativen u. Abbildungsparameter zu definieren

Schema auf XML-Seiteabgeleitet vom Abfrage-Ergebnis (RAW- u. AUTO-Modus der FOR XML Klausel)Benutzerdefiniert (EXPLICIT-Modus der FOR XML Klausel)

SELECT village.name as vName,accommodation.name as accName

FROM village, ... WHERE ... FOR XML AUTO, ELEMENTS;

<village><vName>...</vName>...

</village><village>...</village>

Page 139: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-138

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML in RDBS 6/16Microsoft: SQL Server 2000

AbbildungsregelnRAW-Modus:

• DB Relation zu definierender Element-Name• DB Tupel Element “ROW”• DB Attribut XML Attribut

AUTO-Modus: wie oben, zusätzlich ...• DB Attribut XML Attribut od. Sub-Element • Schachtelung im Fall von gejointen Relationen (Struktur des

zusammen- gesetzten ETs wird durch Attribut-Reihenfolge in derSELECT-Klausel bestimmt)

EXPLICIT-Modus: benutzerdefinierte Abbildung

Page 140: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-139

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML in RDBS 7/16Microsoft: SQL Server 2000

Abfragen gegen XML-View über relationales SchemaXPath-Abfragen auf XDR-SchemaBenutzerdefinierte Abbildung zwischen relationalem u. XDR SchemaXDR Annotations sql:field, sql:relation, sql:relationship

<Schema...><ElementType name="name" sql:field="Name" dt:type="string"/><ElementType name="village">

<AttributeType name="name" dt:type="string"/><attribute type="name" sql:field="VillageName"/>

</ElementType>...<element type="street“sql:relation="Accommodation"

sql:field="Street"><sql:relationship key-relation="Village" key="Name"

foreign-relation="Accommodation"foreign-key= "VillageName"/>

</element>...

Page 141: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-140

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Datenmanipulation mit OpenXMLSQL-Statement in einer gespeichertenProzedur (T-SQL stored procedure)erweitert um eine WITH Klauselwird verwendet, um eine relationale View über ein XML-Dokument zu definierenXPath kann verwendet werden,um die Teile im XML-Dokumentzu adressieren, die inder DB aktualisiertwerden sollen

XML in RDBS 8/16Microsoft: SQL Server 2000

Parse

sp_xml_preparedocument

XML

XML DOM

……shred

OpenXML …

PhoneID name

insert into …SQL Server

Page 142: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-141

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

WITH-Klausel

XML in RDBS 9/16Microsoft: SQL Server 2000

...INSERT INTO AccommodationSELECT * FROM OPENXML (@idoc, '/accommodations/accommodation',3)

WITH (AcID int '@id',Name varchar(40) './name',Kind varchar(5) '@kind',Street varchar(40) './address/street',VillageName varchar(40) './address/village/@name',AcceptsCreditCard char(1),Sauna char(1) './sauna/@available')

...

Page 143: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-142

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML in RDBS 10/16Microsoft: SQL Server 2000

Datenmanipulation mit “UpdateGrams”I/U/D Statements werden in XML formuliertVordefinierte ETs:

“UPDG:BEFORE” Delete“UPDG:AFTER” InsertBeide innerhalb eines “UPDG:SYNC” Update

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram"><updg:sync>

<updg:before><Accommodation Name="Waldschenke" VillageName="Linz" />

</updg:before><updg:after>

<Accommodation VillageName=”Vienna" /> </updg:after>

</updg:sync></ROOT>

Page 144: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-143

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML in RDBS 11/16IBM: DB2 XML Extender

Abfragen und Datenmanipulation mit dem XML-Column und demXML-Collection-Ansatz

XML-ColumnSpeicherung eines XML-Dokuments in einer Spalte einer Tabelle miteinem speziellen XML-UDT (User Defined Type)

XML-CollectionSpeicherung eines XML-Dokuments aufgeteilt auf mehrereTabellen/Spalten

Beide Ansätze verwenden ein XML-Dokument für dieAbbildungsdefinition: DAD (Document Access Definition)

Abbildungswissen reifiziert in DAD

Page 145: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-144

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML in RDBS 12/16IBM: DB2 XML Extender

Abbildungs-AlternativenSchema auf DB-Seite – 2 Alternativen:

• fix mit dem “XML-Column” Ansatz• abgeleitet od. benutzerdefiniert mit dem “XML-Collection”

AnsatzSchema auf XML-Seite – 2 Alternativen:

• abgeleitet od. benutzerdefiniert durch den “XML-Collection” Ansatz

Page 146: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-145

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML in RDBS 13/16IBM: DB2 XML Extender

XML-Collection – 2 Möglichkeiten:SQL mapping:

Abbildungsdefinition durch SELECT-Anweisung und den notwendigenVerbundoperationen auf den TabellenSpalten der Ergebnismenge werden auf Elemente od. Attribute abgebildetUnterstützt nur die Komposition von XML-Dokumenten ausrelationalen Daten

RDB_node mapping:Abbildungsdefinition durch XML-Elemente, die die Abbildung auf Tabellen bzw. Spalten spezifizieren, und durch Definition derTabellenbeziehungenUnterstützt die Komposition und Dekomposition von XML-Dokumenten

Page 147: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-146

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML in RDBS 14/16IBM: DB2 XML Extender

SQL mapping:

...<Xcollection><SQL_stmt>

SELECT a.AcID as ACC_ID, a.NAME as ACC_NAME, ...FROM Accommodation a, ... WHERE a.villagename =...ORDER BY ...

</SQL_stmt><prolog>?xml version="1.0" encoding="UTF-8"?</prolog><doctype>!DOCTYPE acc… SYSTEM "accommodation.dtd"</doctype>

<root_node><element_node name="accommodations">

<element_node name="accommodation"><attribute_node name="id">

<column name="ACC_ID"/></attribute_node>...

<element_node name="name"><text_node><column name="ACC_NAME"/>...

Page 148: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-147

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML in RDBS 15/16IBM: DB2 XML Extender

RDB_node mapping...<Xcollection>...<root_node><element_node name="accommodations"><RDB_node><table name="accommodation" orderBy="AcID" key="id"/><table name="emailaddress" ... key="AccID EMail"/><table name="phone" ... key="AccID Number"/> ...<condition>accommodation.AcID=emailaddress.AccID ANDaccommodation.AcID=phone.AccID...

</condition></RDB_node>

<element_node name="accommodation"><attribute_node name="id"><RDB_node><table name="accommodation"/><column name="AcID" type="integer"/></RDB_node></attribute_node> ...

Page 149: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-148

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

XML in RDBS 16/16IBM: DB2 XML Extender

DatenabfrageInput – 2 Alternativen:

beliebige SQL-Abfrage auf relationales Schema mit UDFsXPath-Abfrage bei der Verwendung von UDFs auf einen XML-UDT beim “XML-Column” Ansatz

Output:String-Repräsenation des XML-Dokuments

DatenmanipulationXML-Column:

UDFs für die Speicherung ganzer XML-DokumenteUDFs für das Ändern von ganzen XML-Dokumenten und Elementen bzw. Attributen

XML-Collection:beliebiges SQL-konformes UPDATE-Statement auf Tabellenund Spalten

update xml_accom_clobset saccom = db2xml.Update(saccom,

'//accommodations/name','Waldpension'))

where id=1;

Page 150: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-149

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Literatur… zu XML GrundlagenBücher

XML in a Nutshell: A Desktop Quick Reference, 3rd EditionElliotte Rusty Harold, W. Scott Means, O'Reilly & Associates, 2005

O’Reilly XML.com: http://www.xml.com

XML 1.1 Bible, Elliotte Rusty Harold, 2nd Edition, John Wiley & Sons, 2004Elliotte Rusty Harold. Cafe con Leche XML News and Resources: http://www.ibiblio.org/xml

KonferenzenXML Europe (XTech Conference Series)

http://www.xmleurope.com

XML Conference & Expositionhttp://www.xmlconference.org

Online RessourcenKommentierter XML-Standard von Tim Bray

http://www.xml.com/axml/testaxml.htm

W3Schoolshttp://www.w3schools.com/xml/

XML & DTD Patternshttp://www.xmlpatterns.com/

Übersicht XML Editorenhttp://www.perfectxml.com/soft.asp?cat=6

Java and XML. Sun Microsystems, Inchttp://java.sun.com/xml/

IBM XML Zonehttp://www.ibm.com/developer/xml/

Microsoft XML Developer Centerhttp://msdn.microsoft.com/xml/default.asp

Page 151: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-150

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Literatur… zu XML und Datenbanken

Überblick über XML und Datenbanken inkl. Produktübersicht:http://www.rpbourret.com/xml/XMLDatabaseProds.htmhttp://www.rpbourret.com/xml/XMLAndDatabases.htm

Linksammlung:http://www.cs.cornell.edu/People/jai/pubs.html#PaperCategory:PublishingRelationalDataAsXML

GI-Arbeitskreis „Web und Datenbanken“: http://dbs.uni-leipzig.de/webdb/

Bücher:XML & Datenbanken: Konzepte, Sprachen und Systeme, Meike Klettke, Holger Meyer, dpunkt, 2002Professional XML Databases, Kevin Williams, Wrox Press Ltd., Jan. 2001Web & Datenbanken: Konzepte, Architekturen, Anwendungen, Erhard Rahm, Gottfried Vossen (Hrsg.), dpunkt, 2003XQuery, Wolfgang Lehner, Harald Schöning, dpunkt, 2004

Page 152: V o r le Modul 6 XML & Datenbanken...Modul 6 XML & Datenbanken V o r le su n g I n f o r m a t i o n ssyst e m e 2 Folien: XML & Datenbanken Werner Retschitzegger, Elisabeth Kapsammer,

M6-151

XML & Datenbanken

© 2006 Arbeitsgruppe Informationssysteme (IFS), Johannes Kepler Universität Linz

Anhang

XML SyntaxQuick Reference