Upload
guenter-gerhardt
View
217
Download
0
Embed Size (px)
Citation preview
Deutsche Post ITSolutions GmbH
Benutzung von XML in Oracle 10gRichard 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
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
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
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
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>
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
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
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
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
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>
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
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
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
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
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
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
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
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)
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
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
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“
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
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
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“
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;
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 …
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
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
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
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
– …
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 ?
Deutsche Post ITSolutions GmbH
Vielen Dank für Ihre Aufmerksamkeit