2
<<
<
Nr
Warum wird XML eingesetzt?
Antworten von Unternehmen:
erweiterte Suchmöglichkeiten im Unternehmen
ermöglicht neue Operationen auf Daten
verkürzt Anwendungsentwicklungszeit
erlaubt Konvertierung von EDI-Daten in besser handhabbares Format
verbindet viele Anwendungen im Unternehmen
verbindet Anwendungen mit denen von Zulieferern und Geschäftspartnern
Teilnahme an E-Commerce / B2B, der auf XML
basiert
3
<<
<
Nr
.>
3Vorteile von XML
XML ist plattformunabhängig (vgl. Java)
XML ist sprachunabhängig
XML verursacht keine Lizenzkosten, viele kostenlose XML-Tools
XML basiert auf Unicode: jedes Zeichen jeder Schrift darstellbar (voraussetzung für Internationalisierung)
XML ist per Definition erweiterbar.
XML durchgängig über alle Anwendungebenen hinweg verwendbar (Datenhaltung, Anwendungslogik,
Präsentation) – vgl. „klassische“ Realisierung solcher
Anwendungen mit relationalen Datenbanken
4
<<
<
Nr
Textorientierte Dokumente
„Lesbare Dokumente“ (document centric)
– textorientiert (document = Text)
– sind selten genau gleich strukturiert
– Reihenfolge ist wichtig
– sinntragende Daten auf allen Ebenen, viel Mixed Content
– Volltextsuche ist unabdingbar, aber nicht ausreichend
– manuell erstellt oder aus anderem Format konvertiert
– Beispiele
Zeitschriftenbeiträge, Bücher
Gebrauchsanweisungen, Handbücher
Präsentationen
Verträge
– 70% der relevanten Geschäftsinformationen in
5
<<
<
Nr
.>
5Datenorientierte XML-Dokumente
Datenzentrierte Dokumente
– wie Daten im herkömmlichen Sinn (z.B. in relationalen Datenbanken)
– XML-Sicht auf stark strukturierte Daten
– Reihenfolge ist oft nicht relevant
– sind einheitlich und meist einfach strukturiert
– haben Datentypen
– sinntragende Daten in Blattelementen oder Attributen
– Mixed Content ist die Ausnahme (oder Dekoration)
– Beispiele:
Telefonbücher
wissenschaftliche Daten
Fahrpläne, Flugpläne
Bestellungen
6
<<
<
Nr
Daten und Dokumente
Semistrukturierte Daten
– Strukturiert: Felder
– Unstrukturiert: binäre Daten wie Text, Video- und Audio-Streams, Bilder (in XML: External Entities, CDATA Sections)
– unregelmäßiges Auftreten von Hyperlinks
– ggf. fehlendes Schema
Mangel an Struktur
– Mischform aus datenzentriert und dokumentenzentriert
– Struktur implizit oder verborgen
– Integration von Daten aus heterogenen Quellen (hierfür strukturiertes Modell oft zu restriktiv)
– Bestimmte Anfragetypen ignorieren Schema bewußt (z.B.
Zeichenkettensuche über gesamte Datenbank hinweg)
Beispiel Krankenakten:
– Krankenakten
Daten: Geburtsdatum, Adresse, Körpertemperatur-Messreihen …
binäre Daten: Röntgenbilder
7
<<
<
Nr
.>
7Klassifikation: Beispiel
Datenorientierte Dokumente
(strukturiert, regulär
Beispiele: Produktkataloge, Bestellungen, Rechnungen)
Textorientierte Dokumente
(unstrukturiert, irregulär
Beispiele: wissenschaftliche Artikel, Bücher, E-Mails, Webseiten)
Semistrukturierte Dokumente
(datenorientierte und textorientierte Anteile
Beispiele: Veröffentlichungen, Amazon)
<order>
<customer>Meyer</customer>
<position>
<isbn>1-234-56789-0</isbn>
<number>2</number>
<price currency=„Euro“>30.00</price>
</position>
</order>
<content>
XML builds on the principles of two existing languages, <emph>HTML</emph> and
<emph>SGML</emph> to create a simple mechanism ..
The generalized markup concept ..
</content>
<book>
<author>Neil Bradley</author>
<title>XML companion</title>
<isbn>1-234-56789-0</isbn>
<content>
XML builds on the principles of two existing languages, <emph>HTML</emph> and ..
</content>
</book>
8
<<
<
Nr
Einsatz von XML
Publishing und Content Management
Elektronischer Handel (E-Commerce)
Workflow und integrierte Geschäftsprozesse
– Prozessbeschreibungen (BPEL)
– Ablaufdaten / Logs
XML und Metadaten
– RDF (Resource Decription Framework)
XML und Multimedia
– XHTML, SMIL, MPEG-7
Gesundheitswesen
– HL7
Komplex strukturierte Daten
z.B. Chemical Markup Language (CML)
9
<<
<
Nr
.>
9Publishing und Content Management
XSLT-Prozessor
<?xml version=“1.0“>
<xsl:stylesheet version=“1.0“
xmlns:xsl=“http://www
<xsl:template match=„/“>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match=“P
<xsl:apply-templates…
<?xml version=“1.0“>
<Produkt name=“…
<Beschreibung>
Dieses Produkt stellt eine absolute Weltneuheit dar und ist in seiner funktionalen Gestaltung erstaunlich
<?xml version=“1.0“>
<xsl:stylesheet version=“1.0“
xmlns:xsl=“http://www
<xsl:template match=„/“>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match=“P
<xsl:apply-templates…
<?xml version=“1.0“>
<xsl:stylesheet version=“1.0“
xmlns:xsl=“http://www
<xsl:template match=„/“>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match=“P
<xsl:apply-templates…
<?xml version=“1.0“>
<Produkt name=“…
<Beschreibung>
Dieses Produkt stellt eine absolute Weltneuheit dar und ist in seiner funktionalen Gestaltung erstaunlich
<?xml version=“1.0“>
<Produkt name=“…
<Beschreibung>
Dieses Produkt stellt eine absolute Weltneuheit dar und ist in seiner funktionalen Gestaltung erstaunlich
Braille WAP
Internet
10
<<
<
Nr
Elektronischer Handel (E-Commerce)
B2B (business to business)
– zwischen zwei Unternehmen
– Kommunikation entlang einer Zuliefererkette (supply chain)
– Einsatzbereich für EDI (electronic data interchange)
– XML/EDI-Aktivitäten: Vokabulare, Repositories, Frameworks (z.B. ebXML)
B2C (business to consumer)
– zwischen Unternehmen und Vebraucher
– Verkauf über Internet / elektron. Bestellannahme
B2G (business to government)
– zwischen Unternehmen und öffentlicher Verwaltung
G2C (government to citizen)
– zwischen öffentlicher Verwaltung und Bürgern
– kein Handel, sondern administrative Vorgänge (Steuererklärung, Anträge etc.)
11
<<
<
Nr
.>
11Warum XML in Datenbanken
XML als Austauschformat
– XML-Dokumente enthalten geschäftsrelevante Daten (z.B. in Zuliefererketten)
– Aufbewahrung der Dokumente so wie bei Eingang (d.h.
Originaldokument unverändert lassen!)
Rechtsrahmen: Grundsätze zum Zugriff und zur Prüfbarkeit digitaler Unterlagen (GDPdU) seit 1.1.2002
– Umwandlung in ein anderes Format
Umwandlung in anderes Format grundsätzlich möglich, aber fehlerträchtig
nicht notwendig, wenn Funktionalität im Umgang mit XML- Dokumenten der von Datenbanken entspricht
– Speicherung der XML-Daten auf der Strecke zwischen den Austauschpartnern (persistent message queuing)
Nur die Speicherung in Datenbanken garantiert
– mächtige und effiziente Suchfunktionen
– transaktionsorientierte Speicherung
– Mehrbenutzerbetrieb
12
<<
<
Nr
Warum XML in Datenbanken (2)
XML-basierte Anwendungen
– XML als internes Datenhaltungsformat:
Konfigurationsdateien, Anwendungsdaten, Stylesheets Bedarf für adäquate Speicherung
Dokumentenverwaltung
– für XML-Dokumente spezialisierte Systeme
– benötigen XML-spezifische Datenhaltung
– Basisfunktionalität (z.B. Textsuche) sollte im DBS enthalten sein
Beispiele für Anwendungen
– Portale für Unternehmensinformationen
– Produktkataloge
– Patienteninformationsverwaltung
– B2B Dokumentenaustausch
13
<<
<
Nr
.>
13Grundmodelle von XML-Datenbanken
monolithischer Ansatz
– gesamte DB einziges großes XML-Dokument
– Verwaltung einzelner XML-Doumente problematisch (Prolog, DTD, Metadaten, Referenzen)
fragmentorientierter Ansatz
– Daten in der DB (aus XML-Sicht) nicht miteinander verknüpft
– bei Koexistenz von relationaler und XML-Sicht
– aufwendige Rekonstruktion, Gefahr des Informationsverlustes (Prolog,DTD,Kommentare,PI)
dokumentenorientierter Ansatz
– DB = Menge von XML-Dokumenten
– (typbezogene) Gruppierung von Dokumenten (mit gleicher schematischer Beschreibung) – analog zu Tabelle
– benutzerspezifische Sammlung von Dokumenten (collections)
14
<<
<
Nr
XML-Architektur
<..>
physische Ebene Ebene
Dokument- verarbeitung
Dokumenten Entwurf von XML-
Konzeptueller
</..>
</..>
logische Ebene
<..>
konzeptuelle
</..>
<..>
XML
Datenbanken
15
<<
<
Nr
.>
15Datenbankspezifische Anforderungen
Effizienz (Performance)
–
Indizierung (B* Baum nicht ausreichend)
–
Anfrageoptimierung
–
Caching
Mehrbenutzerbetrieb
Skalierbarkeit
–
Wachstum von Daten und Benutzern
–
XML-spezifisch: Dokumentgröße, tiefere Struktur
Transaktionskonzept (ACID)
–
Sperrgranulat?
16
<<
<
Nr
Datenbankspezifische Anforderungen (2)
Speicherungsstrukturunabhängigkeit
– Optimierer sollte über Speicherungsstruktur entscheiden
– vgl. SQL: Anfrage bleibt, auch wenn Indexe hinzukommen
Sicherheit
– abhängig von Grundmodell des XML-Datenbanksystems
– Mögliche Definition von Zugriffsregeln
auf Dokumenttypebene
auf Basis von Knotentypen
prädikatbasiert
Verfügbarkeit
Erweiterbarkeit
– Definition von eigenen Datentypen und Methoden (vgl.
objektrelationale Datenbanken)
– auch: Definition eigener Zugriffsstrukturen
– Erweiterbarkeit durch Unterstützung von XML Schema gegeben
– prozedurale Erweiterbarkeit erweitert Anfragesprache
17
<<
<
Nr
.>
17XML-spezifische Anforderungen (1)
Standardkonformität
–
XML 1.0
–
XML Schema, XML Namespaces
–
XQuery 1.0
Dokumentenbehandlung
–
Verwaltung vollständiger XML-Dokumente (einschließlich Prolog, DTD)
–
gespeicherte Dokumente vollständig und
unverändert zurückgeben Originaltreue der Dokumente (Round-Trip-Problem)
–
Was heißt „unverändert“?
–
auch Behandlung von Metadaten
18
<<
<
Nr
XML-spezifische Anforderungen (2)
Schema-Unabhängigkeit
–
schematische Beschreibung nicht zwingend erforderlich
–
Speicherung beliebiger wohlgeformter XML- Dokumente auch bei unbekanntem Schema
Strukturunabhängigkeit
–
rekursive Typdefinitionen mit beliebig tiefen (aber endlichen) Elementverschachtelungen in
Dokumenten verarbeitbar
–
Speicherung von XML-Dokumenten jeden Typs
(daten- oder textorientiert)
19
<<
<
Nr
.>
19XML-spezifische Anforderungen (3)
Schemavorgabe und Validierung
–
bei vorhandenem Schema Validierung der Dokumente beim Speichern
Web-Anbindung
–
Referenzierung von Dokumenten über HTTP analog zu Dateien
–
Unterstützung einer URL-Adressierung (HTTP-
Methode GET mit Parametern) Einbettung von Datenbankzugriffen
Kodierung und Internationalisierung
–
UTF-8 und UTF-16
XML-spezifische Schnittstelle
20
<<
<
Nr
XML-spezifische Anforderungen (4)
Unveränderte Rückgabe (Originaltreue) Was heißt „unverändert“?
Vergleich in kanonischer Form (bei gleicher Kodierung)
–
Kommentare und PI bleiben erhalten
–
Elemente bleiben Elemente, Attribute bleiben Attribute
–
Namen und Namensräume bleiben erhalten
–
Reihenfolge der Geschwisterelement bleibt erhalten
–
DTD und Prolog bleiben erhalten
Entity-Referenzen werden aufgelöst
21
<<
<
Nr
.>
21XML-spezifische Anforderungen (5)
Offenes Inhaltsmodell
– Anwendung: einseitige Erweiterung eines gemeinsamen Datenformat durch Teilnehmer an einem Datenaustausch
– Schemadefinition nur teilweise validieren
– Wildcards in XML Schema: any, anyattribute
Schema-Evolution
– Schemaänderungen ohne Einfluß auf Daten
– Wahrung der Konsistenz (Verschärfung von Constraints problematisch)
Speicherung von Nicht-XML-Daten
– Referenzen auf unparsed entities
– Beispiel: Bilder im GIF-Format
Anbindung anderer Datenquellen
22
<<
<
Nr
Anfragetypen
objektrelationale Systeme: werteorientierte und textorientierte Anfragen
XML: komplexere Strukturen als Relationenmodell
→neue Anfragetypen
–
werteorientierte Anfragen
–
textorientierte Anfragen
–
strukturorientierte Anfragen
–
verweisorientierte Anfragen
–
schemaorientierte Anfragen
–
namensraumorientierte Anfragen
–
metadatenorientierte Anfragen
–
kombinierte Anfragen
23
<<
<
Nr
.>
23Anfragetypen: Werteorientiert
Wert eines Elements = Inhalt, reduziert auf alle Nicht-Element-Daten aller Ebenen
@attribute < 5
–
<element attribute=“4“/>
element < 7.1
–
<element>6.1</element>
element = “Hugo“
–
<element>Hugo</element>
–
<element><subelement>
Hugo
</subelement></element>
–
<element><B>H</B>ugo</element>
24
<<
<
Nr
Anfragetypen: Textorientiert
textorientierte Prädikate, zumeist auf Elementen
orientiert an Textstruktur (Wort, Satz, Abschnitt)
keine exakte Übereinstimmung gefordert (Akzente, Groß/Kleinschreibung)
Ziel: möglichst viele relevante Dokumente finden mit geringem Anteil nicht-relevanter Dokumente (Recall vs.
Precision)
Beispiele:
– documents containing “XML“
– documents containing “XML“ OR “HTML“ but not “SGML“
– documents containing “XML“ within two words of “database“
– documents with word similar to “XML“ (ranking)
– Wort, das mit dem Teilwort “bank“ aufhört, ist im Wert eines Elements enthalten
25
<<
<
Nr
.>
25Anfragetypen: Strukturorientiert
sinnvoll bei nicht beschränktem Schema
siehe XPath Query Language
//Buch bzw. /[//Buch]
alle Buch-Elemente bzw. Dokumente, in denen ein Element “Buch“ vorkommt
//Buch/@ISBN bzw. /[//Buch/@ISBN]
der Wert des Attributs ISBN von Buch bzw.
Dokumente, in denen ein Element “Buch“ ein Attribut
“ISBN“ hat
/Buch/@*
/Buch/Titel
/Buch/Autor[1]
/Buch/*[1]
Im Dokument kommt ein Buch-Element vor, das mehr
als zwei Autor-Kindelemente hat.
26
<<
<
Nr
Weitere Anfragetypen (1)
Verweisorientierte Anfragen
– verschiedene Verweismechanismen: IDREF, XLink, externes Entity
– Verweise in Anfragen referenzieren
– Beispiele:
Welche Dokumente zeigen auf eine bestimmte Stelle?
Welche anderen Dokumente werden aus einem Dokument referenziert?
Schemaorientierte Anfragen
– Vergleich von Dokumenten gegen ihre schematische Beschreibung
– Beispiele:
In welchen Dokumenten sind alle optionalen Attribute mit Werten belegt?
In welchen Dokumenten enthält eine Zeichenkette genau die Maximalzahl erlaubter Zeichen?
– Analogie zum RDBMS: Anfragen auf Data Dictionary
– XML Schema ist selbst auch XML
27
<<
<
Nr
.>
27Weitere Anfragetypen
Namensraumorientierte Anfragen
– Suche nach Dokumenten, die Elemente oder Attribute eines bestimmten Namensraums enthalten
– Beispiele:
Welche Dokumente enthalten Stylesheet-Anteile, also Element des XSL-Namensraums http://www.w3.org/1999/XSL/Transform
Welche Dokumente enthalten Elemente aus mehr als einem Namensraum?
Metadatenorientiert
– Dokumente, die seit dem 1.1.2002 geändert wurden
– Dokumente, die von Matthias Conrad gespeichert wurden
Kombinationen daraus
– Beispiel: werteorientiert + strukturorientiert + textorientiert:
//Buch[Preis < 50 AND Titel CONTAINS “XML“]
28
<<
<
Nr
Anfrageergebnisse
Sinnvolle Ergebnisse:
– ein einzelnes Dokument, so wie es gespeichert wurde
– eine Menge von Dokumenten
– ein XML-Fragment (z.B. ein einzelnes Element mit seinen Kindern)
– eine Menge von XML-Fragmenten
– ein Wert (z.B. ein Attributwert, Funktionsergebnis, dynamisch berechnete Summe)
– eine Menge von Werten
– ein Attribut (Name-Wert-Paar)
– eine Menge von Attributen
Wie kann ein wohlgeformtes XML-Dokument geliefert werden?
– DBMS „verpackt“ Ergebnis in einem wohlgeformten XML- Dokument (z.B. durch Definition einer Wurzel)
– Anfrage ist für Gestalt des Ergebnisses verantwortlich
29
<<
<
Nr
.>
29Andere Operationen
Einfügen und Löschen von XML-Dokumenten vergleichbar mit Operationen anderer DBS
mehr Möglichkeiten beim Ändern mit XML:
– Attributwert ändern
– Löschen oder Hinzufügen von Attributen
– textuellen Inhalt eines Elements ändern
– Kindelemente hinzufügen oder entfernen
– Umbenennung von Elementen oder Attributen
Operationen aus anderen Datenbanksystemen
– Cursor-Konzept zur Verwaltung großer Ergebnismengen
– das Laden großer Datenmengen
– Definition und Änderung von Schemata
30
<<
<
Nr
Schemata in XML-Datenbanken
Schemata in Datenbanken
–
Schema beschreibt Struktur der Instanzen
–
Unterscheide Typdefinitionen (statisch) und Integritätsbedingungen (laufzeitdynamisch)
–
Schema auch „Behälter“ für Mengen von Instanzen (z.B. Tabelle in RDB) → Definition physischer
Eigenschaften (Speicherungsformen, Indexe)
Schemata für XML
–
XML: selbstbeschreibende Instanzen (Interpretation ohne Schema möglich)
–
optionale Schemata eher mit Integritätsbedingungen
in DBMS vergleichbar (Validieren beim Parsen einer
XML-Instanz)
31
<<
<
Nr
.>
31Schemata in XML-Datenbanken (2)
Aspekte eines Schemas im XML-Datenbanksystem
–
Garantieaspekt (Instanz validiert gegen dieses Schema)
–
Informationsaspekt (Schema enthält Infos über zu erwartende Instanzen)
–
Modularisierungsaspekt (wiederverwendbare Definitionen)
Schema sollte für eine Menge von Instanzen definiert sein
Validierung gegen dokumentspezifisches Schema
nicht sinnvoll
32
<<
<
Nr
Anfragesprachen - Anforderungen
deklarativ
benutzerfreundliche Formulierung von Anfragen
XML-basierte Syntax zur Darstellung der Anfragestruktur
protokoll-unabhängig (nicht nur HTTP)
integrierte Fehlerbehandlung
auf allen Arten von wohlgeformten XML- Dokumenten (text- oder datenorientiert), schematische Beschreibung optional
Anfragesprache muss geschlossen sein.
Berücksichtigung von Namespaces
33
<<
<
Nr
.>
33Anfragesprachen für XML-Datenbanken
XML Query Working Group (seit 1998)
XML-QL war an Hochschulen sehr populärer Sprachvorschlag
Industrie: 1999 XPath wird W3C-Empfehlung als Adressierungsmechanismus innerhalb von XSLT und zur Verwendung in XPointer – keine XML-Anfragesprache für DBS
Erweiterungen von SQL: SQL/XML