84
Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden, 23.10.2002

Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

Embed Size (px)

Citation preview

Page 1: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

Vergleichende Untersuchungen zur Verwaltung von XML-Dokumenten in Datenbanken

Prof. Dr. Thomas Kudraß

HTWK Leipzig

Datenbanken-Stammtisch

HTW Dresden, 23.10.2002

Page 2: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

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

Page 3: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Daten oder Dokumente (1)

„Lesbare Dokumente“ (dokumentzentriert)– sind selten genau gleich strukturiert– Reihenfolge ist wichtig– sinntragende Daten auf allen Ebenen, viel Mixed Content– Volltextsuche ist unabdingbar, aber nicht ausreichend– Beispiele

Zeitschriftenbeiträge, Bücher Gebrauchsanweisungen, Handbücher e-Mail Präsentationen Verträge

Page 4: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Daten oder Dokumente (2) Datenzentrierte Dokumente

– wie Daten im herkömmlichen Sinn (z.B. in relationalen Datenbanken)

– 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

Page 5: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

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

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:

– Daten: Geburtsdatum, Adresse, etc,– binäre Daten: Röntgenbilder– Dokumente: Diagnose, Anamnese etc.

Page 6: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Klassifikation: Beispiel

Datenzentrierte Dokumente (strukturiert, regulär

Beispiele: Produktkataloge, Bestellungen, Rechnungen)

Dokumentzentrierte Dokumente (unstrukturiert, irregulär

Beispiele: wissenschaftliche Artikel,

Bücher, E-Mails, Webseiten)

