• Keine Ergebnisse gefunden

XML in Datenbanksystemen

N/A
N/A
Protected

Academic year: 2022

Aktie "XML in Datenbanksystemen"

Copied!
33
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)
(2)

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)

3

<<

<

Nr

.>

3

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

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

e-Mail

Präsentationen

Verträge

70% der relevanten Geschäftsinformationen in

(5)

5

<<

<

Nr

.>

5

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

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)

7

<<

<

Nr

.>

7

Klassifikation: 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)

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)

9

<<

<

Nr

.>

9

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

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)

11

<<

<

Nr

.>

11

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

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)

13

<<

<

Nr

.>

13

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

14

<<

<

Nr

XML-Architektur

<..>

physische Ebene Ebene

Dokument- verarbeitung

Dokumenten Entwurf von XML-

Konzeptueller

</..>

</..>

logische Ebene

<..>

konzeptuelle

</..>

<..>

XML

Datenbanken

(15)

15

<<

<

Nr

.>

15

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

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)

17

<<

<

Nr

.>

17

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

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)

19

<<

<

Nr

.>

19

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

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)

21

<<

<

Nr

.>

21

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

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)

23

<<

<

Nr

.>

23

Anfragetypen: 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)

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)

25

<<

<

Nr

.>

25

Anfragetypen: 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)

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)

27

<<

<

Nr

.>

27

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

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)

29

<<

<

Nr

.>

29

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

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)

31

<<

<

Nr

.>

31

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

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)

33

<<

<

Nr

.>

33

Anfragesprachen 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

XQuery 1.0 W3C Recommendation 23.01.2007

Referenzen

ÄHNLICHE DOKUMENTE

ƒ Beachte: Von Browsern wird White Space allerdings nicht angezeigt:.

alle Zeichen erlaubt, die nicht ausdrücklich verboten.

ƒ Für jedes Element kann ein Namensraum als Standard (default) festgelegt werden,

XSLT: nicht unbedingt nötig, da Transformation auf eigenem Server durchgeführt wird. XSLT: nicht unbedingt nötig, da Transformation auf eigenem Server

ƒ Für jedes Element kann ein Namensraum als Standard (engl. default) festgelegt werden,

ƒ Eine Ortsangabe besteht aus dem Breitengrad, dem Längengrad und einem Maß für die Unsicherheit der beiden Angaben. ƒ Ein Breitengrad ist eine Dezimalzahl zwischen -90

Wer hat die Kontrolle über das Parsen, die Anwendung oder der Parser?.. ƒ Einschritt- vs. multi-

ƒ Beachte: Sowohl für xlink:actuate als auch für xlink:show können eigene Werte definiert werden... Klaus Schild, ©