O'Reilly logo

Oracle 12c - Das umfassende Handbuch by Lutz Fröhlich

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

307
Kapitel 14
Die XML-Datenbank
Die Verwendung von XML (eXtensible Markup Language) hat sich seit Ende der
neunziger Jahre stark verbreitet. Oracle hat nicht nur in vielen seiner Produkte
XML integriert, sondern ein Produkt zur Speicherung und Verarbeitung von XML-
Dokumenten entwickelt: die XML-Datenbank. Sie enthält die folgenden Features:
Unterstützung von XML-Schemas nach dem W3C-Standard sowie deren Zu-
griffs- und Abfragemethoden.
Verarbeitung und Abfrage von XML-Daten mit SQL.
Ein einfaches XML-Repository zur Verwaltung des Datenbankinhalts.
Eine Infrastruktur zur Verwaltung von XML-Daten.
Zugriff mit FTP, HTTP oder WebDav sowie APIs in den Sprachen Java, C und
PL/SQL.
Die XML-DB bietet die Möglichkeit, XML-Daten nach Industriestandards
transaktionsgesichert in der Oracle-Datenbank zu verwalten sowie in Applika-
tionen zu integrieren.
14.1 Die Architektur der XML-DB
Die Installation der XML-DB erfolgt mit dem Database Configuration Assistant.
Nach Durchführung einer Standardinstallation steht die XML-Funktionalität voll-
ständig zur Verfügung. Die XML-DB bietet die Möglichkeit zum Zugriff mit offe-
nen Protokollen wie HTTP, WebDAV und FTP. Außerdem enthält Oracle 12c den
User XDB als Eigentümer des XML DB Repository. Dieses liegt ab Oracle10g stan-
dardmäßig im Tablespace SYSAUX, in Oracle9i liegt es im Tablespace XDB. Das
Repository enthält unter anderem ein virtuelles Dateisystem, welches die Datenbank
dem Anwender präsentiert, sobald er sich mit WebDAV oder FTP verbindet.
Nach dem Hochfahren der Datenbank werden Protokollserver für FTP sowohl auf
Port 2100 und für HTTP-Server auf Port 8080 geöffnet. Beide Zugänge können
Sie mit Windows-Werkzeugen testen.
Die Protokollserver werden durch die Shared Server-Architektur zur Verfügung
gestellt. HTTP-, WebDAV- oder FTP-Zugriffe sind insofern nur dann möglich,
wenn die Shared Server-Architektur entsprechend aktiviert wurde. Das bedeutet
jedoch nicht, dass dann nur noch mit der Shared Server-Architektur gearbeitet
Kapitel 14
Die XML-Datenbank
308
werden muss. Es können nach wie vor Datenbankverbindungen mit dedizierten
Serverprozessen geöffnet werden.
Den WebDAV-Zugriff können Sie im Windows Explorer unter Netzwerk einrich-
ten. Anschließend können Sie die XML-Datenbank analog zu einem Windows-
Netzlaufwerk nutzen. Wenn Windows Sie zur Anmeldung auffordert, verwenden
Sie ein normales Datenbankbenutzerkonto.
Danach sehen Sie die Ordner PUBLIC und SYS sowie ein XML-Dokument mit
dem Namen xdbconfig.xml. Diese Ordner sind im Dateisystem des Servers nicht
vorhanden. Sie sehen ein rein virtuelles Dateisystem. Zu den Ordnern und
Dateien gibt es entspreche Einträge im XML DB Repository.
Das virtuelle Dateisystem ist auch mit einem Berechtigungskonzept ausgestattet.
Jede Ressource ist mit einer Access Control List versehen. Die ACL regelt, welcher
Datenbank-User die Ressource lesen oder schreiben kann. Unter dem Pfad /sys/
acls finden Sie einige vordefinierte ACLs.
Der Ordner public steht Ihnen für Tests der XML-Datenbank zur Verfügung. Alle
Datenbankbenutzerkonten haben dort sowohl Lese- als auch Schreibrechte. Der Ord-
ner sys enthält eine Art Data Dictionary für die XML-Datenbank. Sie sollten keine
eigenen Dokumente in diesen Ordner oder seine Unterordner ablegen. Sie können
jedes in Oracle registrierte XML-Schema in den Unterordnern von sys finden.
Das Dokument xdbconfig.xml enthält Einstellungen für die Protokollserver. Dort
finden Sie unter anderem die jeweiligen TCP/IP-Ports für HTTP und FTP oder die
Zeiten für das jeweilige Session-Timeout. Wenn Sie diese Einstellungen ändern
möchten, müssen Sie xdbconfig.xml ändern.
Sie können auch mit SQL auf das virtuelle Dateisystem im XML DB Repository
zugreifen. Dazu stehen Ihnen die PATH_VIEW und das PL/SQL Paket DBMS_XDB
zur Verfügung
Hinweis
Sie können die TCP/IP-Ports nachträglich ändern. Starten Sie dazu das Skript
catxdbdbca.sql im Verzeichnis $ORACLE_HOME/rdbms/admin.
Hinweis
Jeder Datenbank-User kann nach einer Standardinstallation in den Ordner public
schreiben. Eine Begrenzung der Datenmenge gibt es nicht. Aus Sicherheitsgrün-
den empfiehlt es sich daher, /public entweder mit einer restriktiveren ACL zu ver-
sehen oder zu löschen.
14.1
Die Architektur der XML-DB
309
Jeder Eintrag im PATH_VIEW ist eine Ressource. Ein WebDAV- oder FTP-Client
zeigt exakt die gleichen Ressourcen. Ressourcen sind entweder Ordner oder Da-
teien. Das XML DB Repository kann grundsätzlich alle Dokumente aufnehmen.
Mit DBMS_XDB können Sie neben dem Anlegen von Ordnern auch Ressourcen
erstellen (DBMS_XDB.CREATERESOURCE) oder löschen (DBMS_XDB.DELE-
TERESOURCE). Es bietet Ihnen Zugriffe, wie man es von der Dateisystemschnitt-
stelle einer Programmiersprache gewohnt ist.
Eine Ressource ist entweder im XML DB Repository selbst oder in einer XML-
TYPE-Tabelle eines Datenbankusers gespeichert.
Die im Folgenden dargestellten Beispiele können Sie mit jedem beliebigen Daten-
bank-User nachvollziehen. Zum Umgang mit der Oracle XML DB werden keine
besonderen Systemprivilegien benötigt.
Die Oracle-Datenbank ist mit einem eigenen Datentyp für XML-Dokumente
(XMLTYPE) ausgestattet. XMLTYPE nimmt nur wohlgeformte XML-Dokumente
und kann für alle Tabellenspalten verwendet werden.
Die Datenbank stellt sicher, dass XML-Dokumente beim Abrufen so wiederherge-
stellt werden, wie sie gespeichert wurden. Außerdem erlaubt die Datenbank beim
SQL> select PATH from PATH_VIEW;
PATH
-------------------------------------------------------
/home
/public
/sys
/sys/acls
/sys/acls/all_all_acl.xml
/sys/acls/all_owner_acl.xml
/sys/acls/bootstrap_acl.xml
/sys/acls/ro_all_acl.xml
/sys/log
/sys/schemas
Listing 14.1: Auf das Repository der XML-DB zugreifen
SQL> declare
2 result boolean;
3 begin
4 result:=DBMS_XDB.CREATEFOLDER('/MITP');
5 end;
6 /
PL/SQL procedure successfully completed.
SQL> commit;
Commit complete.
Listing 14.2: Einen Ordner in der XDB anlegen

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required