Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier,...

33
Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005

Transcript of Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier,...

Page 1: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Benutzung von XML in Oracle 10gRichard Dörfler, DOAG - Trier, 13.09.2005

Page 2: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 2 · Richard Dörfler · DOAG - Trier · 13.09.2005

Inhalt:

Einleitung

Warum XML?

Speichern von XML in einer Datenbank

Oracle XML-DB

Speicherungsformen

Umgang mit XML

Zusammenfassung / Ausblick

Page 3: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 3 · Richard Dörfler · DOAG - Trier · 13.09.2005

Inhalt:

Einleitung

Warum XML?

Speichern von XML in einer Datenbank

Oracle XML-DB

Speicherungsformen

Umgang mit XML

Zusammenfassung / Ausblick

Page 4: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 4 · Richard Dörfler · DOAG - Trier · 13.09.2005

Einleitung

Richard Dörfler

– Student an der FH-Trier

– Diplomand bei der Deutschen Post IT-Solutions

Kontakt zu XML – Datenbanken

– Vorlesung objektrelationale DatenbankenProf. Klösener, FH-Trier

– Workshop Datawarehouse / XMLu.a. Czarski, Oracle

Vortrag bei DOAG

– Anfrage von Bernd Tuba, DP ITS

– Keine Erfahrung mit XML in der Datenbank

Page 5: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 5 · Richard Dörfler · DOAG - Trier · 13.09.2005

Inhalt:

Einleitung

Warum XML?

Speichern von XML in einer Datenbank

Oracle XML-DB

Speicherungsformen

Umgang mit XML

Zusammenfassung / Ausblick

Page 6: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 6 · Richard Dörfler · DOAG - Trier · 13.09.2005

Warum XML?

XML ist Auszeichnungssprache (Markup Language)

– Vergleich HTML (fester Sprachumfang)

– Metadaten in Form der Tags

Wohlgeformtes Beispiel:

– <?xml version=„1.0“ encoding=„ISO-8859-1“ ?><Person> <Personalnr>256279</Personalnr> <Vorname>Hans</Vorname> <Nachname>Meier</Nachname></Person>

Page 7: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 7 · Richard Dörfler · DOAG - Trier · 13.09.2005

Warum XML?

Ziel von W3C:

Trennung von Inhalt und Layout von Webseiten

XSLT (eXtensible Stylesheet Language Transformations)

Standards zum Umgang mit XML

– z.B. XML-Parser

Datenaustausch

Page 8: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 8 · Richard Dörfler · DOAG - Trier · 13.09.2005

XML zum Datenaustausch

Vorteile:

Abgrenzung von Datenfeldern

– Berücksichtigt Sonder- und Steuerzeichen

Struktur durch Metadaten

Zahlreiche Software zur Bearbeitung

– Konzentration auf fachliche Probleme möglich

Page 9: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 9 · Richard Dörfler · DOAG - Trier · 13.09.2005

Inhalt:

Einleitung

Warum XML?

Speichern von XML in einer Datenbank

Oracle XML-DB

Speicherungsformen

Umgang mit XML

Zusammenfassung / Ausblick

Page 10: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 10 · Richard Dörfler · DOAG - Trier · 13.09.2005

Clob

– Keine XML-Funktionalität nötig

– Kein Wissen über XML

– Keine Prüfung möglich

Relational

– Keine XML-Funktionalität nötig

– Zerlegung meist außerhalb

– Wiederherstellung kompliziert

– Attribut oder Element

– Reihenfolge

– Kommentare

Speicherung von XML in einer Datenbank

Klassische Verfahren:

Nativ alsDokument Relational

NativObjektrelational

Clob

Page 11: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 11 · Richard Dörfler · DOAG - Trier · 13.09.2005

Speicherung von XML in einer Datenbank

Attribut oder Element

– <?xml version=„1.0“ encoding=„ISO-8859-1“ ?><Person Name=„Hans Meier“ />

– <?xml version=„1.0“ encoding=„ISO-8859-1“ ?><Person> <Name>Hans Meier</Name></Person>

Reihenfolge

– <?xml version=„1.0“ encoding=„ISO-8859-1“ ?><Artikel> <Absatz>Text hat mehrere Absätze</Absatz> <Absatz>Auf die Reihenfolge kommt es an</Absatz></Artikel>

Kommentare

– <?xml version=„1.0“ encoding=„ISO-8859-1“ ?><Person> <Name>Hans Meier</Name> <!-- Kommentar in XML --></Person>

Page 12: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 12 · Richard Dörfler · DOAG - Trier · 13.09.2005

Speicherung von XML in einer Datenbank

Native Speicherung

Anforderungen an die DB:

– XML Dokumente vollständig wiederherstellbar

– Kommentare

– Processing Instructions

– Reihenfolge

– Attribut oder Element

– Zugriff auf XML-Dokumente über XPATH

– HTTP

– FTP

