In den folgenden Abschnitten werden die Planungsaufgaben für XML-Spalten beschrieben.
Nachdem Sie eine Zugriffs- und Speichermethode ausgewählt haben, können Sie festlegen, ob Ihre Daten geprüft werden sollen, und Sie können die DAD angeben. Für die Prüfung der XML-Daten verwenden Sie eine DTD. Die Verwendung einer DTD stellt sicher, daß das XML-Dokument gültig ist, und sie ermöglicht die Ausführung einer strukturellen Suche in Ihren XML-Daten. Die DTD wird im DTD-Repository gespeichert.
Empfehlung: Prüfen Sie die XML-Daten mit einer DTD, es sei denn, Sie speichern XML-Dokumente zu Archivierungszwecken. Zur Prüfung müssen Sie eine DTD im XML Extender-Repository haben. Im Abschnitt Eine DTD im DTD-Repository speichern finden Sie Informationen dazu, wie Sie eine DTD in das Repository einfügen können.
Sie können Dokumente in derselben XML-Spalte mit verschiedenen DTDs prüfen. Mit anderen Worten: Sie können Dokumente haben, die eine ähnliche Struktur aufweisen und ähnliche Elemente und Attribute enthalten und die doch unterschiedliche DTDs aufrufen. Halten Sie sich beim Verweisen auf verschiedene DTDs an die folgenden Regeln:
Wichtig: Entscheiden Sie vor dem Einfügen von XML-Daten in DB2, ob die Daten geprüft werden sollen. Der XML Extender unterstützt die Überprüfung von Daten nicht, die bereits in DB2 eingefügt wurden.
Überlegungen:
Sie speichern ein XML-Dokument in einer XML-Spalte als UDT. Eine
Übersicht über die verfügbaren UDTs finden Sie in Tabelle 4.
Tabelle 4. Die XML Extender-UDTs
Spalte benutzerdefinierter Typ | Quellendatentyp | Beschreibung der Verwendung |
---|---|---|
XMLVARCHAR | VARCHAR(varchar_len) | Speichert ein vollständiges XML-Dokument als VARCHAR in DB2. |
XMLCLOB | CLOB(clob_len) | Speichert ein vollständiges XML-Dokument als CLOB in DB2. |
XMLFILE | VARCHAR(1024) | Speichert den Dateinamen eines XML-Dokuments DB2 und speichert das XML-Dokument in einer lokalen Datei auf dem DB2-Server. |
Bei der Planung von Seitentabellen müssen Sie berücksichtigen, wie diese Tabellen organisiert sind, wie viele Tabellen erstellt werden sollen und ob eine Standardsicht für die Seitentabellen erstellt werden soll. Diese Entscheidungen basieren auf verschiedenen Punkten: ob die Elemente und Attribute mehrfach vorkommen können sowie auf den Anforderungen zur Leistung der Abfrage.
Wenn ein Dokument mehrere auftretende Standortpfade ausweist, fügt XML Extender eine Spalte DXX_SEQNO des Typs INTEGER in jeder Seitentabelle hinzu, um die Reihenfolge der mehrfach auftretenden Elemente aufzuzeichnen. Mit DXX_SEQNO können Sie eine Liste der Elemente abrufen mit der gleichen Reihenfolge wie im ursprünglichen XML-Dokument; geben Sie hierzu ORDER BY DXX_SEQNO in einer SQL-Abfrage an.
Wenn Sie eine XML-Spalte aktivieren, können Sie eine Standardsicht mit Lesezugriff angeben, die die Anwendungstabelle mit den Seitentabellen über eine eindeutige Kennung, die ROOT ID, verknüpft. Mit der Standardsicht können Sie XML-Dokumente durch Abfrage der Seitentabellen durchsuchen. Beispiel: Sie haben die Anwendungstabelle SALES_TAB und die Seitentabellen ORDER_TAB, PART_TAB und SHIP_TAB:
SELECT sales_person FROM sales_order_view WHERE price > 2500.00
Die SQL-Anweisung gibt den Namen der Vertriebsmitarbeiter (sales_person) in SALES_TAB zurück, die Bestellungen in Spalte ORDER gespeichert haben, für die ein PRICE über 2500.00 eingetragen ist.
Der Vorteil der Abfrage der Standardsicht liegt darin, daß sie eine virtuelle einzelne Sicht der Anwendungstabelle und der Seitentabellen darstellt. Je mehr Seitentabellen erstellt werden, desto aufwendiger ist allerdings die Abfrage. Das Erstellen der Standardsicht wird daher nur empfohlen, wenn die Gesamtzahl der Seitentabellen klein ist. Anwendungen können ihre eigenen Sichten erstellen und dabei die wichtigen Spalten der Seitentabellen verknüpfen.
Eine wichtige Entscheidung bei der Planung ist, ob Ihr XML-Spaltendokument indexiert werden soll. Diese Entscheidung hängt davon ab, wie häufig auf die Daten zugegriffen werden soll und wie wichtig der Durchsatz bei einer strukturellen Suche ist.
Beim Arbeiten mit XML-Spalten, die vollständige XML-Dokumente enthalten, können Sie Seitentabellen erstellen, die Spalten von XML-Element- oder -Attributwerten enthalten. Anschließend können Sie Indizes zu diesen Spalten erstellen. Sie müssen ermitteln, für welche Elemente und Attribute der Index erstellt werden soll.
Die XML-Spaltenindexierung ermöglicht ein Indexieren von häufig abgefragten Daten mit allgemeinen Datentypen wie Integer, Decimal oder Date, über die native DB2-Indexunterstützung der Datenbanksteuerkomponente. Der XML Extender extrahiert die Werte der XML-Elemente oder Attribute aus XML-Dokumenten und speichert sie in den Seitentabellen, so daß Sie Indizes zu diesen Seitentabellen erstellen können.
Sie können jede Spalte einer Seitentabelle mit einem Standortpfad, der ein XML-Element oder -Attribut und einen SQL-Datentyp kennzeichnet, angeben. Abbildung 8 zeigt eine XML-Spalte mit Seitentabellen.
Abbildung 8. Eine XML-Spalte mit Seitentabellen
Der XML Extender füllt die Seitentabelle automatisch, wenn Sie XML-Dokumente in der XML-Spalte speichern.
Erstellen Sie für eine Schnellsuche Indizes dieser Spalten mit der Technologie der DB2 B-Baumstruktur-Indexierung. Die zum Erstellen eines Index verwendeten Methoden unterscheiden sich je nach dem verwendeten Betriebssystem, und der XML Extender unterstützt diese Methoden.
Sie können beispielsweise einen Index über /Order/Part/ExtendedPrice erstellen und /Order/Part/ExtendedPrice als Datentyp REAL angeben. In diesem Fall speichert der XML Extender den Wert von /Order/Part/ExtendedPrice in der Spalte PRICE in einer Seitentabelle.
Wenn der einzelne Primärschlüssel in der Anwendungstabelle nicht vorhanden ist oder Sie ihn aus irgendeinem Grund nicht verwenden wollen, ändert der XML Extender die Anwendungstabelle und fügt eine Spalte DXXROOT_ID hinzu, in der eine eindeutige ID gespeichert wird, die beim Einfügen erstellt wird. Alle Seitentabellen enthalten eine Spalte DXXROOT_ID mit der eindeutigen ID. Wenn der Primärschlüssel als ROOT ID verwendet wird, haben alle Seitentabellen eine Spalte mit dem gleichen Namen und Typ wie der Primärschlüssel in der Anwendungstabelle, und die Werte des Primärschlüssels werden gespeichert.
Ein Standortpfad ist eine Folge von XML-Befehlen, die ein XML-Element oder -attribut kennzeichnen. Der XML Extender verwendet den Standortpfad in den folgenden Situationen:
Abbildung 9 zeigt ein Beispiel eines Standortpfads und seiner Beziehung zur Struktur des XML-Dokuments.
Abbildung 9. Speichern von Dokumenten als strukturierte XML-Dokumente in einer DB2-Tabellenspalte
Die folgende Liste beschreibt die Syntax des vom XML Extender unterstützten Standortpfads.
Platzhalterzeichen: Sie können einen Stern für ein Element in einem Standortpfad verwenden; dieser Stern steht dann für eine beliebige Zeichenfolge an dieser Stelle.
Einfacher Standortpfad ist eine Folge von
Elementtypnamen, die durch einen einzelnen Schrägstrich (/) verbunden
sind. Die Attributwerte sind hinter dem Elementtyp in eckigen Klammern
angegeben. Die Syntaxbeschreibungen für 3 und 6 in Syntax des Standortpfads beschreiben einfache Standortpfade. Tabelle 5 beschreibt die entsprechende Syntax.
Tabelle 5. Syntax zum einfachen Standortpfad
Element | Standortpfad | Beschreibung |
---|---|---|
XML-Element | /tag1/tag2/..../tagn-1/tagn | Ein Elementinhalt, der von dem Element mit dem Namen tagn und seinen übergeordneten Elementen gekennzeichnet ist. |
XML-Attribut |
/tag_1/tag_2/..../tag_n-1/tag_n/@attr1
| Ein Attribut mit dem Namen attr1 des Elements, das durch tagn und seine übergeordneten Elemente gekennzeichnet ist. |
Der XML Extender weist bei der Definition der Elemente oder Attribute in
der DAD gewisse Einschränkungen zur Verwendung des Standortpfads auf.
Da der XML Extender eine Eins-zu-Eins-Zuordnung zwischen einem Element
bzw. Attribut und einer DB2-Spalte aufweist, erfordert er spezielle
Regeln für den Standortpfad. Tabelle 6 beschreibt die Einschränkungen für den Standortpfad.
Die in der vom Standortpfad unterstützten Spalte angegebenen Nummern beziehen
sich auf die Syntaxdarstellungen in Syntax des Standortpfads.
Tabelle 6. Einschränkungen des XML Extender zur Verwendung des Standortpfads
Verwendung des Standortpfads | Unterstützter Standortpfad |
---|---|
Element in der DAD | 3, 6 (einfacher Standortpfad, siehe Beschreibung in Tabelle 5) |
Extrahieren von UDFs | 1-9 |
Such-UDF des Text Extender | 1-9 |
Für XML-Spalten gibt die DAD in erster Linie an, wie die in einer XML-Spalte gespeicherten Dokumente indexiert werden sollen. Die DAD ist ein XML-formatiertes Dokument, das auf dem Client gespeichert ist. Wenn Sie XML-Dokumente mit einer DTD prüfen wollen, kann die DAD-Datei dieser DTD zugeordnet werden. Die DAD-Datei hat den Datentyp CLOB.
Die DAD-Datei für XML-Spalten enthält eine XML-Kopfzeile, gibt die Verzeichnispfade auf dem Client für die DAD-Datei und die DTD an und bietet eine Übersicht über die XML-Daten, die für die Indexierung in den Seitentabellen gespeichert werden sollen.
Zum Angeben der Zugriffs- und Speichermethode "XML-Spalte" verwenden Sie den folgenden Befehl in der DAD-Datei.
Eine für XML aktivierte Spalte hat den XML Extender-UDT. Anwendungen können die Spalte in einer beliebigen Benutzertabelle enthalten. Sie greifen auf die XML-Spaltendaten vor allem über SQL-Anwendungen und die UDFs des XML Extender zu.
Sie können den XML Extender-Verwaltungsassistenten oder einen Editor zum Erstellen und Aktualisieren der DAD verwenden.