Oracle, PL/SQL und XML

Werbung
www.comelio-medien.com
Oracle, PL/SQL
und XML
Marco Skulschus
Marcus Wiederstein
Oracle PL/SQL und XML
Marco Skulschus
Marcus Wiederstein
Oracle, PL/SQL und XML
Marco Skulschus
Marcus Wiederstein
Webseite zum Buch:
http://www.comelio-medien.com/buch-katalog/oracle/oracle_und_xml
© Comelio Medien 2011
Alle Rechte vorbehalten. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jeder Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Das
gilt insbesondere für die Vervielfältigung, Übersetzung, Mikroverfilmung und die
Einspeicherung und Verbreitung in elektronischen Systemen.
© Comelio GmbH
Comelio GmbH
Goethestr. 34
D-13086 Berlin
Fon:+49 (0) 30-8 14 56 22-00
Fax:+49 (0) 30-8 14 56 22-10
www.comelio-medien.com
[email protected]
Umschlaggestaltung, Comelio-Grafiken, Layout & Satz: Nadine Kilian
Druck und Bindung: docupoint magdeburg,
Otto-von-Guericke-Allee 14
39179 Barleben
Printed in Germany
ISBN 978-3-939701-51-4
Inhaltsverzeichnis
Inhaltsverzeichnis
1.XML-Technologien 1. 1. Modellierung mit DTD 1. 1. 1. Elemente, Attribute 1. 1. 2. Komplexe Inhaltsmodelle 1. 1. 3. Schlüssel- und Schlüsselverweise 1. 2. Modellierung mit XML Schema 1. 2. 1. Globale/Lokale Elemente und Attribute 1. 2. 2. Datentypen 1. 2. 3. Globale komplexe Typen 1. 2. 4. Schlüssel und Schlüsselverweise 1. 3. Abfrage mit XPath 1. 3. 1. Achsen 1. 3. 2. Prädikate 1. 3. 3. Funktionen 1. 4. Abfrage mit XQuery 1. 4. 1. Einführung 1. 4. 2. FLWOR-Ausdrücke 1. 4. 3. XML-Erstellung 1. 4. 4. Variablen 1. 4. 5. Fallunterscheidungen 1. 5. Transformation mit XSLT 1. 5. 1. Vorlagen 1. 5. 2. Kontrollanweisungen 1. 5. 3. Variablen und Parameter 1. 5. 4. XSLT im Zusammenhang 2. Relationale Abfrageergebnisse als XML 2. 1. ISO-Standard: SQL/XML-Funktionen 2. 1. 1. Einfache Abfragen 2. 1. 2. Weitere Dokumentangaben 2. 1. 3. Komplexe Abfragen http://www.comelio-medien.com/buch-katalog/oracle/oracle_und_xml
27
28
28
33
35
38
40
46
52
55
60
60
67
68
71
72
74
76
80
80
81
82
89
91
95
98
99
102
108
112
5
Inhaltsverzeichnis
2. 1. 4. SQL/XML-Abfragen verarbeiten 2. 1. 5. Bewertung der SQL/XML-Funktionen 2. 2. Oracle 8i: Abfragen mit DBMS_XMLQUERY 2. 2. 1. Paketstruktur 2. 2. 2. Abfrageverarbeitung 2. 3. Oracle 9i/10g: Abfragen mit DBMS_XMLGEN 2. 3. 1. Paketstruktur 2. 3. 2. Abfrageverarbeitung 2. 3. 3. Komplexe Abfragen 2. 4. 9i/10g/11g: Oracle-spezifische SQL-Funktionen 2. 4. 1. Erzeugung von einfachen Elementen 2. 4. 2. Einsatz von Objekt- und Tabellentypen 2. 4. 3. Erzeugung von Aggregaten 2. 4. 4. XML-Dokumentvorgaben 119
124
125
126
131
133
133
135
138
146
146
147
152
153
3. XML Verarbeitung mit PL/SQL 3. 1. XML-Parser und das DBMS_XMLPARSER-Paket 3. 1. 1. Aufbau des Pakets 3. 1. 2. Beispiel 3. 2. Verwendung des DOM mit DBMS_XMLDOM 3. 2. 1. Allgemeiner Aufbau des Pakets 3. 2. 2. Methoden im Einsatz 3. 2. 3. Beispiele 3. 3. Verwendung von XSLT mit DBMS_XSLPROCESSOR 3. 3. 1. Aufbau des Pakets 3. 3. 2. Beispiel 158
158
159
161
163
163
168
210
220
221
226
4. XML in Oracle speichern 4. 1. Einführung 4. 1. 1. Zielsetzung 4. 1. 2. Struktur der Beispieldaten 4. 1. 3. Übersicht der Speichermöglichkeiten 4. 2. Realisierung einer Import-/Export-Schnittstelle 4. 2. 1. Export 4. 2. 2. Import 4. 3. Speicheransätze 4. 3. 1. Einsatz des Dateisystems 4. 3. 2. Relationale Speicherung 4. 3. 3. Objektrelationale Speicherung 237
237
238
240
245
246
247
252
257
257
258
260
6
http://www.comelio-medien.com/buch-katalog/oracle/oracle_und_xml
Inhaltsverzeichnis
4. 3. 4. Einsatz von XMLType 4. 3. 5. De-/Serialisierung von Objekten 262
265
5. XML Schema-basiertes XML 5. 1. DBMS_XMLSCHEMA 5. 1. 1. XML Schema registrieren 5. 2. Speicherstrukturen und XML Schema generieren 5. 2. 1. XML Schema entwickeln 5. 2. 2. Katalog-Sichten 5. 3. Schemabasierte Speicherung 5. 3. 1. XML Schema und XML-Speicherung 5. 3. 2. Fortgeschrittene Speicheroptionen 5. 4. Einführung Oracle XDB 5. 4. 1. Grundsätzliches zur XML-Datenbank 5. 4. 2. Verwaltung mit dem Paket DBMS_XDB 5. 4. 3. Katalog-Sichten 5. 4. 4. RESOURCE_VIEW und PATH_VIEW 271
271
272
277
288
294
295
295
302
307
307
310
323
326
6. XML-Datentyp XMLType 6. 1. Einsatz in Tabellen und Spalten 6. 1. 1. Allgemeine Unterprogramme 6. 1. 2. Verwendung bei der Datenerfassung 6. 1. 3. Verwendung bei Abfragen 6. 1. 4. Verwendung bei Manipulation 6. 2. DBMS_XMLSTORE 6. 2. 1. Aufbau des Pakets 6. 2. 2. Beispiele 6. 3. XML Schema und XSLT 6. 3. 1. Transformation von XMLType 6. 3. 2. Validierung von XMLType 6. 4. XMLType-Sichten 6. 4. 1. Erzeugung von Sichten ohne XMLSchema 6. 4. 2. Erzeugung von Sichten mit XML Schema 334
335
335
338
339
345
353
354
356
362
363
367
371
372
373
7. Webservices 7. 1. Grundlagen und Architektur 7. 1. 1. Definition 7. 1. 2. Architektur 7. 1. 3. Technologien von Webservices 376
376
377
379
382
http://www.comelio-medien.com/buch-katalog/oracle/oracle_und_xml
7
Inhaltsverzeichnis
7. 1. 4. Einsatzmöglichkeiten und Szenarien 7. 1. 5. Webservice-Modelle 7. 2. Umsetzung in Oracle 7. 2. 1. Architektur 7. 2. 2. SOAP 7. 2. 3. WSDL 7. 3. Webdienste erstellen 7. 3. 1. Einrichtung 7. 3. 2. Funktionen/Prozeduren als Webservices 7. 3. 3. SQL-Anweisungen über Webservices 8
385
390
396
396
399
405
421
422
424
429
http://www.comelio-medien.com/buch-katalog/oracle/oracle_und_xml
Vorwort
Vorwort
Vorwort
Herzlich Willkommen zu einem Fachbuch aus dem Comelio Medien-Verlag. Wir
sind stets bemüht, Ihnen aktuelle Informationen rund um IT-Technologien in beispielorientierter und verständlicher Weise zu liefern, damit Sie auf diesem Wege
in die Lage versetzt werden, Anforderungen mit neueren Werkzeugen als den bisherigen umzusetzen.
Zu dieser Reihe
Diese Buchreihe widmet sich aus der Sicht der Softwareentwicklung dem Datenbanksystem Oracle, wobei in Büchern, die nicht notwendigerweise das Format
von großen Betonblöcken erreichen sollen, wie dies bei zusammenfassenden
Werken oft der Fall ist, spezielle Themen zum Oracle-Einsatz behandelt werden
sollen. Dies betrifft die Themen XML-Verarbeitung, Internetanwendungen / Web
Services und die Verwendung von PL/SQL und SQL sowie objektrelationale Techniken. In die einzelnen Themengebiete soll – je nach Notwendigkeit – kurz eingeführt werden, ohne eine Lektüre für Anfänger sein zu wollen. Stattdessen richten
sich bis auf unser Oracle SQL-Buch alle Veröffentlichungen an Softwareentwickler,
die bereits Kenntnisse mit dem Oracle-Datenbanksystem haben und sich spezialisierte Kenntnisse aus einzelnen Bereichen aneignen wollen.
Zu dieser Reihe gehören die folgenden Bücher:
●● Oracle PL/SQL, ISBN 978-3-939701-40-8
●● Oracle SQL, ISBN 978-3-939701-41-5
●● Oracle PL/SQL - Objekte und Objektrelationale Techniken,
ISBN 978-3-939701-42-2
●● PHP und Oracle, ISBN 978-3-939701-01-9
10
Vorwort
Zu diesem Buch
In diesem Buch stellen wir Ihnen den Einsatz von XML im Oracle-Datenbanksystem
vor, wobei wir davon ausgehen, dass Sie mit SQL und PL/SQL schon Erfahrung
haben, XML für Sie allerdings eine neue Welt ist und Sie nun die Aufgabe erhalten
haben, für eine Anwendung XML in verschiedenen Varianten mit der Datenbank
zu verwenden.
Vorteile von XML
XML bietet eine Reihe von Vorteilen, welche die schnelle und umfassende Verbreitung sehr gefördert haben. Teilweise befürchten insbesondere Datenbankprogrammierer und Administratoren, XML könnte in irgendeiner Weise eine Datenbank ersetzen. Ab und an trifft man auch auf Verantwortliche, die eine solche
Überlegung pflegen oder wenigstens grundsätzlich erwogen haben. Dazu wird
es nicht kommen. Vielmehr haben sich, wie man in den letzten Jahren gut gesehen hat, die großen DB-Hersteller wie Oracle, Microsoft und IBM in ihren Datenbanksystemen einen neuen XML-Datentyp eingeführt, der es den DB-Produkten
ermöglicht, sich diese neue Technologie der Datenspeicherung und –abbildung
gleichfalls einzuverleiben.
Zu den gerade genannten Vorteilen von XML im Gegensatz zu CSV und insbesondere sonstigen Protokollformaten zählen u.a. die folgenden:
●● Einfachheit: XML ist, wenn man sich grundlegend damit beschäftigt, ein sehr
einfacher Standard, der durch die starke Verbreitung von HTML nur wenig
Neues für HTML-versierte Entwickler bietet. Damit ist allerdings auch schon
die erste Problemstelle aufgedeckt, denn mehr als die spitzen Klammern,
die Verwendung von Attributen und der korrekten Verschachtelung haben
HTML und XML nichts gemeinsam. Stattdessen dient XML dem allgemeinen
Datenaustausch und der ebenso allgemeinen Datenmodellierung. Doch die
Ähnlichkeit mit einer noch einfacheren Syntax und die gute Lesbarkeit von
XML-Strukturen im Gegensatz zu Protokollen begünstigen eine starke und vor
allen Dingen schnelle Verbreitung. HTML bzw. seine wohlgeformte Variante
XHTML dagegen entspricht einer gegebenen Modellierung von Strukturen in
XML, die für die Inhaltspräsenation in so genannten Browser-Programmen
eingesetzt werden kann.
11
Vorwort
●● Vielseitiger Einsatz: Da – wie gerade schon erwähnt – XML für die Datenmodellierung und den Datenaustausch eingesetzt werden kann, ist es ebenso
vielseitig verwendbar wie eine Datenbank. Praktisch überall dort, wo Daten
anfallen, ausgetauscht und verarbeitet werden, lässt sich eine Lösung grundsätzlich auch in XML denken. Aus technischen Einschränkungen heraus oder
aufgrund von zusätzlichen Anforderungen ist dies nicht immer die endgültige Wahl, doch ließe sich wenigstens eine Alternativ-Lösung in XML denken.
Dies liegt nicht daran, dass XML besondere Fähigkeiten hat, sondern schlichtweg daran, dass es eine gute Möglichkeit ist, Daten zu verarbeiten. Nichtsdestotrotz wird man für allereinfachste Datenaustauschziele weiterhin auch
kommagetrennte Werte verwenden oder aus XML heraus solche CSV-Werte
erstellen oder den umgekehrten Weg beschreiten und aus CSV-Daten XMLStrukturen generieren müssen. Vielseitige Verwendung für Daten in Textform
oder mit notwendigen Verschachtelungen und komplexen Strukturen, die in
relationalen Datenbanken nicht akzeptabel abgebildet werden können, zeichnen XML aus. Gerade hinsichtlich des Datenaustauschs zwischen verschiedenen Datenbanken gibt es viele gemischte Lösungen, die gleichzeitig XML
und Text in Form von CSV oder auch SQL verwenden. Dabei werden oft die
verschiedenen Textformate aus XML-Srukturen heraus generiert.
●● Gute Lesbarkeit: Im Gegensatz zu kommagetrennten Werten oder gar Protokollen, welche Daten durch XML-ähnliche Steuerzeichen trennen, bietet XML
im Normalfall eine schnell zu verstehende Lesbarkeit. Lange Dokumente oder
tief verschachtelte Strukturen eignen sich zwar nicht notwendigerweise für
eine direkte Lektüre ohne Transformation in ein tabellen- oder listenorientiertes Format, aber bei gut gewählten Bezeichnern und einem grundlegenden
Verständnis des Themas oder der modellierten Datenstrukturen wird eine
XML-Datei durch die Auszeichnung mit Hilfe der XML-Tags immer einfacher
und besser zu lesen sein als kommagetrennte Werte ohne Auszeichnung oder
Protokolldaten mit kryptischen Steuerzeichen. Ein frühes Gegenargument,
das bei der Verwendung von XML auftauchte, beruhte darauf, dass durch die
Auszeichnung der Daten sehr viel Speicherplatz einer Datei allein für die Datendarstellung und –aufbereitung verwendet wird. Dies ist unter den beiden
Stichwörtern Nutzdaten und Beschreibungsdaten bekannt. Sind dazu diese
Daten auch noch sehr kurz, kann der Fall eintreten, dass sogar mehr Dateispeicherplatz für die XML-Strukturen verwendet wird als für die eigentlichen
Daten. Dies sollte allerdings bei heutiger Festplattengröße sowie Netzwerkübertragungsgeschwindigkeit einen zu vernachlässigenden Aspekt darstellen.
XML-Daten sind natürlich nur dann gut lesbar, wenn die XML-Tags, welche
12
Vorwort
die Daten auszeichnen, für den Leser verständlch sind. Gerade in speziellen
Anwendungen im Finanz-, Wissenschafts- oder Technikbereich benötigt ein
dem Gebiet grundsätzlich fern stehender Leser dann eine entsprechende
Übersetzungshilfe in Form einer Dokumentation des Datenmodells. Es entfällt
allerdings das bei CSV-Daten übliche Zählen (und vor allen Dingen Verzählen)
von Positionen, was gerade bei breiten Strukturen mit vielen einzelnen Feldern Hürden für die Datenzugänglichkeit aufbaut.
●● Standardisierung: Protokolldaten in unterschiedlichen Systemen bzw. Industriezweigen beruhten und beruhen natürlich auch heute noch auf Standardisierungsabkommen zwischen Unternehmen und Organisationen. XML oder
das W3C bieten auch keine Möglichkeiten, Datenstrukturen für jedweden
Einsatzbereich einfach von der W3C-Webseite herunterzuladen und direkt
weiterzuverwenden, aber der Grundansatz und das theoretische Fundament
von XML sowie angrenzende Technologien wie XML Schema, XSLT, RDF oder
XML Topic Maps liegen jeweils als Standards vor. Viele Industriezweige besitzen Schemata für ihre Datenstrukturen, welche weit verbreitet sind und sich
auch gut verwenden lassen. Im Gegensatz zu Protokollen, in denen zumindest
dieser Zustand auch vorherrscht(e), bietet die Verwendung von XML mit XSLT
eine wirklich sehr einfache Möglichkeit, Daten auszutauschen und in andere
Formate zu transformieren bzw. über das gesamte Namensraumkonzept auch
Daten mit gleicher Auszeichnung oder fremden Strukturen zu mischen und
weiterhin getrennt zu adressieren und zu verarbeiten. Die Vorteile der Standardisierung bei XML liegen also im Wesentlichen nicht darin, dass es eine
große Auswahl an Standard-Schemata gibt, sondern vielmehr, dass die Grundkonzeption (XML selbst), die einfache Datenmodellierung (XML Schema), die
semantische Datenmodellierung (RDF, XTM, OWL), die Adressierung (XPath,
XQL) sowie die Transformation (XSLT, XSL-FO) herstellerungebunden vom
W3C durchgeführt werden. Die Herstellerungebundenheit darf natürlich nicht
überschätzt werden, weil die bedeutenden IT-Unternehmen mit entsprechender Marktmacht selbstverständlich alle auch im W3C Mitglied sind und dort
auch Einfluss ausüben. Doch zumindest handelt es sich um ein Gremium, das
nicht durch schiere Marktmacht dominiert wird, sondern seine Entscheidungen in einem Prozess trifft, in dem viele Parteien eingebunden sind. Neben
dieser Standardisierung, welche die Basisarchitektur und damit die allgemeinen Bereiche Modellierung, Validierung, Abfrage und Umwandlung betrifft,
gibt es eine Reihe von Versuchen, für bestimmte Sinnzusammenhänge Referenzmodelle und sogar feste Standards zu etablieren, welche den Datenaustausch noch weiter vereinfachen, da eine Umwandlung komplett entfällt.
13
Vorwort
Man kann nicht erwarten, dass jeder Datenbereich überhaupt beschrieben
wurde oder gar so gut modelliert wurde, dass die Modellierung exakt für das
eigene Problem genutzt werden kann. Doch lohnt sich immer die Überlegung,
ob möglicherweise ein solcher Standard existiert, um wenigstens Anregungen
und Denkanstöße zu erhalten. Teilweise droht man allerdings auch, das Rad
neu zu erfinden, sodass eine Kontrolle, ob ein Modellierungsversuch vorliegt,
teilweise auch zu der Erkenntnis führt, dass andere Organisationen (Unternehmen, Regierungen und sonstige Körperschaften) bereits umfangreiche
Modellierungsarbeiten geleistet haben und daher die Entscheidung, einen
eigenen Weg zu gehen, bereits erfordert, für dieses Verhalten eine gute Begründung zu finden.
Aufgabenstellungen mit XML-Einsatz
Als Programmierer oder Administrator müssen Sie sich zu verschiedenen Gelegenheiten mit dem Thema dieses Buchs beschäftigen. In den Seminaren, die wir zu
diesem Thema durchführen, nennen Teilnehmer immer wieder die nachfolgenden
Aufgabenstellungen. Besonders auffällig ist, dass nur eine diffuse Vorstellung über
den Sinn und Zweck von XML besteht und – was erschwerend für die Lösung der
Aufgabe hinzukommt – neues Wissen sowohl im Bereich von allgemeinen XMLTechnologien und –Denkansätzen wie zwangsläufig auch bei der Verwendung in
Oracle erworben werden muss.
●● Erstellung einer Import-/Export-Schnittstelle auf Basis von XML, wobei aus
relationalen Daten XML-Daten in einem bestimmten Format aus der Datenbank exportiert und XML-Daten in einem bestimmten Format in die Datenbank importiert werden sollen. Dabei müssen Sie für den Export-Vorgang mit
Hilfe von Abfragen oder geeigneten Programmen relationale Daten mit sich
wiederholenden Datensätzen, Verknüpfungen und Hierarchien in Form von
XML zusammensetzen, während beim Import-Vorgang dagegen eine Zerlegung von XML stattfinden muss, um die vorhandenen relationalen Strukturen
direkt aus XML zu befüllen.
●● Integration von XML in der Datenbank, wobei nun einzelne Felder oder der
gesamte Datensatz einer Tabelle in Form von XML aus einer Anwendung oder
einem Import-Vorgang übernommen werden. Hierbei liegt die Aufgabenstellung so, dass man für ausgewählte Datenelemente keine relationale Zerlegung wünscht oder aufgrund von eher dokumentenorientierten Strukturen
14
Vorwort
auch nicht erreichen kann und XML hier anstelle von binären großen Objekten
oder langen Zeichenketten zum Einsatz kommt, da die XML-Verwendung für
die Anwendungsentwicklung eine Reihe von Vorteilen bringt.
●● Erstellung und Bereitstellung von Webservices direkt aus der Datenbarnk heraus, wobei gerade vermieden werden soll, dass in Java, .NET oder .PHP eine
eigene Webservice-Anwendung programmiert wird, die dann wiederum auf
die Datenbak zugreift. In diesem Fall kann man Webservices direkt mit Hilfe
des Oracle-Systems erstellen und veröffentlichen.
●● Verwendung der Oracle XML-Datenbank zur Speicherung von umfangreichen
Text- und Datensammlungen in XML, wobei hier gerade keine selbst geschriebene Verwaltungssoftware oder gar eine von einem anderen Hersteller zusätzlich gekaufte XML-Datenbank verwendet werden soll. In disem Aufgabenfeld geht es darum, für ein Redaktionssystem oder ähnliche Systeme, die Artikel oder sonstige Texte in XML-Form speichern, geeignete Datenstrukturen
zu finden und diese ordnerorientiert, mit Sicherheit und Prüfmechanismen
versehen anzubieten.
●● Allgemeine Verarbeitung von XML, wobei in diesem Aufgabengebiet eine
Reihe von allgemeinen Arbeiten durchgeführt werden, die sich typischerweise bei XML-Anwendungen stellen und in diesem Fall mit Hilfe der Programmiersprache PL/SQL und teilweise sogar nur Oracle SQL umgesetzt werden
können. Zu diesen Standardaufgaben gehören: Validierung von XML-Daten
auf Basis von XML Schema-Datenstrukturen und –regeln, Transformation und
Verarbeitung von gespeicherten oder übernommenen XML-Inhalten mit den
Werkzeugen DOM (Document Object Model) oder XSLT (eXtensible Stylesheet Language for Transformations) sowie die Durchführung von Abfragen
auf XML-Daten unter Verwendung von XPath oder XQuery. Zusätzlich bietet
das Oracle-System noch weitere eigene Werkzeuge an, welche die gerade
genannten Standard-Werkzeuge, die in vielen Programmiersprachen und Datenbanken umgesetzt sind, ergänzen und für jede Anforderungen in der einen
oder anderen Weise eine Lösung bieten.
15
Vorwort
Themen nach Kapiteln
Die Themen der einzelnen Kapitel werden im Folgenden kurz aufgelistet:
1. Das erste Kapitel stellt als Einstiegskapitel XML-Technologien allgemein mit
den Daten der Beispieldatenbank dar. Es startet mit der klassischen DTD (Document Type Definition) als erster Modellierungs- und Beschreibungstechnik
für XML-Daten und stellt dann auf Basis der Technik der DTD die Unterschiede, Vorteile und neuartigen Ansätze von XML Schema dar. XML Schema ist
auch die Technologie, mit der in Oracle XML-Daten beschrieben und validiert
werden können, wenn man sich dafür entscheidet, typisiertes XML zu verwenden und nicht einfach beliebige XML-Strukturen zuzulassen. Für die Abfrage von XML-Daten folgen dann die Pfadbeschreibungssprache XPath und
die relativ komplexe Abfragesprache XQuery. Mit XPath ist es möglich, innerhalb von XML-Dokumenten zu navigieren und entweder vom Wurzelelement
oder jedem beliebigen Knoten aus andere Knoten zu lokalisieren, zu filtern
und eine Reihe von Funktionen einzusetzen. Die XPath-Ausdrücke können in
SQL eingesetzt werden, um Teile von XML-Daten abzurufen oder komplexe
Filter vorzugeben. Man setzt diese Technik allerdings auch in XML Schema für
die Angabe von Schlüsseln und Fremdschlüsseln ein. Die Umwandlung von
XML-Daten mit Hilfe des DOM (Document Object Model) und XSLT (eXtensible Stylesheet Language for Transformations) lässt sich ebenso einsetzen. Es
dient in vielen Anwendungen als Ausdruckssprache, um dem Benutzer komplexe Filter oder Bedingungen zu ermöglichen. XQuery dagegen kombiniert
Filterung und Auswahl mit einer verkürzten und nicht XML-basierten Syntax,
um die gefundenen Strukturen auch unmittelbar wieder in XML umzuwandeln. Während XPath eine Ergebnismenge mit unterschiedlichen Inhalten in
Form von Knoten, Knotensätzen oder Zeichenketten und Zahlen liefert, kann
man mit XQuery unmittelbar ein XML-Ergebnis erzeugen. Schließlich stellt
dieses Kapitel noch die Technik XSLT vor, mit der es möglich ist, neue Dokumente in Form von XML, HTML oder Text zu erzeugen. Dabei setzt man eine
programmiersprachenähnliche Syntax in XML-Form ein, die man als deklarative Sprache bezeichnet.
2. Das zweite Kapitel beschreibt, wie eine der wesentlichen Anforderungen
beim XML-Einsatz in Oracle umgesetzt wird: den Datenabruf von relationalen Daten und die Erzeugung von XML-Ausgabedaten in einer ad-hoc-Abfrage
oder einer Sicht. Oracle bietet in diesem Bereich verschiedene Möglichkeiten,
die sich hinsichtlich Geschwindigkeit und Komplexität der Formulierung un-
16
Vorwort
terscheiden. In diesem Kapitel lernt man sowol die Techniken kennen, die sofort aus einer SQL-Abfrage heraus XML erzeugen, wie auch die Durchführung
der gleichen Aufgabenstellung in PL/SQL.
3. Das dritte Kapitel konzentriert sich ganz auf PL/SQL und die Verarbeitung von
XML. Hier gibt es eine Vielzahl an möglichen Techniken, von denen insbesondere die beiden W3C-Techniken DOM und XSLT ins Auge fallen, die in PL/SQL
genauso umgesetzt sind wie in vielen anderen Programmiersprachen. Dazu
gibt es allerdings auch eine Reihe von PL/SQL-Paketen, die entweder für den
Einsatz der beiden genannten Standardtechnologien notwendig sind, oder
die ein eigenes Angebot bieten, mit XML-Daten zu arbeiten, sie zu manipulieren und sie umzuwandeln.
4. Das vierte Kapitel setzt den Fokus auf das wichtige Thema Import und Export. Es gibt eine Reihe von traditionellen und nicht nur in Oracle einsetzbaren Techniken, mit XML umzugehen und insbesondere XML somit relational
oder objektrelational zu zerlegen, sodass man noch nicht direkt XML in einer
traditionellen Datenbank speichern muss. Das Kapitel diskutiert verschiedene
Speicheransätze, in denen XML relational zerlegt wird oder in denen mehr
oder weniger große Teile in speziellen Datentypen und selbstverständlich
auch den XML-Datentyp gespeichert werden. Die Erläuterungen in diesem
Kapitel sollen eine Sensibilität für den großen Gestaltungsspielraum bewirken, mit der dann in der konkreten Modellierungssituation eine passende Variante ausgewählt wird.
5. Das fünfte Kapitel setzt die Überlegungen des vierten Kapitels insoweit fort,
als dass die Oracle XDB (XML Datenbank) als eigenständige Möglichkeit zur
direkten, nativen und nicht auf Tabellen basierenden Speicherung von XMLDaten (Dateien, Dokumenten) vorgeführt wird. Für dokumentenorientierte
Systeme (Redaktionssysteme, Archive) ist dies eine geeignete Möglichkeit,
mit Oracle eine XML-Datenbank im ursprünglichen Sinne aufzubauen und
eine Reihe von Oracle-Techniken für Sicherheit und Geschwindigkeit zu verwenden und sich darüber hinaus in der gewohnten Umgebung zu bewegen.
6. Das sechste Kapitel rückt den wesentlichen Datentyp, mit dem die XML-Verwendung in Oracle mit PL/SQL und SQL überhaupt erst denkbar ist, in den
Mittelpunkt: XMLType. Im Gegensatz zu einer langen Zeichenkette oder einem großen Binärobjekt erlaubt XMLType die Abfrage und Filterung mit XPath
und XQuery, die Umwandlung mit XSLT, die Validierung mit XML Schema so-
17
Vorwort
wie die Verarbeitung mit einer Reihe von speziellen SQL-Funktionen und PL/
SQL-Paketen. Seine Fähigkeiten sind schon in den vorherigen Kapiteln immer
mal wieder in Beispielen vorgeführt worden, doch im sechsten Kapitel erhält
XMLType eine Bühne, in der die verschiedenen Möglichkeiten und Vorteile
gesammelt, erläutert und zusammengefasst werden.
7. Das siebte Kapitel schließt das Buch mit dem neu in Oracle 11g eingeführten Thema Webservices ab. Es beginnt mit einer Einführung in den Grundgedanken, der hinter dem Themenkomplex serviceorientierte Anwendungsentwicklung und verteilte Software steht und beschreibt dann kurz Einsatzbereiche sowie die beiden entscheidenden Standards, die auch in Oracle
zum Einsatz kommen. Neben XML Schema, das auch für die Validierung der
zwischen Service und Klient ausgetauschten XML-Nachrichten Verwendung
findet und bereits eingeführt wurde, handelt es sich dabei um die Standards
WSDL (WebServices Description Language) und SOAP (Akronym ohne offizielle Auflösung). WSDL-Dokumente beschreiben in technischer und inhaltlicher
Sicht einen Webdienst, werden typischerweise vom Server generiert und in
Klienten-Programmen verwendet, um die Struktur von Nachrichten und Kommunikationsadressen auszulesen und korrekt zu verwenden. In vielen Programmiersprachen stehen auf Basis dieser Datei Hilfsmittel zur Verfügung, die
Nachrichten nicht direkt in XML, sondern vielmehr in Form von Methoden/
Funktionen aufzurufen und so den Webdienst quasi in die eigene Anwendung
zu integrieren. SOAP dagegen ist ein einfaches XML-Format, welches Nachrichten sammelt und sie im Wesentlichen in einen strukturierten Kopf- und
Hauptabschnitt unterteilt.
18
Vorwort
Beispieldatenbank-Installation
Dieses Buch richtet sich ausdrücklich an Programmierer und möchte ein wirklich
praktischer Helfer sein. Das bedeutet, dass natürlich die einzelnen Skripte für den
Leser auf der Webseite zum Buch verfügbar sind. Manchmal reicht es sogar, nur
die Beispiele zu lesen und sie als Vorgabe für die eigene Aufgabenstellung zu verwenden und nur bei Bedarf die Erklärungen und teilweise auch grafischen Ausführungen heranzuziehen.
Inhalte der Beispieldatenbank
Wir haben uns für dieses Buch – wie auch für unsere anderen Bücher – eine eigene Beispieldatenbank ausgedacht: Die Firma Kurse NRW GmbH bietet EDV- und
IT-Seminare in Bereichen wie Programmierung, Datenbanken oder Webdesign an.
Informationen, die den Bereich der Schulungs- und Anmeldeverwaltung betreffen, sollen automatisch verwaltet werden.
Abbildung 0.1: Datenmodell Kurse NRW
19
Herunterladen