– WebDAV

Page 13: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 13 · Richard Dörfler · DOAG - Trier · 13.09.2005

Inhalt:

Einleitung

Warum XML?

Speichern von XML in einer Datenbank

Oracle XML-DB

Speicherungsformen

Umgang mit XML

Zusammenfassung / Ausblick

Page 14: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 14 · Richard Dörfler · DOAG - Trier · 13.09.2005

Oracle XML - DB

XML in Oracle integriert

Steht nach Installation zur Verfügung

– Zugriff über HTTP (8080), FTP (2100), WebDAV möglich

– User XDB als Eigentümer des XML DB Repository

– Virtuelles Dateisystem

Ports lassen sich ändern

– $ORACLE_HOME/rdbms/admin/catxdbdbca.sql

– Port auf „0“ schaltet Zugang ab

WebDAV

– Datenbank als Windows-Netzwerk-Laufwerk

Page 15: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 15 · Richard Dörfler · DOAG - Trier · 13.09.2005

Oracle XML - DB

XML DB Repository

Virtuelles Dateisystem

– Standard: public, sys, xdbconfig.xml

– Berechtigungen über Access Control Lists /sys/acls

– Ordner public für alle Lese- und Schreibrechte

Zugriff über SQL

– PATH_VIEW (select path from path_view)

– Package DBMS_XDB

– Create_folder

– Create_resource

Page 16: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 16 · Richard Dörfler · DOAG - Trier · 13.09.2005

Inhalt:

Einleitung

Warum XML?

Speichern von XML in einer Datenbank

Oracle XML-DB

Speicherungsformen

Umgang mit XML

Zusammenfassung / Ausblick

Page 17: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 17 · Richard Dörfler · DOAG - Trier · 13.09.2005

Speicherungsformen

XMLTYPE - Datentyp

– Wohlgeformtes XML

– Ganze Tabelle oder Spalte

– XPATH als Abfragesprache möglich

Dokumentenorientiert

– XML-Dokument als eine Einheit

– Einzelne Information ohne Kontext wertlos (Artikel)

– Transformation durch XSLT in anderes Layout

Datenorientiert

– Datenaustausch

– Information kann alleine Stehen (Preisliste)

– Integration mit relationalen Tabellen

Page 18: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 18 · Richard Dörfler · DOAG - Trier · 13.09.2005

Speicherungsformen

Dokumentenbasierte Speicherung

Speicherung als Textstrom (intern als CLOB)

– Datentyp XMLTYPE notwendig

– SQL> create table XML_DOK_1 of xmltype;

– SQL> create table XML_DOK_2 (ID number(10),DOC xmltype )xmltype column DOC store as CLOB;

– SQL> insert into XML_DOK_2 (id,doc)values (1, XMLTYPE(‘<?xml version…‘));

– Keine Rücksicht auf Struktur der Dokumente

– Nur Wohlgeformtheit wird geprüft

Page 19: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 19 · Richard Dörfler · DOAG - Trier · 13.09.2005

Speicherungsformen

Dokumentenbasierte Speicherung

Speicherung über FTP oder DBMS_XDB