Semistrukturierte Dokumente (datenzentrierte und dokumentenzentrierte

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>

Page 7: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Warum XML in Datenbanken XML als SGML-Nachfolger

– entstehende Dokumente müssen gespeichert werden XML als Austauschformat

– Originaldaten werden in XML transformiert Austauschdaten müssen aber ebenfalls gespeichert werden (z.B. beim

Empfänger)

Nur die Speicherung in Datenbanken garantiert– mächtige und effiziente Suchfunktionen– transaktionsorientierte Speicherung– Mehrbenutzerbetrieb

Anwendungen– Dokumentenverwaltung– Website-Management– Information Publishing

Page 8: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

XML-Datenbanksysteme (1)

kann beliebige XML-Dokumente als solche speichern kann XML-spezifische Anfragesprache verarbeiten liefert XML als Ergebnis einer Anfrage

– Dokumente und Extrakte

effiziente struktur-und wertebasierte Anfragen unterstützt Daten- und Dokumentsicht (Mixed Content,

Kommentare etc.) erlaubt eine schematische Beschreibung der

Dokumente (Validierung möglich)

nach [H. Schöning]

Page 9: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

XML-Datenbanksysteme (2)

DB-Eigenschaften (Transaktionen, Skalierbarkeit etc.) standardkonform Sammlung von XML-Dokumenten? Sammlung von XML-Dokumentfragmenten? Unabhängigkeit von der Speicherungsstruktur Indizierung? Validierung Sicherheit Erweiterbarkeit

Page 10: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Speichern und Liefern von Dokumenten

Round-Trip-Eigenschaft– Ausgabe des gespeicherten Dokuments in “unveränderter“ Form

Der ganze Inhalt– Prolog– Kommentare– Processing Instructions

“unverändert“– unveränderte Reihenfolge der Elemente– identisches Aussehen gegenüber Original

Page 11: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Anfragetypen für XML-Dokumente

werteorientiert– Suche nach Attributwerten– Suche nach Elementen

textorientiert– Information Retrieval Operationen: contains, similar

strukturorientiert– vgl. XPATH Query Language

linkorientiert metadatenorientiert kombinierte Anfragen

nach [H. Schöning]

Page 12: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

XPath

Für die Verwendung in XSLT und XPointer entworfen

Beim W3C normiert (W3C Recommendation)http://www.w3.org/TR/xpath.html

Navigation in einem Dokument– Location Path

Achsen zur Navigation child, descendant, parent, ancestor, sibling, following,

preceding, attribute, namespace, self, z.B. descendant::Name/child::Vorname

Kurznotation ist verfügbar: //Name/Vorname

Page 13: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

XPath (Forts.) Filter

– [expression]– Beispiel: //Buch[@ISBN=“3-557-06021-7“ AND Author]

Wildcard– //*[@*=“Hugo“]

Position [pos]– /book/author[1]

kann auf Processing Instructions und Kommentare zugreifen

Weitere Query Languages– XQL: basiert auf XPath, W3C-Proposal– Quilt: Basis für XQuery (zur Zeit diskutierter Sprachvorschlag)– IPSI-QL (erste Implementierung)

Page 14: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

XML-Architektur

<..>

physische

EbeneEbene

Dokument-verarbeitung

DokumentenEntwurf von XML-

Konzeptueller

</..></..>

logische

Ebene

<..>

konzeptuelle

</..><..>XML

Datenbanken

[M. Klettke]

Page 15: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Bedeutung des Dokumentcharakters

XML-Dokumente können die ganze Bandbreite von Daten bis zu Volltextdokumenten ein-nehmen

– dokumentzentriert, semistrukturiert, datenzentriert

dementsprechend unterschiedliche Speiche-rungsverfahren von der Dokumentenverarbeitung bis zur DB-Technologie

weiterhin: Neuentwicklung von Methoden

keine optimale Lösung für alle Anwendungen, Dokumentcharakter spielt entscheidende Rolle!

Page 16: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Architektur: physische Ebene

date

nzen

trie

rtse

mis

truk

turi

ert

dok-

zent

rier

t

relationale, objekt-relationaleoder objekt-orientierteDatenbanken

generische Speicherung von Graphen oderDOM-Informationen

Dateien Volltextindex, Strukturindex

Struktur auf Werteebene

Struktur auf Schema-und Werteebene

Struktur auf Schemaebene

Ebenephysische

Page 17: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

XML in Datenbanken - Optionen zur Realisierung

Relational– inhaltsorientiert zerlegt

generisch definitorisch

– strukturorientiert zerlegt– opaque Ansatz (Large Objects)

Objektorientiert (Objektrelational)– benutzerdefinierte Objekte– vordefinierte Objekte, basierend auf Large Objects (CLOBS)

“native“ XML-DBMS– Oracle-Konkurrenzprodukte (z.B. Tamino)

Klassifizierung nach dem Ziel-Datenmodell

nach [H. Schöning]

Page 18: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Volltextindex und XML-Index

Volltextindex

Als Dateien / Clobs

Speicherung derDokumentstruktur

StrukturierteSpeicherung

in Datenbanken

VollständigesMapping

Benutzer-definiertesMapping

Abbilden des DOM-Modells

Abbildung derGraphstruktur

Für dokument-zentrierte XML-Dokumente

Für daten-zentrierte XML-Dokumente

Für semistrukturierte XML-Dokumente

Speicherung von XML-Dokumenten

[M. Klettke ]

Page 19: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Oracle XML Infrastruktur - Basis für verschiedene Speicherungsformen

interMedia

PL/SQL XMLPackages

Java Applikationen

Java XML SQL Utility

Java XML Parser

JDBC Driver

Jserver Runtime

URIsXML Type Object Types LOBs

Tabellen

Page 20: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

CLOB-Ansatz (Opaque Ansatz) Merkmale

– XML-Dokument gespeichert als Large Object (LOB) – Dokument bleibt vollständig erhalten

Speicherung

Insert into tblXMLClob values (1,‘person.xml‘,‘ <person> <name>Mary</name></person>‘ );

DocId url content

1 person.xml <person>

<name>Mary</name>

</person>

Page 21: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Kombinierter Volltext- und XML-Index

XML - Struktur kann inAnfragen ausgewertet werden

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>

Page 22: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Oracle interMedia Text Anfragen mit interMedia Text

– Volltext-Retrieval (nur wortorientierte Suche) – Pfadangaben nur in Verbindung mit Wortsuche– keine Bereichsanfragen

Beispiel in interMedia Text:SELECT DocId FROM tblXMLClob WHERE CONTAINS(content,‘(Mary WITHIN name) WITHIN person‘)>0

XML Volltext-Index– Autosectioner Index– XML Sectioner Index– WITHIN operator

text_subquery WITHIN elementname sucht den vollständigen Textinhalt innerhalb der genannten Tags

Page 23: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Beispiel:Arbeit mit interMedia Text (1)

create table ins_claim(id number (7) primary key, when date, doc clob);

Speicherung von XML-Dokumenten einer Versicherungsgesellschaft

Spalte doc ist indiziert mit auto_section_group:

create index doc_ix on ins_claim(doc)indextype is ctxsys.contextparameters (‘section group ctxsys.auto_section_group‘);

Page 24: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Beispiel: Arbeit mit interMedia Text (2)

The insured‘s <VEHICLE>car</VEHICLE>broke through the guard rail and plummeted into a ravine. The cause was determined to be <CAUSE>faulty braked</CAUSE> Amazingly there were no casualties.

Beispiel-Dokument in der Spalte doc:

XML Section <cause> kann abgefragt werden:

select id, whenfrom ins_claimwhere contains (doc,‘brakes within cause‘) > 0;

ID WHEN DOC------- ------ -------1 12-OCT-00 The insured‘s <VEHICLE>car...

Page 25: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Beispiel: Arbeit mit interMedia Text (3)

ctx_ddl.create_section_group(‘my_section‘, ‘XML_SECTION_GROUP‘);

ctx_ddl.add_zone_section(‘my_section‘,‘cause‘,‘Cause‘);...ctx_ddl.add_attr_section(‘my_section‘,‘make‘,‘Make@Vehicle‘);...create index my_doc_ix on ins_claim(doc)indextype is ctxsys.contextparameters(‘section group my_section‘);

Alternative zu vordefiniertem Auto-Sectioner: Definition eines eigenen Sectioners und Verwendung im Index

Mögliche Abfrage ist Suche nach Attributwerten: ... where contains (doc, ‘Audi within Make@Vehicle‘)Findet: <Vehicle Make=“Audi“>

section name tag name

Page 26: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

XPath Anfragen mit PL/SQL

Voraussetzung: XDK für PL/SQL auf Server vorhanden Übersetze CLOB in eine DOM-Darstellung

XPath Anfrage

Ermittle Document IDs

aller CLOBs der XML-Tabelle

Ausführen der XPath Anfrage auf dem DOM-Baum für jedes

CLOB Objekt der Doc IDs

Doc IDs mit Ergebnis XML- Dokument

serverseitig

DB

Doc IDs

Page 27: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Oracle 9i XML Type

• createXML(xml IN varchar2 return XMLType• createXML(xml IN clob) return XMLType• existsNode(xpath IN varchar2) return number• extract(xpath IN varchar2) return XMLType• isFragment() return number // 1 oder 0 • getClobVal() return clob• getStringVal() return varchar2• getNumberVal() return number

Funktionen des Oracle XML Type

in Oracle 9i (Release 1) intern als CLOB realisiert

Page 28: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Nutzung des XML Type

select d.document.extract(‘/Item/desc/text()‘).getStringVal()

from xmldocs d;

Extraktion von Daten aus XML-Dokumenten mittels XML Type Funktionen

select * from xmldocs d where d.document.extract(‘/Item/Qty/text()‘).getNumberVal()=4;

select * from xmldocs dwhere d.document.existsNode(‘//Discount‘)=1;

Insert, Update und Delete auf Spalten vom Typ XMLType erlaubt

Zugriff auf XMLType in der DB in Java möglich mittels Klasse:oracle.xdb.XMLType

Page 29: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Vergleich der Anfragemöglichkeiten

liefert Dokument-IDs Wordsuche (Default) kein Existenztest für Elemente

oder Attribute Pfadausdrücken beschränkt

möglich durch WITHINe.g.: (xml WITHIN title) WITHIN book

erlaubt begrenzt Attribut-wertsuche, keine Verschach-telung von Attributsuchen

numerische und Datumswerte werde nicht konvertiert

keine Bereichsanfragen auf Attributwerten

findet Dokument-Fragmente Substring-Suche Suche nach vorhandenen

Elementen oder Attributen Pfadausdrücke struktur-

orientierte Anfragen //Book/Title/[contains(..‘xml‘)]

Suche nach Attributwerten und Element-Text kann kom-biniert werden

berücksichtigt auch Dezimal-werte

Bereichsanfragen möglich mittels Filter

interMedia Text XPath

Page 30: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

CLOB AnsatzVorteile

Bewahrung der Informationen des Dokuments Behandlung großer Dokumente

– geeignet für dokumentenzentrische Dokumente mit wenig Struktur und textreichen Elementen

Verschiedene XML Document APIs– interMedia Text: eingeschränkte Menge von XPath-

Funktionalität– generiere ein DOM des Dokuments vor Anwendung

von XPath-Queries

Page 31: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

CLOB AnsatzNachteile

Beschränkte Ausdrucksfähigkeit von Text-Anfragen Performance vs. Genauigkeit der Anfrage-Ergebnisse

– interMedia Text Queries auf CLOBs schneller als DOM-API– Beispiel-Dokument: 12.5 MB, Übersetzungszeit 3 Min., Ladezeit 5

Min. Restriktionen der Indexe

– Maximale Länge der Tag-Namen fürs Indexieren (inkl. Namespace): 64 Bytes

Probleme mit Markup– Character Entities: Dekodieren oder nicht?

Stabilität– maximale Dokumentgröße: 50 MB– Speicherfehler bereits bei kleineren Dokumenten möglich

Page 32: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Volltextindex und XML-Index

Volltextindex

Als Dateien / Clobs

Speicherung derDokumentstruktur

StrukturierteSpeicherung

in Datenbanken

VollständigesMapping

Benutzer-definiertesMapping

Abbilden des DOM-Modells

Abbildung derGraphstruktur

Für dokument-zentrierte XML-Dokumente

Für daten-zentrierte XML-Dokumente

Für semistrukturierte XML-Dokumente

Speicherung von XML-Dokumenten

Page 33: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Speicherung der Graphstruktur

generische Speicherung derStruktur des XML-Dokumentes

Element

www...

Müller

ort

plz

ValueType Descendant-of

string

stringstrasse

Warnemünde

Seestrasse

hotel

string

Element

adresse

int 18119

Attribute ValueType

url

autor

string

Attributes:

Elements:

Page 34: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Relationale Strukturorientierte Zerlegung Prinzip

– Speicherung in generischen Tabellen (festes DB-Schema)– Zerlegung eines XML-Dokumentes in kleine Einheiten

(Elemente) und Speichern in der Datenbank (Shredding) Vielzahl von Mapping-Methoden

– Abspeichern der Kanten und Knoten des zum XML-Dokument gehörenden Strukturbaums

– Speichern der Kanten in einer Tabelle Kantenverfahren (Florescu, Kossmann) (Normalisiertes) Universalverfahren Model-based Fragmentation Monet XML-Modell

– Speichern der Kanten in mehreren Tabellen Attributverfahren

Page 35: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Speichermethode [Krumbein]

XML-QL Datenmodell <tree> <person age=’55‘> <name>Peter</name> </person> <person age=’38‘> <name>Mary</name> <address>Fruitdale Ave. </address> </person></tree>

tre e

p e rson p e rso n

nam

e

nam

e a d ress

3 4

Pe te rM a ry 4711

Fruitd a le Ave .

1

2

[a g e = 55] [a g e = 38]

Page 36: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Datenmodell

tblDocs

DocId url

tblEdgeSourceId TargetId LeafId AttrId DocId EdgeName Type Depth

tblLeafs

LeafId Value

tblAttrs

AttrId Value

1

n

1

0/1 0/1

1

Page 37: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Import-Algorithmus

<baum>

<person alter=“36“>

<name>Peter</name>

<adresse>

<strasse>Hauptstrasse4</strasse>

<PLZ>04236</PLZ>

<Ort>Leipzig</Ort>

</adresse>

</person>

</baum>

Source

Id

TargetId

LeafId

AttrId

DocId

EdgeName Type Depth

0 1 -1 -1 1 baum ref 3

1 2 -1 -1 1 person ref 22 3 -1 1 1 alter attr 02 4 1 -1 1 name leaf 0

2 5 -1 -1 1 adresse ref 15 6 2 -1 1 strasse leaf 05 7 3 -1 1 PLZ leaf 0

5 8 4 -1 1 Ort leaf 0

DocId url

1 Beispiel.xml

LeafId Value1 Peter2 Hauptstr

asse 4

3 04236

4 Leipzig

AttrId Value1 36

Page 38: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Anfragemethode

Mit welcher Anfragesprache?– XML-Anfragesprache

auf XML-Dokumente sinnvoll

– Datenmodell ausgehend von XML-QL erstellt

XML-QLAnfrage Parser

Generierung desSQL Statement

Objekt-Struktur

SQLStatement

Row Set

Ausführung desSQL Statement

Konstruktion desErgebnisdokuments

XMLDokument

DB

Datenbank versteht nur SQL– Transformation von XML-QL

nach SQL notwendig– Erzeugen eines Ergebnis-

Dokumentes aus Tupeln

Page 39: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Erzeugen eines SQL-Statements XML-QL Anfrage

CONSTRUCT <result> { WHERE <person> <name>$n</name>

<adresse>$a</adresse> </person>

CONSTRUCT <person>

<name>$n</name> <adresse>$a</adresse> </person>

} </result>

SQL-Statement

SELECT DISTINCT B.Type AS n_Type, B.TargetId AS n_TargetId, B.Depth AS n_Depth, C.Value AS n_Value, D.Type AS a_Type, D.TargetId AS a_TargetId, D.Depth AS a_Depth, E.Value AS a_ValueFROM tblEdge A,tblEdge B,tblLeafs C, tblEdge D,tblLeafs EWHERE (A.EdgeName = ‘person’) AND (A.TargetId = B.SourceId) AND (B.EdgeName = ‘name’) AND (B.LeafId = C.LeafId(+)) AND (A.TargetId = D.SourceId) AND (D.EdgeName = ‘adresse’) AND (D.LeafId = E.LeafId(+))

Page 40: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Konstruktion des Ergebnis-Dokumentes

Ergebnistupel

SELECT A.EdgeName, A.Type, Al.Value AS A_LeafVal, Aa.Value AS A_AttrVal FROM tblEdge A, tblLeafs Al, tblAttrs Aa WHERE A.SourceId=5 AND A.leafId=Al.leafId(+) AND A.attrId=Aa.attrId(+)

n_Type n_TargetId

n_Depth n_Value a_Type a_TargetId

a_Depth a_Value

leaf 4 0 Peter ref 5 1

EdgeName Type A_LeafVal A_AttrVal

strasse leaf Hauptstrasse 4

PLZ leaf 04236Ort leaf Leipzig

• Teilbaum-Rekonstruktion

Page 41: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Anfrageergebnis

XML-Ergebnis-Dokument<result>

<person>

<name>Peter</name>

<adresse>

<strasse>Hauptstrasse 4</strasse>

<PLZ>04236</PLZ>

<Ort>Leipzig</Ort>

</adresse>

</person>  

</result>

Page 42: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Strukturorientierte Zerlegung - Vorteile Herstellerunabhängigkeit

– benutzt keine spezifischen DBMS-Eigenschaften Keine Schemadefinition durch Benutzer notwendig

– hohe Flexibilität bei dynamisch erzeugten XML-Dokumenten– verwendete relationale Strukturen für Benutzer unbrauchbar

(keine Anwendungssemantik) Stabilität Hohe Flexibilität der Anfragen

– Lesen und Ändern einzelner Werte– volle SQL-Funktionalität nutzbar

Gute Eignung für strukturorientierte Anfragen– Strukturen in Tabellen repräsentiert

Page 43: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Strukturorientierte Zerlegung - Nachteile Informationsverlust

– Comments– Processing Instructions– Prolog– CDATA Sections– Entities

Restriktionen des Abbildungsalgorithmus– nur ein Text (Inhalt) pro Element

<element> Text1 <subelement/> Text2 geht verloren

</element>

– Element-Text als VARCHAR(n); n <= 4000

Page 44: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Strukturorientierte Zerlegung - Nachteile (2)

Anfragesprache: nur SQL– keine XML-adäquaten Anfragekonstrukte– Anfrageformulierung schwierig– Änderungen auf SQL-Ebene können Struktur des

Dokuments zerstören Schlechte Performance

– lange Ladezeit Beispiel-Dokument: 3.3. MB, 130.000 Zeilen, 13 Minuten

– komplexe Joins– Sortierung in Anfragen (wegen

Reihenfolgeerhaltung)

Page 45: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Volltextindex und XML-Index

Volltextindex

Als Dateien / Clobs

Speicherung derDokumentstruktur

StrukturierteSpeicherung

in Datenbanken

VollständigesMapping

Benutzer-definiertesMapping

Abbilden des DOM-Modells

Abbildung derGraphstruktur

Für dokument-zentrierte XML-Dokumente

Für daten-zentrierte XML-Dokumente

Für semistrukturierte XML-Dokumente

Speicherung von XML-Dokumenten

Page 46: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© 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

ProcessingInstruction

Document

DocumentFragment

DocumentType

Element

Entity

EntityReference

Notation

Text

CDataSection

DOMImplementation Node NodeList NamedNodeMap

CharacterData

Attr

Page 47: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

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

Page 48: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Speicherung des DOM: Bewertung Vorteile

– benötigt keine Schemabeschreibung – XML-Anfragen möglich– standardisierte und allgemein akzeptierte Schnittstelle– vielfältige Einsatzmöglichkeiten:

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

Nachteile– Dokumentrekonstruktion möglich, aber aufwändig– wenig Produkte auf dem Markt

infonyte (IPSI Darmstadt) eXcelon XIS (POET) ozone (SMB Leipzig)

Page 49: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Volltextindex und XML-Index

Volltextindex

Als Dateien / Clobs

Speicherung derDokumentstruktur

StrukturierteSpeicherung

in Datenbanken

VollständigesMapping

Benutzer-definiertesMapping

Abbilden des DOM-Modells

Abbildung derGraphstruktur

Für dokument-zentrierte XML-Dokumente

Für daten-zentrierte XML-Dokumente

Für semistrukturierte XML-Dokumente

Speicherung von XML-Dokumenten

Page 50: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Strukturierte Speicherung in Datenbanken - Überblick inhaltsorientiert

– Struktur des Dokuments bestimmt DB-Struktur generisch vs. definitorisch

– generisch: vorgefundene Strukturen werden nach einem allgemeingültigen Konzept in XML-Strukturen umgesetzt

gilt analog auch für Generierung einer DTD aus relationalem Schema

– definitorisch: die Abbildung der existierenden Strukturen in XML-Strukturen (und umgekehrt) wird jeweils spezifiziert

relational vs. objektrelational Beispiel (generisch & relational):

– Oracle XML SQL Utility (XSU) für Queries und DML-Operationen

Page 51: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Abbildung der XML- Struktur 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:

Page 52: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Oracle XML SQL Utility (XSU) Prinzip:

– Generierung von XML-Dokumenten aus SQL-Abfragen (in String-Darstellung oder DOM)

– Speichern von XML-Dokumenten durch Einfügen von Daten aus Dokumenten (“generated“ XML)

– Aktualisieren und Löschen von Daten aus XML-Dokumenten in der Datenbank

Schnittstellen:– XSU Java API (Java-Klasse OracleXML)– XSU PL/SQL API (Packages DBMS_XMLQuery und DBMS_XMLSave)

– Kommandozeilen-Interfacejava OracleXML [putXML | getXML] optionen

Page 53: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Beispiel Generierung von XML- Dokumenten mit XSU

CREATE TABLE emp (EMPNO NUMBER,ENAME VARCHAR2(20),JOB VARCHAR2(20),MGR NUMBER,HIREDATE DATE,SAL NUMBER,DEPTNO NUMBER

); Ausführen einer SQL-Abfrage Bsp.: SELECT * FROM emp WHERE EMPNO=7369;

Page 54: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Beispiel Generierung von XML- Dokumenten mit XSU (SELECT)

Analyse der Metadaten der Ergebnismenge Konvertierung in folgende Form:

<?xml version='1.0'?><ROWSET>

<ROW num="1"><EMPNO>7369</EMPNO>

<ENAME>Smith</ENAME> <JOB>CLERK</JOB><MGR>7902</MGR><HIREDATE>12/17/1980 0:0:0</HIREDATE> <SAL>800</SAL> <DEPTNO>20</DEPTNO>

</ROW></ROWSET>

Page 55: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Einfügen aus XML (INSERT)

Analyse der Metadaten der Zieltabelle Generierung eines Statements der Form:

INSERT INTO emp

(EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,DEPTNO) VALUES (?,?,?,?,?,?,?);

Extrahieren der zu den Metadaten passenden Elemente aus dem XML-Dokument

Ausführen des generierten SQL-Statements unter Verwendung der extrahierten Daten

Page 56: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Aktualisieren mit XML (UPDATE)

Festlegung von Schlüsselattributen, die zur Identifizierung der zu aktualisierenden Datensätze dienen

Festlegung der zu aktualisierenden Attribute; sonst erfolgt Aktualisierung aller Attribute

Analyse der Metadaten der Zieltabelle Generierung eines Update-Statements Extrahieren der Daten aus XML-Dokument

Page 57: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Aktualisieren mit XML (UPDATE)

Bsp.: EMPNO ← SchlüsselspalteSAL ← zu aktualisierende Spalte

<?xml version='1.0'?>

<ROWSET>

<ROW num="1">

<EMPNO>7369</EMPNO><JOB>CLERK</JOB><SAL>800</SAL> <DEPTNO>20</DEPTNO>

</ROW>

</ROWSET>

UPDATE emp SET SAL=800 WHERE EMPNO=7369;

Page 58: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Löschen mit XML (DELETE)

Festlegung von Schlüsselattributen, die zur Identifizierung der zu löschenden Datensätze dienen

Analyse der Metadaten der Zieltabelle Generierung eines DELETE-Statements Extrahieren der Daten aus XML-Dokument Ausführung des generierten SQL-Statements

unter Verwendung der extrahierten Daten

Page 59: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Abbildung der XML- Strukturauf objekt-relationale Datenbanken

- DTD ist erforderlich (Datentypen)- Anfragen verwenden SQL - Funktionalität- Datenbanken mit vielen Nullwerten

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>

Page 60: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Objektrelationaler AnsatzMotivation

Einbeziehung mehrfach geschachtelter XML-Dokumente

Schema des Dokuments vorhanden und bekannt Umgang mit komplexen Objekten

– XML-Dokument = komplexes Objekt– Vermeiden Dekomposition (vgl. relationaler Ansatz)

Objektrelationale Technologie sehr gut geeignet für Darstellung komplexer Objekte

– Objekt-Sichten (Object Views) – benutzerdefinierte Typen (Object Types)

Page 61: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Behandlung von Nested XML - Object View Ansatz (1)

Speicherung und Wiedergewinnung von mehrfach geschachtelten XML-Dokumenten in Oracle mit Hilfe von Object Types und Object Views

Schritte– Definiere die passenden Tabellen und Object Types– Baue eine Object View, die mit Dokumentstruktur

übereinstimmt– Nutze Object Views für Insert- und Retrieval-

Operationen in XSU

Page 62: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Behandlung von Nested XML (2)

<?xml version=‚‘1.0‘ encoding=‚‘UTF-8‘?><ROWSET><ROW><Book><ISBN>0449908585</ISBN><Title>Fun with XML</Title><Price>13</Price><Author><First>Paul</First><Last>Theroux</Last>

</Author></Book></ROW>

. . .</ROWSET>

<?xml version=‚‘1.0‘ encoding=‚‘UTF-8‘?><ROWSET><ROW><Book><ISBN>0449908585</ISBN><Title>Fun with XML</Title><Price>13</Price><Author><First>Paul</First><Last>Theroux</Last>

</Author></Book></ROW>

. . .</ROWSET>

XML Source Dokument

Page 63: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Behandlung von Nested XML (3)

Object Types first

last

Person_T

isbntitle

price

Book_T

first_namelast_name

Author_Table

isbntitle

price

Book_Table

Schema der Ziel-Datenbank:

Tabellen

1 *

Page 64: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Behandlung von Nested XML (4)

CREATE VIEW book asSELECT Book_T (b.ISBN,

b.Title, b.Price, Person_T(a.First_Name, a.Last_Name)) as Book

FROM book_table b, author_table aWHERE b.author_id = a.id;

CREATE VIEW book asSELECT Book_T (b.ISBN,

b.Title, b.Price, Person_T(a.First_Name, a.Last_Name)) as Book

FROM book_table b, author_table aWHERE b.author_id = a.id;

Object View nutzbar für Retrieval- und Insert-Operationen

Anlegen einer View auf der Basis von Object Types:

XSU kann SQL Cursor Operator nutzen in SQL-Statements, um beliebig geschachtelte XML-Dokumente zu erzeugen:

SELECT id,first_name,last_nameCURSOR (SELECT isbn,title,price

FROM book_table b WHERE a.id = b.author_id) as book

FROM author_table a;

SELECT id,first_name,last_nameCURSOR (SELECT isbn,title,price

FROM book_table b WHERE a.id = b.author_id) as book

FROM author_table a;

Page 65: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Behandlung von Nested XML (5)Ergebnis-Dokument<?xml version=‚‘1.0‘ encoding=‚‘UTF-8‘?><ROWSET><ROW num=“1“><ID>2000</ID><FIRST_NAME>Paul</FIRST_NAME><LAST_NAME>Theroux</LAST_NAME><BOOK><BOOK_ROW num=“1“>

<ISBN>449908585</ISBN><TITLE>Fun with XML</TITLE><PRICE>13</PRICE>

</BOOK_ROW><BOOK_ROW num=“2“> . . .</BOOK_ROW>

</BOOK></ROW>. . .

</ROWSET

<?xml version=‚‘1.0‘ encoding=‚‘UTF-8‘?><ROWSET><ROW num=“1“><ID>2000</ID><FIRST_NAME>Paul</FIRST_NAME><LAST_NAME>Theroux</LAST_NAME><BOOK><BOOK_ROW num=“1“>

<ISBN>449908585</ISBN><TITLE>Fun with XML</TITLE><PRICE>13</PRICE>

</BOOK_ROW><BOOK_ROW num=“2“> . . .</BOOK_ROW>

</BOOK></ROW>. . .

</ROWSET

Page 66: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Objektrelationale Speicherung -Überblick

benutzerdefinierte Objekte– Transformation DTD Relationenschema– Transformation DTD objektrelationales Schema– Vorstellung eines selbstentwickelten Werkzeugs

vordefinierte Objekte – CLOB-basiert (vgl. dort)– XML Object Type (seit Oracle 9i Release 2)

Page 67: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Verarbeitung von DTD and XML

XML V2 Parser DTD Parser

XML Dokument DTD

Schema Definition

Überprüfung, ob wohlgeformt / valid

XML2 Oracle

XML DOM Baum DTD DOM Baum

--------------------------------------------------------------------------------

-----------------------------------------------------------------------------------

DBMS Oracle

JDBC / ODBC

Syntax Check

Page 68: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig1 <!ELEMENT University (StudyCourse,Student*)>2 <!ELEMENT Student (LName,FName,Course*)>3 <!ATTLIST Student StudNr CDATA #REQUIRED>4 <!ELEMENT Course (Name,Professor*,CreditPts?)>5 <!ELEMENT Professor (PName,Subject+,Dept)>6 <!ENTITY cs “Computer Science“>7 <!ELEMENT LName (#PCDATA)>8 <!ELEMENT FName (#PCDATA)>9 <!ELEMENT Name (#PCDATA)>10 <!ELEMENT CreditPts (#PCDATA)>11 <!ELEMENT PName (#PCDATA)>12 <!ELEMENT Subject (#PCDATA)>13 <!ELEMENT Dept (#PCDATA)>14 <!ELEMENT StudyCourse (#PCDATA)>

Page 69: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Transformation von DTD in Relationenschema [Bourret]

DTD Klassen Tabellen <!ELEMENT A (B,C)> CLASS A { CREATE TABLE A (<!ELEMENT C (D)> STRING b; a_pk INTEGER NOT NULL,<!ELEMENT D (#PCDATA)> C c;} b VARCHAR2(30) NOT NULL);<!ELEMENT B (#PCDATA)> CLASS C { CREATE TABLE C (

STRING d;} c_pk INTEGER NOT NULL, a_fk INTEGER NOT NULL,

d VARCHAR2(10) NOT NULL);

Grundidee:– Erzeugung von Klassen aus DTD – Abbildung der Klassen auf Tabellen entsprechend Regeln

Veränderung des Algorithmus von Bourret– Keine Klassenbildung (Klassen und Tabellen verschmolzen)– Nutzung der Objekte des DTD-Baumes

Page 70: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

• Jedes komplexe Element Tabelle

• Jedes mengenwertige Element Tabelle

• Primärschlüssel in jeder Tabelle

1 <!ELEMENT University (StudyCourse,Student*)>2 <!ELEMENT Student (LName,FName,Course*)>3 <!ATTLIST Student StudNr CDATA #REQUIRED>4 <!ELEMENT Course (Name,Professor*,CreditPts?)>5 <!ELEMENT Professor (PName,Subject+,Dept)>6 <!ENTITY cs “Computer Science“>7 <!ELEMENT LName (#PCDATA)>8 <!ELEMENT FName (#PCDATA)>9 <!ELEMENT Name (#PCDATA)>10 <!ELEMENT CreditPts (#PCDATA)>11 <!ELEMENT PName (#PCDATA)>12 <!ELEMENT Subject (#PCDATA)>13 <!ELEMENT Dept (#PCDATA)>14 <!ELEMENT StudyCourse (#PCDATA)>

Schritt 1

Andere Elemente & Attribute Spalten

Schritt 2

Abbildungsregeln DTD Relationenschema [Bourret]

Beziehungen zwischen Elementen Fremdschlüssel

Schritt 3

Page 71: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

1 <!ELEMENT University (StudyCourse,Student*)>2 <!ELEMENT Student (LName,FName,Course*)>3 <!ATTLIST Student StudNr CDATA #REQUIRED>4 <!ELEMENT Course (Name,Professor*,CreditPts?)>5 <!ELEMENT Professor (PName,Subject+,Dept)>6 <!ENTITY cs “Computer Science“>7 <!ELEMENT LName (#PCDATA)>8 <!ELEMENT FName (#PCDATA)>9 <!ELEMENT Name (#PCDATA)>10 <!ELEMENT CreditPts (#PCDATA)>11 <!ELEMENT PName (#PCDATA)>12 <!ELEMENT Subject (#PCDATA)>13 <!ELEMENT Dept (#PCDATA)>14 <!ELEMENT StudyCourse (#PCDATA)>

CREATE TABLE TabUniversity (IDUniversity INTEGER NOT NULL,attrStudyCourse VARCHAR(4000) NOT NULL,PRIMARY KEY (IDUniversity));

 CREATE TABLE TabStudent (

IDStudent INTEGER NOT NULL,IDUniversity INTEGER NOT NULL,attrStudNr VARCHAR(4000) NOT NULL,attrLName VARCHAR(4000) NOT NULL,attrFName VARCHAR(4000) NOT NULL,PRIMARY KEY (IDStudent),CONSTRAINT conStudent FOREIGN KEY (IDUniversity) REFERENCES TabUniversity (IDUniversity));

 ...

Beispiel-Transformation

Page 72: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Tool zur objektrelationalen Speicherung von XML

Grundidee:– Darstellung eines XML-Dokuments durch Kombination von

benutzerdefinierten Typen– Generiere ein objekt-relationales Schema aus der DTD– Generiere Programm zum Laden des Dokuments in Oracle-

DB

Abbildungsregeln:– Attribute und einfache Elemente– Komplexe Elemente– Mengenwertige Elemente– Komplexe mengenwertige Elemente– Constraints

Page 73: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

XML Attribute & Einfache Elemente

Elemente vom Typ #PCDATA und XML Attribute Attribut eines Objekttyps

Wertebereich einfacher Elemente:– Keine Typ-Information in der DTD

numerisch vs. alphanumerisch? Länge?

– Beschränkungen des DBMS (z.B. VARCHAR 4000 Zeichen)

Abbildung eines XML-Attributes eines einfachen Elements Definition eines Objekttyps für Attribut und Element

Page 74: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

CREATE TABLE TabProfessor OF Type_Professor;

CREATE TYPE Type_Professor AS OBJECT ( attr PAddress VARCHAR(4000), attrPName VARCHAR(4000), attrSubject VARCHAR(4000), attrDept Type_Dept);

CREATE TYPE Type_Dept AS OBJECT ( attrDept VARCHAR(4000), attrDAddress VARCHAR(4000)); 

<!ELEMENT Professor (PName,Subject,Dept)><!ATTLIST Professor PAddress CDATA #REQUIRED> <!ELEMENT PName (#PCDATA)><!ELEMENT Subject (#PCDATA)><!ELEMENT Dept (#PCDATA)><!ATTLIST Dept DAddress CDATA #REQUIRED>

XML Attribute & Einfache Elemente

Page 75: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Komplexe Elemente

CREATE TABLE TabUniversity (attrStudyCourse VARCHAR(4000),attrStudent Type_Student );

 CREATE TYPE Type_Student AS OBJECT (

attrStudNr VARCHAR(4000),attrLName VARCHAR(4000),attrFName VARCHAR(4000),attrCourse Type_Course );

 CREATE TYPE Type_Course AS OBJECT (

attrName VARCHAR(4000),attrProfessor Type_Professor,attrCreditPts VARCHAR(4000));

 CREATE TYPE Type_Professor AS OBJECT (

attrPName VARCHAR(4000),attrSubject VARCHAR(4000),attrDept VARCHAR(4000));

INSERT INTO TabUniversity VALUES ( ‘Computer Science' ,

Type_Student('23374','Conrad','Matthias', Type_Course(‘Databases II‘, Type_Professor(‘Kudrass‘ ,

‘Database Systems‘', ‘Computer Science‘), '4')));

SELECT u.attrStudent.attrLname FROM TabUniversity uWHERE u.attrStudent.attrCourse.attrProfessor.attrPName

= ‘Kudrass';

Verschachtelung durch zusammen-gesetzte Object Types

Page 76: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Mengenwertige Elemente

Mehrfaches Auftreten eines Elements (DTD): + oder * Beschränkungen des DBMS (Oracle 8i)

– Kollektionstypen nur anwendbar auf textwertige Subelemente, z.B. ARRAY OF VARCHAR

– Was ist mit komplexen Subelementen? Subelemente können wiederum mengenwertig sein

Lösung– Oracle ab Release 9i verwenden– Beziehungen über Objektreferenzen realisieren (aufwendig!)

Page 77: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Mengenwertige ElementeCREATE TYPE TypeVA_Student AS VARRAY(100) OF Type_Student; CREATE TYPE TypeVA_Course AS VARRAY(100) OF Type_Course;CREATE TYPE TypeVA_Professor AS VARRAY(100) OF Type_Professor;CREATE TYPE TypeVA_Subject AS VARRAY(100) OF VARCHAR(4000);

CREATE TABLE TabUniversity (attrStudyCourse VARCHAR(4000),attrStudent TypeVA_Student );

 CREATE TYPE Type_Student AS OBJECT (

attrStudNr VARCHAR(4000),attrLName VARCHAR(4000),attrFName VARCHAR(4000),attrCourse TypeVA_Course );

 CREATE TYPE Type_Course AS OBJECT (

attrName VARCHAR(4000),attrProfessor TypeVA_Professor,attrCreditPts VARCHAR(4000));

 CREATE TYPE Type_Professor AS OBJECT (

attrPName VARCHAR(4000),attrSubject TypeVA_Subject, attrDept VARCHAR(4000));

University

Student

Course

Professor

Subject

Page 78: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Einfügen der Dokument-Daten (Beispiel)INSERT INTO TabUniversity VALUES ( ‘Computer Science' , TypeVA_Student (

Type_Student('23374','Conrad','Matthias', TypeVA_Course ( Type_Course(‘Databases II‘, TypeVA_Professor ( Type_Professor(‘Kudrass‘ ,

TypeVA_Subject (‘Database Systems,‘Operating Systems‘),‘Computer Science‘)),‘4‘),

Type_Course(‘CAD Intro‘, TypeVA_Professor ( Type_Professor(‘Jaeger‘ ,

TypeVA_Subject ( ‘CAD‘,‘CAE‘), ‘Computer Science‘)),‘4‘),

...)),Type_Student(‘00011',‘Meier',‘Ralf', … ) … )...);

Page 79: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Oracle 9i Release 2 Objektrelationale Speicherung (1) XMLType

– 2 Speicherungs-Optionen: CLOB vs. objektrelational– Informationserhaltung entsprechend DOM

Unterstützung von XML Schema XPATH kann als Ausdruck in DML Statements genutzt

werden Kombination von SQL Anfragen mit XPATH möglich Neue XML Operatoren

– XMLTABLE (Umwandlung einer Knotenliste in Tabelle)– XMLELEMENT (Erzeugen von XML-Elementen on-the-fly)

XSL Transformationen für XMLType

Page 80: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Oracle 9i Release 2 Objektrelationale Speicherung (2) Performance-Verbesserungen

– Lazy XML Load– Schema Caching– hierarchischer Index

Foldering– Abbildung von Verzeichnisstrukturen in DB-Strukturen

Access Control auf der Ebene von XML-Objekten WebDAV und FTP Zugriff Suche in Metadaten, Strukturen und Inhalten mittels SQL Neue APIs

– Java Bean Interface– Servlet API zum Zugriff auf XML-Daten

Page 81: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Oracle 9i Release 2Beispiele

SELECT xml_order FROM orders WHERE EXISTSNODE (xml_order,‘//ship_to/state‘) > 0;

SELECT xml_order FROM orders WHERE EXISTSNODE (xml_order,‘//ship_to/state‘) > 0;

SELECT xml_order FROM ordersWHERE EXTRACTNODE(xml_order, ‘//ship_to/state‘).getClobVal() = ‘CA‘;

SELECT xml_order FROM ordersWHERE EXTRACTNODE(xml_order, ‘//ship_to/state‘).getClobVal() = ‘CA‘;

SELECT xml_order FROM ordersWHERE EXTRACTNODE(xml_order, ‘//ship_to/state‘) = ‘CA‘;

SELECT xml_order FROM ordersWHERE EXTRACTNODE(xml_order, ‘//ship_to/state‘) = ‘CA‘;

Speicherungsmodus in Anfrage nicht sichtbarSomit auch erlaubt:

Page 82: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Strukturierte SpeicherungBewertung Dokumentstruktur ist starr (durch relationales Schema

gegeben)– somit keine beliebigen (nicht vordefinierten) XML-Dokumente

speicherbar Beschränkungen in der Abbildung

– Rekursion– mixed content

Informationsverlust (Round-Trip-Problem)– Kommentare, Processing Instructions– Reihenfolge der Elemente– Element vs. Attribute (wie war es im Original?)

Anfragesprache ist immer SQL (erfordert Übersetzung)– strukturorientierte Anfragen schwierig

Page 83: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Fazit

Vielzahl von Speicherungsmethoden verfügbar– jeweils Vor- und Nachteile – Mischformen innerhalb einzelner Dokumente denkbar

Unterschiedliche Anforderungen (je nach Dokument-typ)

– Skalierbarkeit– Performance– Anfragemöglichkeiten

Semantik (Information aus Dokumenten bewahren!) Auswahl der günstigsten Methode? Werkzeugunterstützung für XML-Datenbankentwurf?

Page 84: Vergleichende Untersuchungen zur Verwaltung von XML- Dokumenten in Datenbanken Prof. Dr. Thomas Kudraß HTWK Leipzig Datenbanken-Stammtisch HTW Dresden,

© Prof. T. Kudraß, HTWK Leipzig

Quellen

Steve Muench: Building Oracle XML Applications, O‘Reilly, 2000.

Oracle Technology Network: http://www.oracle.com/xml

Harald Schöning: XML und Datenbanken, BTW-Tutorium, März 2001.

Meike Klettke: XML-Speicherungsmethoden, eine Klassifikation, http://www.xml-und-datenbanken.de

Ron Bourret: XML and Databases, http://www.rpbourret.com/xml/XMLAndDatabases.htm