• Keine Ergebnisse gefunden

Verwaltung von XML-Dokumenten

N/A
N/A
Protected

Academic year: 2022

Aktie "Verwaltung von XML-Dokumenten"

Copied!
33
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Verwaltung von XML-Dokumenten

(2)

2

<<

<

Nr

Motivation

XML-Dokumente können für sehr verschiedene Anwendungen eingesetzt werden

Aussehen der Dokumente unterscheidet sich stark

Vielzahl von Methoden zur Speicherung existiert

verschiedene Abfragemethoden

Mehrere Varianten zur Modellierung von XML-

Dokumenten und deren Struktur

(3)

3

<<

<

© Prof. T. Kudraß, HTWK Leipzig

Speichern & Liefern von Dokumenten

Round-Trip-Problem

Gespeicherte Dokumente werden “unverändert“

geliefert

Der ganze Inhalt

Prolog

Kommentare

Processing Instructions

Was heißt “unverändert“

(4)

4

<<

<

Nr

XML-Architektur

<..>

physische Ebene Ebene

Dokument- verarbeitung

Dokumenten Entwurf von XML-

Konzeptueller

</..>

</..>

logische Ebene

<..>

konzeptuelle

</..>

<..>

XML

Datenbanken

(5)

5

<<

<

© Prof. T. Kudraß, HTWK Leipzig

Logische Ebene

logische Ebene

<..>

<..> </..>

</..>

<..> </..>

datenzentriertsemistrukturiertdok-zentriert

Datenmodell

Anfragen/Updates an Inhalt

XML, RDBM, OODBM Daten- und Dokumentmodell Struktur und InhaltAnfragen/Updates an

XML, OEM XQuery, Lorel Dokumentmodell Anfragen/Updates an Struktur und Inhalt XML,SGML

XQuery, XPath, DOM, IR-Anfragen

(6)

6

<<

<

Nr

Realisierung Physische Ebene

Speicherung der XML-Dokumente als Ganzes und Indizierung (textbasiert native)

Volltextindex

Volltext- und Strukturindex

Speicherung der Graphenstruktur (modellbasiertes natives Verfahren)

generische Graphspeicherung

Speicherung der DOM-Informationen

strukturierte Abbildung auf Datenbanken

relationale Datenbanken

objekt-orientierte und objekt-relationale Datenbanken

Einsatz von benutzerdefinierten Mappingverfahren

Ebene physische

(7)

7

<<

<

© Prof. T. Kudraß, HTWK Leipzig

Architektur: physische Ebene

datenzentriertsemistrukturiertdok-zentriert

relationale, objekt-relationale oder objekt-orientierte

generische Speicherung von Graphen oder

DOM-Informationen Dateien

Volltextindex, Strukturindex Struktur auf Werteebene

Struktur auf Schema- und Werteebene

Struktur auf Schemaebene Ebene

physische

(8)

8

<<

<

Nr

Volltextindex und XML-Index

Volltextindex Als Dateien /

Clobs

Speicherung der Dokumentstruktur

Strukturierte Speicherung in Datenbanken

Vollständiges Mapping Benutzer- definiertes

Mapping Abbilden des

DOM-Modells Abbildung der Graphstruktur

Für dokument-zentrierte XML-Dokumente

Für daten-zentrierte XML-Dokumente Für semistrukturierte XML-Dokumente

Speicherung von XML-Dokumenten

(9)

9

<<

<

© Prof. T. Kudraß, HTWK Leipzig

Speicherungsmethoden

(Klassifikation nach Schöning)

inhaltsorientierte Zerlegung

generisch (generelle Abbildungsvorschrift)

definitorisch (Abbildungsvorschriften für einzelen Datenstrukturen)

Beispiel: Oracle (beide Varianten mit/ohne Annotations)

strukturorientierte Zerlegung

Verwendung allgemeiner Datenstrukturen (z.B. DOM / Baumstruktur)

generell anwendbar auch bei unbekanntem Dokumentenschema

opake Speicherung

gesamtes XML-Dokument in einer einzigen Spalte vom Typ VARCHAR oder CLOB