– DECLARE ret boolean;BEGIN ret:=dbms_xdb.createresource( '/public/xperson.xml‚ ,'<Person>

<Vorname>Hugo</Vorname><Nachname>Schmitz</Nachname><Adresse> … </Adresse>

</Person>')END;/

– Dokument wird im Repository dokumentenorientiert abgelegt

– Tabelle XDB$RESOURCE (->path_view)

Page 20: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 20 · Richard Dörfler · DOAG - Trier · 13.09.2005

Speicherungsformen

Objektrelationale Speicherung / Datenorientiert

Struktur des XML-Dokument muss Datenbank bekannt sein

– Objekttypen müssen vorhanden sein

– XML-Schema registrieren

– DBMS_XMLSCHEMA.REGISTERSCHEMA

– DBMS_XMLSCHEMA.REGISTERURI

– zus. Parameter:

– LOCAL

– GENTABLES

Page 21: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 21 · Richard Dörfler · DOAG - Trier · 13.09.2005

Speicherungsformen

Objektrelationale Speicherung

Überprüfen der angelegten Struktur

– USER_XML_SCHEMAS

– USER_OBJECTS

– Default Table

Eigene Tabellen anlegen

– create table meine_xml_personen of xmltypexmlschema „http://www.doag.de/person.xsd“element „Person“

Löschen des XMLSchemas

– DBMS_XMLSCHEMA.DELETESCHEMA

Page 22: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 22 · Richard Dörfler · DOAG - Trier · 13.09.2005

Speicherungsformen

Objektrelationale Speicherung

Steuern der Namensgebung

– Schema Annotationen im XML-Schema

– Namespace: http://xmlns.oracle.com/xdb

– Ignoriert von anderen Anwendungen

– SQLName, SQLType

– defaultTable

Mischformen in XML-Dokument

– Personendaten

– Adresse als SQLType=„CLOB“

Page 23: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 23 · Richard Dörfler · DOAG - Trier · 13.09.2005

Inhalt:

Einleitung

Warum XML?

Speichern von XML in einer Datenbank

Oracle XML-DB

Speicherungsformen

Umgang mit XML

Zusammenfassung / Ausblick

Page 24: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 24 · Richard Dörfler · DOAG - Trier · 13.09.2005

Umgang mit XML

Zugriff über FTP, HTTP, WebDAV, DBMS_XDB möglich

Problem: oft Angabe von Tabellenname nicht möglich

– put dokument.xml

– Verbindung herstellen zum registrierten Schema

– Schema referenzieren:

– <Person xmlns:xsi=„http://www.w3.org/2001/XMLSchema-instance“ xsi:noNamespaceSchemaLocation=„http://www.doag.de/xperson.xsd“ >…</Person>

– Größe gibt Speicherort an

Page 25: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 25 · Richard Dörfler · DOAG - Trier · 13.09.2005

Umgang mit XML

Abfragen von Informationen

Abrufen per FTP oder WebDAV

– Nur vollständige Dokumente abrufbar

Abrufen per HTTP

– Einzelne Zeilen abrufbar

– http://localhost:8080/oradb/<schema>/<tabelle>/XPATH

– XPATH-Ausdruck anwendbar

– Auch für relationale Tabellen möglich

Abruf per SQL

– SQL> select object_value from „XMLPersonen“

Page 26: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 26 · Richard Dörfler · DOAG - Trier · 13.09.2005

Umgang mit XML

Abfragen von Informationen

Zugriff auf Teile eines Dokuments

– EXTRACT(doc XMLTYPE, xpath VARCHAR2)

– EXTRACTVALUE(doc XMLTYPE, xpath VARCHAR2)

– EXISTSNODE(doc XMLTYPE, xpath VARCHAR2)

– SQL> select extractvalue(object_value, ‘/Person/Name‘)from XMLPersonenwhere existsnode(

object_value,‘/Person/Adresse[Hausnummer=1234]‘)=1;

Page 27: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 27 · Richard Dörfler · DOAG - Trier · 13.09.2005

Umgang mit XML

Aktualisieren von XML-Dokumenten

Vollständiger Austausch eines Dokuments

Piecewise Update

– Nur ein Teil wird aktualisiert

– SQL> update XMLPersonenset object_value = UPDATEXML( object_value, ‚/Person/Name/text()‘, ‚Fitz Quack‘)where existsnode …

Page 28: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 28 · Richard Dörfler · DOAG - Trier · 13.09.2005

Umgang mit XML

Relationale Sichten auf XML-Tabellen

Abfrage wie beschrieben

Struktur innerhalb der Zeilen auflösen

– … table(XMLSequence(…))

Create view als Rahmen

– SQL> create or replace view RPersonenasselect extract…

Nutzung in Anwendungen ohne XML Funktionalität

Page 29: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 29 · Richard Dörfler · DOAG - Trier · 13.09.2005

Umgang mit XML

XML Sichten auf relationale Tabellen

SQLX - Syntax

– Teil des SQL2003 Standard

– In Oracle bereits implementiert

– XMLElement

– XMLAttribut

– XMLAgg

Beispiel:

– SQL> create or replace view XPerson asselect XMLElement(„Person“,

XMLElement(„Name“, Name),...)

from RPersonen

Page 30: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 30 · Richard Dörfler · DOAG - Trier · 13.09.2005

Inhalt:

Einleitung

Warum XML?

Speichern von XML in einer Datenbank

Oracle XML-DB

Speicherungsformen

Umgang mit XML

Zusammenfassung / Ausblick

Page 31: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 31 · Richard Dörfler · DOAG - Trier · 13.09.2005

Zusammenfassung

XML in Datenbanken speichern

Speicherungsformen

Arbeiten mit XML in der Datenbank

Ausblick:

– Fremdschlüssel

– Zugriffsunterschiede bei den Speicherungsarten

– Validierungen

– SQL*Loader mit XML-Dokumenten

– XSLT Transformationen

– Oracle Advanced Queuing

– …

Page 32: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Seite 32 · Richard Dörfler · DOAG - Trier · 13.09.2005

Oracle und XML

Quellen:

– Oracle 10g Kompendium, Fröhlich, Meier, CzarskiMarkt+Technik, 2005; ISBN 3-8272-6679-3

– Vorlesungsunterlagen Prof. Klösener

– Oracle Technology Networkhttp://www.oracle.com/xml/index.html

Fragen / Anmerkungen ?

Page 33: Deutsche Post ITSolutions GmbH Benutzung von XML in Oracle 10g Richard Dörfler, DOAG - Trier, 13.09.2005.

Deutsche Post ITSolutions GmbH

Vielen Dank für Ihre Aufmerksamkeit