Richard Dörfler, DOAG

Werbung
Benutzung von XML in Oracle 10g
Richard Dörfler, DOAG - Trier, 13.09.2005
Deutsche Post ITSolutions GmbH
Inhalt:
 Einleitung
 Warum XML?
 Speichern von XML in einer Datenbank
 Oracle XML-DB
 Speicherungsformen
 Umgang mit XML
 Zusammenfassung / Ausblick
Deutsche Post ITSolutions GmbH
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 2
Inhalt:
 Einleitung
 Warum XML?
 Speichern von XML in einer Datenbank
 Oracle XML-DB
 Speicherungsformen
 Umgang mit XML
 Zusammenfassung / Ausblick
Deutsche Post ITSolutions GmbH
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 3
Einleitung
 Richard Dörfler
– Student an der FH-Trier
– Diplomand bei der Deutschen Post IT-Solutions
 Kontakt zu XML – Datenbanken
– Vorlesung objektrelationale Datenbanken
Prof. Klösener, FH-Trier
– Workshop Datawarehouse / XML
u.a. Czarski, Oracle
 Vortrag bei DOAG
– Anfrage von Bernd Tuba, DP ITS
– Keine Erfahrung mit XML in der Datenbank
Deutsche Post ITSolutions GmbH
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 4
Inhalt:
 Einleitung
 Warum XML?
 Speichern von XML in einer Datenbank
 Oracle XML-DB
 Speicherungsformen
 Umgang mit XML
 Zusammenfassung / Ausblick
Deutsche Post ITSolutions GmbH
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 5
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
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 6
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
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 7
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
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 8
Inhalt:
 Einleitung
 Warum XML?
 Speichern von XML in einer Datenbank
 Oracle XML-DB
 Speicherungsformen
 Umgang mit XML
 Zusammenfassung / Ausblick
Deutsche Post ITSolutions GmbH
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 9
Speicherung von XML in einer Datenbank
Klassische Verfahren:
 Clob
– Keine XML-Funktionalität nötig
Clob
– Kein Wissen über XML
Nativ als
Dokument
Relational
– Keine Prüfung möglich
 Relational
Nativ
Objektrelational
– Keine XML-Funktionalität nötig
– Zerlegung meist außerhalb
– Wiederherstellung kompliziert
– Attribut oder Element
– Reihenfolge
– Kommentare
Deutsche Post ITSolutions GmbH
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 10
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
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 11
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
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 12
Inhalt:
 Einleitung
 Warum XML?
 Speichern von XML in einer Datenbank
 Oracle XML-DB
 Speicherungsformen
 Umgang mit XML
 Zusammenfassung / Ausblick
Deutsche Post ITSolutions GmbH
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 13
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
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 14
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
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 15
Inhalt:
 Einleitung
 Warum XML?
 Speichern von XML in einer Datenbank
 Oracle XML-DB
 Speicherungsformen
 Umgang mit XML
 Zusammenfassung / Ausblick
Deutsche Post ITSolutions GmbH
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 16
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
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 17
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
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 18
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
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 19
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
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 20
Speicherungsformen
Objektrelationale Speicherung
 Überprüfen der angelegten Struktur
– USER_XML_SCHEMAS
– USER_OBJECTS
– Default Table
 Eigene Tabellen anlegen
–
create table meine_xml_personen of xmltype
xmlschema „http://www.doag.de/person.xsd“
element „Person“
 Löschen des XMLSchemas
– DBMS_XMLSCHEMA.DELETESCHEMA
Deutsche Post ITSolutions GmbH
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 21
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
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 22
Inhalt:
 Einleitung
 Warum XML?
 Speichern von XML in einer Datenbank
 Oracle XML-DB
 Speicherungsformen
 Umgang mit XML
 Zusammenfassung / Ausblick
Deutsche Post ITSolutions GmbH
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 23
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
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 24
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
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 25
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 XMLPersonen
where existsnode(
object_value
,‘/Person/Adresse[Hausnummer=1234]‘
)=1;
Deutsche Post ITSolutions GmbH
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 26
Umgang mit XML
Aktualisieren von XML-Dokumenten
 Vollständiger Austausch eines Dokuments
 Piecewise Update
– Nur ein Teil wird aktualisiert
– SQL>
update XMLPersonen
set object_value =
UPDATEXML(
object_value,
‚/Person/Name/text()‘,
‚Fitz Quack‘
)
where existsnode …
Deutsche Post ITSolutions GmbH
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 27
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 RPersonen
as
select extract
…
 Nutzung in Anwendungen ohne XML Funktionalität
Deutsche Post ITSolutions GmbH
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 28
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 as
select XMLElement(„Person“,
XMLElement(„Name“, Name),
...)
from RPersonen
Deutsche Post ITSolutions GmbH
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 29
Inhalt:
 Einleitung
 Warum XML?
 Speichern von XML in einer Datenbank
 Oracle XML-DB
 Speicherungsformen
 Umgang mit XML
 Zusammenfassung / Ausblick
Deutsche Post ITSolutions GmbH
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 30
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
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 31
Oracle und XML
 Quellen:
– Oracle 10g Kompendium, Fröhlich, Meier, Czarski
Markt+Technik, 2005; ISBN 3-8272-6679-3
– Vorlesungsunterlagen Prof. Klösener
– Oracle Technology Network
http://www.oracle.com/xml/index.html
Fragen / Anmerkungen ?
Deutsche Post ITSolutions GmbH
· Richard Dörfler · DOAG - Trier · 13.09.2005
Seite 32
Vielen Dank für Ihre Aufmerksamkeit
Deutsche Post ITSolutions GmbH
Herunterladen