 |
 |
 |
 |
 |
 |
|
 |
Comelio GmbHBerlin Fon: +49(0)30-3640339-80 Fax: +49(0)30-3640339-89 info@comelio.com
Comelio GmbHEssen Fon: +49(0)201-437517-0 Fax: +49(0)201-437517-10 info@comelio.com
Comelio GmbHMünchen Fon: +49(0)89-38156860-0 Fax: +49(0)89-38156860-9 info@comelio.com
Comelio GmbHWien Fon: +43-720-2097-97 Fax: +43-720-2097-98 info@comelio.com
Comelio GmbHZürich info@comelio.com
 |
Comelio-Blog > Oracle > XDB: Konzepte XML DB: Konzepte und Architektur
Dieser Artikel stellt die verschiedenen Möglichkeiten, wie XML in Oracle gespeichert werden kann, kurz vor. Neben traditionellen Speicheransätzen über relationale und objektrelationale Strukturen ist insbesondere seit der Oracle 9i-Version auch die integrierte XML-Datenbank Oracle XDB ein wichtiger Ansatzpunkt für die Entwicklung und Konzeptionierung von XML-Datenbanken.
|
 | Kontakt
|
Einsatz der XML-Datenbank XDB
Oracle bietet eine Vielzahl an Funktionalitäten mit seiner XML-Datenbank XDB, von denen einige bereits in anderen Artikeln beschrieben worden sind. Die XDB beschränkt sich also nicht auf die in diesem Artikel behandelten Themen, sondern beinhaltet gerade auch die bereits vorgestellten Programmierschnittstellen der unterschiedlichen Pakete oder auch den Datentyp XMLType. In diesem Abschnitt möchten wir Ihnen darüber hinaus die Fähigkeit der XDB zeigen, nicht nur aus relationalen Daten XML-Daten zu erzeugen und solche sowie bereits bestehende XML-Daten zu verarbeiten, sondern auch XML-Daten direkt in der Datenbank zu speichern.
Grundsätzliches zur XML-Datenbank
Die folgenden Eigenschaften fasst die entsprechende Dokumentation unter dem Begriff „Repository“ zusammen, weil sich diese Speicherstrukturen sehr von traditionellen Techniken der XML-Speicherung in Datenbanken unterscheiden. Zu solchen Ansätzen gehören die folgenden:
- Einfache Speicherung als BLOB oder CLOB
- Ein XML-Dokument wird als lange Zeichenkette bzw. als Binärobjekt in der Datenbank gespeichert. Hier ist nur beim XMLType-Datentyp auch eine sinnvolle Durchsuchung mit Hilfe von XPath möglich, ansonsten liegt nur eine einfache Speicherung vor.
- Zerlegung von flachen XML-Strukturen in mehrere Spalten
- Für sich nicht-wiederholende Gruppen und sehr einfache Strukturen, die nur aus Eltern-Kind-Beziehungen auf einer einzigen Ebene bestehen, speichert man jeweils ein Dokument in einer Tabellenzeile, wobei die Spalten den Kind-Elementen entsprechen.
- Zerlegung von XML-Strukturen in mehrere Tabellen
- Für verschachtelte XML-Dokumente und sich wiederholende Gruppen können Sie für die einzelnen Eltern-Elemente, die wiederholende Kind-Elemente enthalten, jeweils eine Tabelle mit jeweils einer Zeile für die zugehörigen Kinder verwenden.
- Objektrelationale Speicherung
- Im Gegensatz zu der Zerlegung von XML-Strukturen in eine oder mehrere Tabellen lassen sich insbesondere in Oracle auch objektrelationale Strukturen verwenden. Hier stellen Eltern-Elemente, die weitere Kind-Elemente und auch sich wiederholende Kind-Elementgruppen enthalten, Felder dar, die auf Objekttypen (mehrere Felder) oder Tabellentypen (mehrere Reihen) beruhen.
- Kombinationsmöglichkeiten
- Sofern sich das XML-Dokument nicht mit den gerade skizzierten Speicheransätzen abbilden lässt, eignen sich unterschiedliche Möglichkeiten der Kombination von teilweise relationaler und objektrelationaler Speicherung. Diese Kombinationen lassen sich dann wieder durch Speicherstrukturen abrunden, die im Gegensatz zu ihnen nicht mit SQL, sondern wie der XMLType mit XPath oder wie Binärdaten gar nicht durchsucht werden können.
Der allgemeine Speicheransatz für die XML-Datenbank besteht in einer Baumstruktur aus Ordnern und Dokumenten. Beide lassen sich jeweils auch wieder als Ressource betrachten bzw. über die gleichen Funktionen und Prozeduren ansprechen. Dies vereinfacht die Arbeit mit der verwendeten Baumstruktur.
Zusammenfassend gesagt, stellt die XDB gerade keinen eigenen Server oder ein eigenes Produkt dar, sondern bietet eine Reihe von zusätzlichen Oracle-Technologien, die für die Verarbeitung und Speicherung von XML-Daten notwendig und nützlich sind. Dies wird durch die Integration von Standardtechnologien wie XSLT, XML Schema, XPath und DOM abgerundet, die sich für die Datenmodellierung, Abfrage und Transformation nutzen lassen. Einige dieser zusätzlichen und Standard-Technologien wurden bereits vorgestellt. Sie gelten als zentrale Bestandteile des gesamten Konzepts und bauen vor allen Dingen auch auf dem XMLType-Datentyp auf. Zwar lassen sich viele kurze XML-Dokumente auch in Form von CLOBs oder Zeichenketten verarbeiten, doch durch die XMLType-Methoden, die die direkte Transformation, Abfrage und Validierung erlauben, besitzt man einen geeigneten Datentyp für die Datenbank und die Anwendungsentwicklung.
Für die Speicherung von XML-Daten steht ein baumartiges Ordner-Konzept zur Verfügung, das aus einem sys-Ordner sowie einem public-Ordner besteht. Beide Ordner stehen standardmäßig zur Verfügung, wobei nur der sys-Ordner unverändert bleiben sollte und für die Speicherung von eigenen Daten (wie der Name schon vermuten lässt) nicht geeignet ist. Der public-Ordner bzw. seine zusätzlich einrichtbaren Geschwister oder Ersatzordner dienen zur Speicherung von eigenen XML-Daten, wobei eine für die Anwendung geeignete Ordnerstruktur vorgegeben werden kann. Dies alles ergibt konzeptionell einen azyklischen Graphen (Baum), den man mit Hilfe einer einfachen Pfad-Syntax (Schrägstrich) durchqueren kann und der „Repository“ genannt wird. Die enthaltenen Ordner und Dokumente gelten beide als Ressourcen des Repository und lassen sich – wie Sie später sehen werden – über die gleichen Funktionen und Prozeduren ansprechen. Grundsätzlich gelten für die Benennung von Ordnern und Ressourcen die gleichen Benennungskonventionen wie für andere Schema-Objekte. Nähere Regeln sowie nicht erlaubte Zeichen finden Sie in der xdbconfig.xml-Datei im Element invalid-pathname-chars.
Zusätzliche Bedingungen für den Einsatz sind: Die Ressourcen oder Links (Verknüpfungen zu einer Ressource) müssen innerhalb eines Ordners einzigartig sein, wie es auch im Betriebssystem der Fall ist. Die einzelnen Dokumente enthalten XMLType-Daten, wenn sie strukturierte Daten enthalten, und ansonsten XDBBinary-Daten, wenn sie unstrukturierte Daten aufweisen. Der Zugriff und damit die Dateizugriffsrechte werden über eine so genannte Access Control List (ACL) in XML-Form vorgegeben.
Innerhalb von XDB setzt das System drei spezielle XML Schema-Dateien ein, auf die später noch verwiesen wird. Ihr Quelltext ist in der Dokumentation zu finden:
- XDBResource.xsd: XML Schema zur Darstellung von Ressourcen, die durch gültige Instanzdokumente beschrieben werden.
- acl.xsd: XML Schema zur Angabe von Benutzer- und Zugriffsrechten, die über gültige Instanzdokumente erfasst werden.
- xdbconfig.xsd: XML Schema für die Konfiguration von XDB, die über gültige Instanzdokumente erfolgt.
Comelio GmbH Oracle XDB: XML DB - XML DB Programmierung Architektur Aufbau Beratung Anleitung Manual SQLJ Programmierung Oracle Tutorial Datenbank-Entwicklung PL/SQL XML Java -Comelio GmbH Oracle XDB: XML DB - XML DB Programmierung Architektur Aufbau Beratung Anleitung Manual SQLJ Programmierung Oracle Tutorial Datenbank-Entwicklung PL/SQL XML Java -Comelio GmbH Oracle XDB: XML DB - XML DB Programmierung Architektur Aufbau Beratung Anleitung Manual SQLJ Programmierung Oracle Tutorial Datenbank-Entwicklung PL/SQL XML Java -Comelio GmbH Oracle XDB: XML DB - XML DB Programmierung Architektur Aufbau Beratung Anleitung Manual SQLJ Programmierung Oracle Tutorial Datenbank-Entwicklung PL/SQL XML Java -Comelio GmbH Oracle XDB: XML DB - XML DB Programmierung Architektur Aufbau Beratung Anleitung Manual SQLJ Programmierung Oracle Tutorial Datenbank-Entwicklung PL/SQL XML Java -Comelio GmbH Oracle XDB: XML DB - XML DB Programmierung Architektur Aufbau Beratung Anleitung Manual SQLJ Programmierung Oracle Tutorial Datenbank-Entwicklung PL/SQL XML Java -Comelio GmbH Oracle XDB: XML DB - XML DB Programmierung Architektur Aufbau Beratung Anleitung Manual SQLJ Programmierung Oracle Tutorial Datenbank-Entwicklung PL/SQL XML Java -Comelio GmbH Oracle XDB: XML DB - XML DB Programmierung Architektur Aufbau Beratung Anleitung Manual SQLJ Programmierung Oracle Tutorial Datenbank-Entwicklung PL/SQL XML Java -Comelio GmbH Oracle XDB: XML DB - XML DB Programmierung Architektur Aufbau Beratung Anleitung Manual SQLJ Programmierung Oracle Tutorial Datenbank-Entwicklung PL/SQL XML Java -
|
 |