SQL-Zugriff nur noch eingeschränkt möglich (bestenfalls

(10)

10

<<

<

Nr

Grundprinzip der invertierten Liste

1 2 2 1 3 1 A

B

D E C

F 2

1

3

A D F

3

3

C D 3

B

A C D E

2

Bestimmung der Stichworte der Dokumente

Dokumente Stichworte

Invertierte Speicherung:

Speicherung der Stichworte und der zugehörigen Dokumente

Stichworte Dokumente

(11)

11

<<

<

© Prof. T. Kudraß, HTWK Leipzig

Volltext-Index

- bekannte Methode (älter als relationale Datenbanken) - Boolesches Retrieval (AND, OR, NOT)

Verweis

Warnemünde

<adresse>

<plz>18119</plz>

<ort>Warnemünde</ort>

<nummer>12</nummer>

</adresse>

<anreisebeschreibung>

</anreisebeschreibung>

</hotel>

<hotelname>Hotel Hübner</hotelname>

Aus Richtung Rostock kommend ...

<hotel>

Begriff

anreisebeschreibung ort

Rostock hotel

<strasse>Seestraße</strasse>

(12)

12

<<

<

Nr

Eigenschaften des Volltext-Indexes

Schemabeschreibung

nicht erforderlich

Dokumentrekonstruktion

Dokumente bleiben im Original erhalten

Anfragen

Anfragen des Information Retrieval

Weitere Besonderheiten

Volltextfunktionen (vgl. SQL-MM)

keine Auswertung des XML-Markups

Einsatz

für dokumentzentrierte XML-Anwendungen

Produkte

Oracle InterMedia Text, DB2 Text Extender

(13)

13

<<

<

© Prof. T. Kudraß, HTWK Leipzig

Kombinierter

Volltext- und XML-Index

Verweis

Verweis Seestraße

<strasse>Seestraße</strasse>

. . .

Vorgänger

<ort>Warnemünde</ort>

<plz>18119</plz>

Element

<adresse>

<hotelname>Hotel Hübner</hotelname>

Volltext-Index

XML-Index Element

ort

Aus Richtung Rostock kommend fahren Sie auf der

hotel adresse

Stadtautobahn bis nach Warnemünde

strasse

<hotel>

</adresse>

<anreisebeschreibung>

Term

Warnemünde

Rostock

anreise- beschreibung

<anreisebeschreibung>

</hotel>

(14)

14

<<

<

Nr

Volltext- und XML-Indexes

Schemabeschreibung

nicht erforderlich

Dokumentrekonstruktion

Dokumente bleiben im Original erhalten

Anfragen

Anfragen des Information Retrieval

Auswertung des Markup in den Anfragen

XML-Anfragen möglich

Weitere Besonderheiten

Volltextfunktionen (vgl. SQL-MM)

Einsatz

für dokumentzentrierte XML-Anwendungen

auch für semistrukturierte Anwendungen

Produkte

Oracle InterMedia Text, DB2 Text Extender

(15)

15

<<

<

© Prof. T. Kudraß, HTWK Leipzig

Speicherung der Graphstruktur

Element

www...

Müller ort

plz

Value

Type Descendant-of

string string strasse

Warnemünde Seestrasse hotel

string Element

adresse

int 18119

Attribute Type Value

url autor

string Attributes:

Elements:

(16)

16

<<

<

Nr

Speicherung der Graphenstruktur

Schemabeschreibung

Zur Speicherung nicht erforderlich

Dokumentrekonstruktion

Möglich, aber sehr aufwendig

Anfragen

XML-Anfragen möglich

Angepaßte Datenbankanfragen

Weitere Besonderheiten

Anfragen über vielen Elementen/Attributen sind aufwendig

Einsatz

für daten- und dokumentzentrierte, sowie semistrukturierte XML- Anwendungen

Produkte

Algorithmen von Florescu/Kossmann, Bradley u.a.

(17)

17

<<

<

© Prof. T. Kudraß, HTWK Leipzig

Speicherung des DOM / 1

Informationen des Document Object Models werden in Datenbanken

gespeichert

Verwendung

relationaler oder objekt-orientierter Datenbanken oder

Entwicklung eigener Speicherungsstrukturen

Comment

Document DocumentFragment

DocumentType Element

Entity EntityReference

Text

CDataSection

DOMImplementation Node NodeList NamedNodeMap

CharacterData Attr

(18)

18

<<

<

Nr

Speicherung des DOM / 2

Methoden der Klasse Node:

- getChildren() - getFirstChild() - getNextSibling() - getNodeType() - getParentNode() - getPreviousSibling() - hasChildren()

Methoden der Klasse Element:

- getAttributes()

- getElementsByTagName(String) - getTagName()

Methoden der Klasse Attribut:

- getName() - getValue()

NodeID NodeType DocID ParentNode

NodeID ElementID AttributName AttributValue PreviousSibling NextSibling FirstChild

NodeID TagName

(19)

19

<<

<

© Prof. T. Kudraß, HTWK Leipzig

Eigenschaften

der Speicherung von DOM

Schemabeschreibung

Zur Speicherung nicht erforderlich

Dokumentrekonstruktion

Möglich, aber aufwändig

Anfragen

XML-Anfragen möglich

Angepasste Datenbankanfragen

Weitere Besonderheiten

Standardisierte und allgemein akzeptierte Schnittstelle

Einsatz

für daten- und dokumentzentrierte, sowie semistrukturierte XML-Anwendungen

Produkte

(20)

20

<<

<

Nr

auf relationale Datenbanken

-

DTD ist erforderlich

- Anfragen verwenden SQL - Funktionalität - Datentypen

<hotel url="www.hotel-huebner.de">

<hotelname>Hotel Hübner</hotelname>

<adresse>

<ort>Warnemünde</ort>

...

</adresse>

<preise>

<einzelzimmer>198</einzelzimmer>

</preise>

...

</hotel>

<strasse>Seestraße</strasse>

XML-Dokument HotelID Hotelname Adresse Preise

H0001 Hotel Hübner A0001 P0001

AdresseID Ort Strasse ...

A0001 Warnemünde Seestraße

PreiseID Einzelzimmer ...

P0001 198 Hotel:

Preise:

Adresse:

(21)

21

<<

<

© Prof. T. Kudraß, HTWK Leipzig

Abbildung der XML- Struktur

auf objekt-orientierte Datenbanken

-

DTD ist erforderlich

- Anfragen verwenden SQL - Funktionalität - Datentypen

HotelID Hotelname Adresse Preise

Ort Strasse ... einzelzimmer ...

H0001 Hotel Hübner Warnemünde Seestraße 198 Hotel:

XML-Dokument

<hotel url="www.hotel-huebner.de">

<hotelname>Hotel Hübner</hotelname>

<adresse>

<ort>Warnemünde</ort>

...

</adresse>

<preise>

<einzelzimmer>198</einzelzimmer>

</preise>

...

</hotel>

<strasse>Seestraße</strasse>

(22)

22

<<

<

Nr

in Datenbanken

Schemabeschreibung

Zur Speicherung erforderlich

Dokumentrekonstruktion

Nur eingeschränkt möglich (Protokollierung des Abbildungsprozesses)

Anfragen

Datenbankanfragen

XML-Anfragen möglich

Weitere Besonderheiten

Föderationen mit bestehenden Datenbanken möglich

Einsatz

für datenzentrierte XML-Anwendungen

Produkte

Algorithmen: Bourret, Suciu (STORED), Shanmugasundaram u.a.

Oracle XDK (XSU), Bluestone’s XML Suite

(23)

23

<<

<

© Prof. T. Kudraß, HTWK Leipzig

Benutzerdefiniertes Mapping

- Flexible Methode

Hotel Hübner Hotel_URL

Hotelpreise

Name Einzelzimmer

www.hotel- huebner.de

198

Datenbank

<ClassMap>

<ToClassTable>

</ToClassTable>

<Table Name="Hotelpreise"/>

<ElementType Name="hotel"/>

<hotel url="www.hotel-huebner.de">

<hotelname>Hotel Hübner</hotelname>

<adresse>

<ort>Warnemünde</ort>

...

</adresse>

<preise>

<einzelzimmer>198</einzelzimmer>

</preise>...

</hotel>

<strasse>Seestraße</strasse>

<PropertyMap>

<ToColumn>

</ToColumn>

</PropertyMap>

<PropertyMap>

<ToColumn>

</ToColumn>

</PropertyMap>

...

<Attribute Name="url"/>

<Column Name="Hotel_URL"/>

<ElementType Name="hotelname"/>

<Column Name="Name"/>

</Classmap>

XML-Dokument Mapping Vorschrift

(24)

24

<<

<

Nr

benutzerdefiniertem Mapping

Schemabeschreibung

Zur Speicherung erforderlich

Dokumentrekonstruktion

Meist nicht möglich (Voraussetzung: Protokollierung des Abbildungsprozesses, vollständige Abb.)

Anfragen

Datenbankanfragen

XML-Anfragen in Ausnahmefällen möglich

Weitere Besonderheiten

Integration in bestehende Datenbanken möglich

Einsatz

für datenzentrierte XML-Anwendungen

Produkte

DB2 XML Extender, Oracle XDK, Oracle 9iR2

(25)

25

<<

<

© Prof. T. Kudraß, HTWK Leipzig

Hybride Ansätze

Auswahl

unterschiedlicher

Speicherungsmethoden für verschiedene

Dokumentanteile

komfortabel eingerichtetes 4-Sterne Hotel

direkt an der Strandpromenade von Warnemünde mit Blick auf Leuchtturm, Hafeneinfahrt

Sie finden unser elegant und

und Ostsee.

<hotel>

<adresse>

<plz>18119</plz>

<nummer>12</nummer>

<telefon>0381/5434-0</telefon>

</adresse>

<hausbeschreibung> Sie finden unser elegant und

</hotel>

komfortabel eingerichtetes 4-Sterne Hotel

direkt an der Strandpromenade von Warnemünde mit Blick auf Leuchtturm, Hafeneinfahrt

und Ostsee. </hausbeschreibung>

<hotelname>Strand Hotel Hübner</hotelname>

<ort>Warnemünde</ort>

<strasse>Seestraße</strasse>

(26)

26

<<

<

Nr

Beschränkungen der Ansätze (1)

Speicherung als Ganzes

Locking nur auf Dokumentebene möglich

Bearbeitung von Teildokumenten schwieriger

oft nur proprietäre Lösungen implementierbar

Einschränkungen bei Anfragen (z.B. wertbasierte Suche)

Speicherung der Dokumentstruktur (bei Abbildung der Graphstruktur in Relationen):

Anfragesprache: nur SQL

keine adäquaten Anfragekonstrukte

Anfrageformulierung schwierig

Änderungen auf SQL-Ebene können Struktur des Dokuments zerstören

schlechte Performance

Shredding der Relationen ->komplexe Joins

umfangreiche Sperren

(27)

27

<<

<

© Prof. T. Kudraß, HTWK Leipzig

Beschränkungen der Ansätze (2)

strukturierte Speicherung in Datenbanken

Dokumente mit a priori bekanntem Schema, d.h.

geringe Flexibilität bei Schemaänderung

unterschiedliche Schemamächtigkeit

Rekursion?

Mixed Content?

Keine vollständige Abbildung von Dokumenten

Reihenfolgeerhaltung

Prolog, Kommentare, Processing Instructions

strukturorientierte Anfragen schwierig

(28)

28

<<

<

Nr

Realisierung in Oracle

seit Version 8 XML Developer Kit (XDK)

seit Version 9

spezieller Datentyp: X spezieller Datentyp: XMLType MLType

unterstützt inhaltsorientierte und opake Speicherung

seit Version 10

Integration von XQuery

inhaltsorientierte Speicherung

erfordert registriertes Schema bei der Definition der XML- Spalte (Tabelle)

teilweise auch opake Speicherung möglich

Kommentare, PI und Reihenfolgeinformationen in (proprietärem) Systemattribut SYS_XDBPDS

Standardabbildung kann durch Annonationen im XML-Schema geändert werden (xdb:)

(29)

29

<<

<

© Prof. T. Kudraß, HTWK Leipzig

Strukturorientierte Zerlegung

<Auftrag Auftragsnr="12324">

<Auftragsposition><Artikel>124</Artikel>

<Menge>2</Menge>

</Auftragsposition>

<Auftragsposition><Artikel>567</Artikel>

<Menge>4</Menge>

</Auftragsposition>

</Auftrag>

Knotennr Vorgaenger Position Name Wert

1 0 0 Auftrag -

2 1 0 @Auftragsnr 12324

3 1 1 Auftragsposition -

4 3 1 Artikel 124

5 3 2 Menge 2

(30)

30

<<

<

Nr

XML-Schema-Dokument PO.xsd

<complexType name="Auftragstyp">

<sequence>

<element name="Auftragsnr" type="decimal"/>

<element name="Firma">

<simpleType><restriction base="string">

<maxLength value="100"/>

</restriction></simpleType></element>

<element name="Auftragsposition"

maxOccurs="1000">

<complexType><sequence>

<element name="Artikel">

<simpleType><restriction base="string">

<maxLength value="1000"/>

</restriction></simpleType></element>

<element name="Preis" type="float"/>

</sequence></complexType></element>

</sequence></complexType>

<element name="Auftrag" type="Auftragstyp"/>

(31)

31

<<

<

© Prof. T. Kudraß, HTWK Leipzig

Inhaltsorientierte Zerlegung (Beispiel)

CREATE TABLE po_tab OF XMLTYPE XMLSCHEMA

" <Pfad> PO.xsd"

ELEMENT "Auftrag"

VARRAY(Auftragsposition) STORE AS Auftrag_tab;

TYPE "Auftragsposition_T"

(Artikel VARCHAR2(1000), Preis NUMBER);

TYPE "Auftragsposition_COLL" AS

VARRAY(1000) OF "Auftragsposition_T";

TYPE "Auftragstyp_T"

(Auftragsnr NUMBER, Firma VARCHAR2(100),

• Bindung des XML Schema-Dokuments an eine Tabelle

• Interne Erzeugung von Typdefinitionen

(32)

32

<<

<

Nr

Opake Abbildung in Oracle

XML-Dokument mittels Typ XMLType gespeichert

Storage-Option CLOB

Zugriff auf den Inhalt eines Objekts von XMLType über Funktionen:

extract um das Ergebnis eines XPath-Ausdrucks zu erhalten,

getClobVal, getStringVal und getNumVal, um das Ergebnis von extract in einen SQL-Datentyp zu überführen,

extractValue, um das Ergebnis eines XPath-Ausdrucks direkt in einen SQL-Wert umzuwandeln,

existsNode, um zu prüfen, ob ein XPath-Ausdruck ein Ergebnis liefert.

createXML kann aus einer SQL-Zeichenkette ein Wert des Typs XML erzeugt werden (bei inhaltsorientierter Zerlegung wieder auf SQL-Tabellen abgebildet)

(33)

33

<<

<

© Prof. T. Kudraß, HTWK Leipzig

Zugriff auf Objekt vom Typ XMLType (Beispiel)

SELECT extractValue(value(d), '/Beschreibung) "Beschreibung"

FROM Auftrag,

table(xmlSequence(

extract(object_value,

'/Auftrag/Auftragsposition/Artikel'))) d WHERE existsNode(object_value,

Auftrag[Auftragsnr="2803030912"]')=1

entspricht dem XPath-Ausdruck:

/Auftrag[Auftragsnr="2803030912"]/Auftragsposition/

Artikel/Beschreibung

Referenzen

ÄHNLICHE DOKUMENTE

 Ist in die XML-Datei eine XSL-Datei eingebunden, wird diese auch ausgeführt, sodass man das transformierte Dokument sieht. HTTP und Darstellung

• XML-Parser sucht in CDATA lediglich , analysiert den Inhalt aber ansonsten nicht?. • “]]&gt;“ als Inhalt von CDATA nicht

ƒ 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

ƒ 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

Zwei XML Schemata heißen genau dann äquivalent, wenn die Mengen gültiger Dokumente, die von. beiden Schemata beschrieben werden,