XML und Datenbanken - Die DBS

Werbung
Kapitel 11
Kommerzielle Datenbanksysteme
für die XML-Verarbeitung
IBM DB2 mit XML Extender
Microsoft SQL Server
Oracle
Tamino
Excelon
Poet
Infonyte
Beispiel-Dokumente
<book>
<title>
Datenmodelle, Datenbanksprachen
und Datenbank-Management-Systeme
</title>
<author>
<firstname> Gottfried </firstname>
<lastname> Vossen </lastname>
</author>
<isbn>3-89319-566-1 </isbn>
<publisher> Addison-Wesley </publisher>
<summary>...</summary>
</book>
XML-Dokument book1.xml
<book>
<title> Datenbanken-Handbuch </title>
<editor>
<firstname> Peter C.</firstname>
<lastname> Lockemann </lastname>
</editor>
<editor>
<firstname> Joachim W.</firstname>
<lastname> Schmidt </lastname>
</editor>
<isbn>3-540-10741-X</isbn>
<publisher> Springer Verlag </publisher>
<summary>...</summary>
</book>
XML-Dokument book2.xml
<book>
<title> Objektdatenbanken </title>
<author> Gunter Saake </author>
<author> Can Türker </author>
<author> Ingo Schmitt</author>
<isbn>3-8266-00258-7 </isbn>
<publisher> Thomson </publisher>
<summary>...</summary>
</book>
XML-Dokument book3.xml
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-2
IBM DB2 mit XMLExtender: Architektur
Anwendung
XML-Dokumente
DAD –
Document
Access
Definition
DB2 XML
Extender
IBM DB2
Datenbank
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
DateiDateisystem
Dateisystem
Dateisystem
system
11-3
Speicherungsstruktur:
Abbildung von XML auf Datenbanken
z
Varianten zur Abbildung von XML auf Datenbanken
–
–
z
XML-Column-Ansatz: basiert auf XML-Datentyp
XML-Collection-Ansatz: basiert auf Zerlegung der XML-Dokumente in
Datenbanktabellen und -spalten
Tabellen mit XML-Spalten (Ansatz: XML Column)
–
Diverse XML-Datentypen
„
„
„
–
XML-Dokumente werden als CLOBs gespeichert
XML-Dokumente werden als VARCHARs gespeichert
XML-Dokumente werden im Dateisystem gespeichert
Zusätzliche materialisierte Sichten:
„
„
„
–
XMLCLOB:
XMLVARCHAR:
XMLFILE:
Extraktion von ausgewählten XML-Inhalten aus den Dokumenten
Materialisierung dieser Inhalte in sog. Seitentabellen
Seitentabellen werden in der Document Access Definition (DAD) definiert
Methoden zur Verarbeitung von XML-Dokumenten ergänzen XML-Datentypen
„
besprechen wir später
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-4
Erzeugen der Tabellen mit XML-Typen
und Einfügen von Dokumenten
z
Einrichten der XML-Erweiterungen für die Datenbank über XML Extender
Admin Wizard
z
Definition der Tabellen zur Aufnahme von XML-Dokumenten
–
–
Variante 1: Erzeugen mit dem XML Extender Admin Wizzard
Variante 2: SQL
CREATE TABLE xmltable
(
docid BIGINT,
doctext DB2XML.XMLVARCHAR
)
z
Einfügen von Dokumenten
INSERT INTO xmltable (doctext)
VALUES (DB2XML.XMLVARCHARFromFile('book1.xml'))
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-5
Definition der Abbildung durch eine DAD
mit dem XML-Column-Ansatz
z
Document Access Definition (DAD)
–
z
Beschreibung der Abbildungen zwischen XML und Datenbanktabellen über ein
XML-Dokument, das sog. DAD-Dokument (im Dateisystem)
Syntax für den XML-Column-Ansatz (spezifiziert in DAD.dtd von IBM):
–
Tabellen-Element: <table>
„
–
name="tabname"
Spalten-Element: <column>
„
„
„
z
Attribut Tabellenname:
Attribut Spaltenname:
Attribut Datentyp:
Attribut Pfad im XML-Dokument:
name="colname"
type="typespecifier"
path="XPath-" multi_occurrence="boolean"
Beim Registrieren der DAD (über ein Shell-Programm!!!) werden die
Seitentabellen und Trigger zu deren Wartung automatisch erzeugt
C:\> dxxadm enable_column xmldb xmltable doctext bookstore.dad
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-6
Beispiel für eine XML-Column-DAD
<?xml version="1.0"?>
<!DOCTYPE DAD SYSTEM "dad.dtd">
<DAD>
<validation>NO</validation>
<Xcolumn>
<table name="book">
<column name="publisher" type="varchar(50)"
path="//book/publisher" multi_occurrence="NO"/>
<column name="title" type="varchar(3000)"
path="//book/title" multi_occurrence="NO"/>
<column name="isbn" type="varchar(15)"
path="//book/isbn" multi_occurrence="NO"/>
</table>
<table name="author_ln">
<column name="lastname" type="varchar(200)"
path="//book/author/lastname" multi_occurrence="YES"/>
</table>
Autoren können in den
</Xcolumn>
Dokumenten mehrfach
</DAD>
auftreten
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-7
XML-Column-Ansatz für die Beispiel-Dokumente
Seitentabelle book
DADSpezifikation
root_id
publisher
title
isbn
1
Addison Wesley Datenmodelle
3-89319-566-1
2
Springer
DatenbankHandbuch
3-540-10741-X
3
Thomson
Objektdatenbanken
3-8266-0258-7
XML-Dokumente xmltable
Trigger beim
Laden der
Dokumente
docid
doctext
1
<book>...</book>
2
<book>...</book>
root_id
seq_no lastname
3
<book>...</book>
1
1
Seitentabelle author_ln
Vossen
Automatisch vom System aufgrund der DAD generiert
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-8
Definition der Abbildung durch eine DAD
mit dem XML-Collection-Ansatz
z
Zerlegung von XML-Dokumenten
z
Abbildung von XML auf Datenbank
–
–
z
dxxInsertXML()
dxxShredXML()
arbeitet auf XML-Kollektionen mit fester DAD
arbeitet auf XML-Kollektionen mit variabler DAD
Abbildung von Datenbank auf XML
–
–
dxxRetrieveXML()
dxxGenXML()
arbeitet auf XML-Kollektionen mit fester DAD
arbeitet auf XML-Kollektionen mit variabler DAD
z
Aufruf aller dieser Stored Procedures nur aus einem
Anwendungsprogramm möglich!!!
z
Aufruf aus dem Anwendungsprogramm ist nicht akzeptabel, daher hier
nicht weiter ausgeführt.
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-9
Definition der Abbildung durch eine DAD
mit dem XML-Collection-Ansatz
z
DAD-DTD stellt verschiedene XML-Elemente zur Verfügung, um die
Abbildung zwischen Datenbank und XML festzulegen
–
–
–
Element SQL_stmt:
Element prolog:
Element element_node:
„
–
Element attribute_node:
„
–
z
Attribut name:
Attribut name:
Element column:
Angabe einer SQL-Anfrage
Angabe des Prologs zum XML-Dokument
Definition von Zielelementen
Tag des Zielelements
dito XML-Attribute
Name des Zielattributs
Bezug zur Spalte im Anfrageergebnis
Umgekehrte Abbildung von XML auf Datenbankinhalten ist auch möglich
–
–
Element RDB_node anstelle von SQL_stmt
Angabe von Tabellennamen und evtl. Join-Bedingungen
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-10
Beispiel für eine XML-Collection-DAD
<?xml version="1.0"?>
<!DOCTYPE DAD SYSTEM "dad.dtd">
<DAD>
<validation>NO</validation>
<Xcollection>
<SQL_stmt> SELECT title, publisher, isbn FROM book </SQL_stmt>
<prolog> ?xml version="1.0"? </prolog>
<element_node name="book">
<attribute_node name="title"/>
<column name="title"/>
<attribute_node name="isbn"/>
<column name="isbn"/>
<attribute_node name="publisher"/> <column name="publisher"/>
</element_node>
</Xcollection>
</DAD>
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-11
Indexierung
z
Indexunterstützung
–
–
z
Wertindexe (B-Baum, Bitmap, etc.) auf den Seitentabellen
Volltextindex (mit Text Extender) auf den XML-Typen
Erweiterung des Volltextindex für IR auf XML
–
–
–
Mitführen der Pfadinformation im Index
Unterstützung für Pfadausdrücke
Beispiel:
contains-Ausdruck
enthält im zweiten
Parameter eine Query
für den Text Extender
SELECT x_docid
FROM xmltable
WHERE contains(dscrHandel,
‘MODEL order SECTION(//book/summary) "Datenbank"
Datenbank ‘) = 1
Retrievalmodell
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
Pfadausdruck zur
Einschränkung der Suche
11-12
Anfragen
z
XML-Extender
–
–
XML-Erweiterung bietet Funktionen für Anfragen und Manipulationen
Anfragen: DB2XML.EXTRACT<Datentyp>(<Spalte>, <XPath-->)
SELECT RETURNEDVARCHAR
FROM xmltable AS x,
TABLE(DB2XML.EXTRACTVARCHARS(x.doctext, '//firstname')) AS xmlresult;
z
Begrenzte Unterstützung des SQL/XML-Standards
–
–
–
XMLAGG
XMLELEMENT
XMLATTRIBUTE
SELECT VARCHAR(XML2CLOB(
XMLELEMENT(name "publisher", publisher)))
FROM book
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-13
Manipulation
z
Manipulationen über spezielle Methoden der XML-Typen möglich
z
Syntax: DB2XML.UPDATE(<Spalte>, <XPath-->, <NeuerInhalt>)
z
Beispiel
UPDATE xmltable
SET doctext = DB2XML.UPDATE(doctext, '//firstname', 'Torsten')
z
Mit dem XML-Column-Ansatz werden die Änderungen automatisch auf
den Seitentabellen nachgezogen
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-14
Zusammenfassung IBM DB2 XML-Unterstützung
XML-Speicherung
Modell
erweiterbar, objektrelational
Schemabeschreibung
Validierung bei Import möglich
Art der Speicherung
textbasiert oder benutzerdefiniert-strukturbasiert
Abbildungen von DB auf XML durch DAD
XML-Datentyp
vorhanden
Indexe
Wertindex
Standard-DBS-Indexe auf Seitentabellen
Volltextindex
mit TextExtender
Pfadindex
nur im TextExtender
Anfragen und Manipulation
Anfragen
SQL-Methoden mit XPath-Dialekt
Volltextsuche
mit TextExtender
Manipulationen
SQL-Methoden mit XPath-Dialekt
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-15
Kritik des Ansatzes von DB2
z
Schlechte Unterstützung von Standards
–
–
–
z
Schlechte Integration der Tools mit dem Komplettsystem bzw. SQL
–
z
DAD statt XML-Schema
Eigener XPath-Dialekt anstatt XPath 1.0
Keine volle Unterstützung von SQL/XML
Umständliches Aktivieren von XML-Unterstützung für Datenbanken, Tabellen
Unnötige Koexistenz verschiedener, teilweise redundanter Ansätze
–
Beispiel: XML-Unterstützung durch XML Extender vs. SQL/XML-Funktionalität
z
Keine Unterstützung modellbasierter Abbildungen
z
Vieles befindet sich offensichtlich noch im Beta-Stadium, auch wenn es
offiziell schon lange released ist!
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-16
Microsoft SQL Server 2000: Architektur
Anwendung
XML-Dokumente
Internet
Information
Server (IIS)
ADO
Middleware
SQLOLEDB
MS SQL Server
2000
Datenbank
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-17
Speicherstruktur:
Abbildung von XML auf Datenbanken
z
Drei Varianten zur Speicherung von XML-Dokumenten
z
Variante 1: Modellbasierte Speicherung nach dem EDGE-Ansatz
–
z
SQL-Erweiterung um einen XML-Parser, der eine Ausgabe nach dem EDGEFormat generiert
Variante 2: Strukturbasierte Speicherung über STORED-Queries
–
SQL-Erweiterung um einen XML-Parser, der STORED-Queries verarbeitet
z
Variante 3: XML-Dokumente können auch als CLOBs gespeichert werden –
textbasierter Ansatz
z
Speicherung der XML-Inhalte (EDGE oder strukturbasierte Daten) über
INSERT-SQL-Befehle in der Datenbank
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-18
Modellbasierte Speicherung mit EDGE (1)
z
Aufruf von OPENXML ohne WITH-Klausel liefert EDGE-Tabelle
Spalte
Datentyp Funktion
id
bigint
Eineindeutige Knoten-ID
parentid
bigint
ID des Vaterknotens
nodetype
int
Unterscheidet Elemente, Attribute, Kommentare
localname
nvarchar
Tag
prefix
nvarchar
Präfix des XML-Namensraums
namespaceuri nvarchar
URI des XML-Namensraums
datatype
nvarchar
Datentyp (abgeleitet aus DTD oder XML-Schema)
prev
bigint
ID des Vorgängerknotens (in Dokumentordnung)
text
ntext
Inhalt des Knotens
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-19
Modellbasierte Speicherung mit EDGE (2)
EXEC sp_xml_preparedocument @hdoc OUTPUT, @xmldoctext
INSERT INTO EDGE
SELECT *
FROM OpenXML (@hdoc, '', 0)
EXEC sp_xml_removedocument @hdoc
EDGE-Tabelle
id parentid nodetype localname prefix namespaceuri datatype
prev
0
NULL
text
1
book
NULL
NULL
NULL
NULL NULL
3
#text
NULL
NULL
NULL
NULL ' Vossen '
...
17 6
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-20
Strukturbasierte Speicherung mit STORED-Queries
z
SQL-Erweiterung mit OPENXML
z
OPENXML transformiert XML-Inhalte zu Datenbanktabellen (Shredding)
z
OPENXML ermöglicht es damit auch, STORED-Queries zu implementieren
z
Beispiel für die Umsetzung einer STORED-Query:
EXEC sp_xml_preparedocument @hdoc OUTPUT, @xmldoctext
INSERT INTO book
SELECT *
FROM OpenXML (@hdoc, '//book/', 0) WITH (
title
NVARCHAR(3000) ‘./title',
publisher NVARCHAR(200)
‘./publisher‘,
isbn
NVARCHAR(15)
‘./isbn‘
)
EXEC sp_xml_removedocument @hdoc
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-21
Strukturbasierte Speicherung: Beispiel
z
Ergebnistabelle erzeugen:
CREATE TABLE (
publisher NVARCHAR(200) ,
title
NVARCHAR(3000),
isbn
NVARCHAR(15)
)
z
Nach STORED-Query von der vorigen Seite ergibt sich der Tabelleninhalt:
publisher
title
isbn
Addison Wesley Datenmodelle
3-89319-566-1
Springer
DatenbankHandbuch
3-540-10741-X
Thomson
Objektdatenbanken
3-8266-0258-7
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-22
Speicherstruktur:
Abbildung von Datenbanken auf XML
z
Variante 1: Standardabbildung mit SQL SELECT und FOR XML-Klausel
–
–
FOR XML RAW: Umsetzung in ROW-XML-Elemente und XML-Attribute
FOR XML AUTO:
„
„
–
z
Semantisch reiche XML-Element-Namen
Fremdschlüssel-Beziehungen werden in Hierarchien umgesetzt
FOR XML EXPLICIT: Nutzer steuert XML-Aufbau durch Metadaten (EDGE)
Variante 2: Benutzerdefinierte XML-Sicht
–
–
–
Verwendung eines (vorhandenen) XML-Schemas
Annotation des Schemas mit Informationen über Tabellen und Spalten
Zugriff der Anwendung auf die XML-Sicht über:
„
„
IIS-Funktionalität
ADO (ActiveX Data Objects) – Middleware zum DB-Zugriff
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-23
Variante 1: FOR XML-Klausel
SELECT title, publisher, isbn, lastname
FROM book, author
WHERE book.id = author.bookid
FOR XML AUTO, ELEMENT
XML-Elemente
statt Attribute
verwenden
XML_XXXX: NTEXT (CLOB)
<book>
<title> Datenmodelle </title>
<author>
<lastname> Vossen </lastname>
</author>
<isbn>3-89319-566-1 </isbn>
<publisher> Addison-Wesley </publisher>
</book>
...
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-24
Variante 2: Benutzerdefinierte XML-Sichten
z
Annotiertes XML-Schema
–
–
–
–
–
z
Zusätzlicher Namensraum:
xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
Konform zum XML-Schema-Standard des W3C
Annotation sql:relation:
Bezug zwischen XML und einer Tabelle
Annotation sql:field:
Bezug zwischen XML und einer Tabellenspalte
Annotation sql:relationship: Schlüssel-Fremdschlüssel-Beziehung in der DB
Zugriff auf die XML-Sicht über XPath ist möglich
–
–
–
–
aus dem Browser über IIS
aus Applikationen via ActiveX Data Object (ADO) – Middleware zum DB-Zugriff
Nicht alle XPath-Konstrukte können abgedeckt werden
XPath wird in äquivalentes SQL auf der Datenbank übersetzt
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-25
Benutzerdefinierte XML-Sicht: Beispiel
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name= "Book" sql:relation= "book" type= "BookType"/>
<xsd:complexType name= "BookType" >
<xsd:sequence>
<xsd:element name= "Title"
sql:field= "title"/>
<xsd:element name= "ISBN"
sql:field= "isbn"/>
<xsd:element name= "Publisher"
sql:field= "publisher"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Definition der
XML-Struktur
Definition der
Tabellenspalten
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-26
Benutzerdefinierte XML-Sicht: Beispiel
publisher
title
isbn
Addison Wesley Datenmodelle
3-89319-566-1
Springer
DatenbankHandbuch
3-540-10741-X
Thomson
Objektdatenbanken
3-8266-0258-7
<Book>
<Title> Datenmodelle </Title>
<ISBN> 3-89319-566-1 </ISBN>
<Publisher> Addision Wesley</Publisher>
</Book>
...
<Book>
<Title> Objektdatenbanken </Title>
<ISBN>3-8266-00258-7 </ISBN>
<Publisher> Thomson </Publisher>
</Book>
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
SichtDefinition
Sichten können
als XML-Dokumente
über den IIS abgerufen
werden, um sie dann
weiterzuverarbeiten
11-27
Manipulationen
z
SQL Server 2000 bietet keine Funktion zur Manipulation von XMLDokumenten, die als CLOB gespeichert sind
z
Dadurch deutliche Einschränkung des textbasierten Ansatzes
z
Manipulationen bei strukturbasierten Abbildungen sind möglich über
sogenannte Updategrams
–
–
–
Aufbauend auf annotierte XML-Schemas
Formulierung der Änderungen in einem XML-Dokument:
Neuer Namensraum:
xmlns:updg="urn:schemas-microsoft-com:xml-updategram"
„
„
–
Definition eines vorigen (abzuändernden) Zustandes
Definition des neuen Zustandes
Unterschiedliche Änderungsoperationen durch verschiedene Elementinhalte
„
„
„
z
Element before:
Element after:
Einfügen :
Löschen:
Update:
before-Element wird leer gelassen
after-Element wird leer gelassen
beide Elemente haben nicht-leeren Inhalt
Automatische Durchführung der erforderlichen Datenbankoperationen
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-28
Manipulationen: Beispiel für Updategrams
z
Datenbestand mit XML-Sicht wie im vorigen Beispiel
z
Änderungsoperation: Update der Verlagsinformation
<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
<updg:sync >
<updg:before>
<Book>
<Title> Objektdatenbanken </Title>
<ISBN>3-8266-00258-7 </ISBN>
<Publisher> Thomson </Publisher>
</Book>
</updg:before>
<updg:after>
<Book>
<Title> Objektdatenbanken </Title>
<ISBN>3-8266-00258-7 </ISBN>
<Publisher> International Thomson Publishing </Publisher>
<Book>
</updg:after>
</updg:sync>
</ROOT>
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-29
Zusammenfassung SQL Server 2000
XML-Unterstützung
XML-Speicherung
Modell
relational
Schemabeschreibung
inline DTD oder XML-Schema
Art der Speicherung
textbasiert: CLOB-Spalte
modellbasiert: mit OPENXML
benutzerdefiniert strukturbasiert:
mit OPENXML – STORED Queries
Abbildungen von DB auf XML automatisch: FOR XML-Klausel
benutzerdefiniert: XSD-Annotationen
XML-Datentyp
Indexe
Wertindex
Standard-DBS-Indexe
Volltextindex
keine XML-spezifischen Funktionen
Pfadindex
Anfragen und Manipulation
Anfragen
SQL-Erweiterungen, XPath-Dialekt
Manipulationen
mit Updategrams
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-30
Kritik des Ansatzes von SQL Server 2000
z
Zu eingeschränkte Unterstützung von XML im DBS-Kern
–
–
–
z
Viele Möglichkeiten, XML auf DB-Strukturen abzubilden
–
z
Unterstützung von STORED-Queries positiv
Benötigte Infrastruktur zu komplex
–
z
kein XML-Datentyp vorhanden
keine Unterstützung für Updates durch XML-Prozessor im DBS
Unterstützung für SQL/XML fehlt komplett
Internet Information Server ist hier eigentlich unnötig
Positiv: Annotation von Standard-XML-Schemas für die Sichtenbildung
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-31
Oracle9i: Architektur
Anwendung
XML-Dokumente
Oracle9i
Oracle verfolgt den
SQL/XML-Ansatz
Datenbank
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-32
Oracle9i: Detailliertere Architekturübersicht
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-33
Speicherungsstruktur:
Abbildung von XML auf Datenbanken
z
Varianten zur Abbildung von XML auf Datenbanken
–
–
z
Ausnutzung der objektrelationalen Erweiterung von Oracle
–
–
–
z
XML-Column-Ansatz: Spalte basiert auf XML-Datentyp
XML-Table-Ansatz: Tabelle basiert auf XML-Datentyp
XMLTYPE als vordefinierter Objekttyp mit SQL/XML-Funktionen als Methoden
Intermedia-Text-Paket mit Volltextfunktionalität
DBMS_XMLDOM-Paket mit DOM-Methoden
Speicherungsansätze
–
–
–
textbasiert (unstrukturierte Speicherung als CLOB)
strukturbasiert (objektrelationale Speicherung setzt XML-Schema voraus)
hybrid (semistrukturiert)
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-34
XML-Column-Ansatz
z
Definition einer Tabelle zur Aufnahme von XML-Dokumenten
CREATE TABLE Berichte
(
ID INTEGER,
Inhalt XMLTYPE
);
z
Einfügen von Dokumenten
INSERT INTO Berichte
VALUES (123, XMLTYPE('<Bericht> ... <Autor>Jim Beam</Autor>
<Titel>Beam Dir einen Whisky</Titel>
... <Datum>16.11.2001</Datum>
</Bericht>'));
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-35
XML-Table-Ansatz
z
Definition einer Tabelle zur Aufnahme von XML-Dokumenten
CREATE TABLE XMLBerichte OF XMLTYPE ;
z
Einfügen von Dokumenten
INSERT INTO XMLBerichte
VALUES (XMLTYPE('<Bericht> ... <Autor>Jim Beam</Autor>
<Titel>Beam Dir einen Whisky</Titel>
... <Datum>16.11.2001</Datum>
</Bericht>'));
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-36
Benutzerdefinierte Funktion getDocument(...)
zum Einlesen von XML-Dokumten als CLOBs
CREATE DIRECTORY xmldir AS 'c:\xmldir';
GRANT READ ON DIRECTORY xmldir TO PUBLIC WITH GRANT OPTION;
CREATE FUNCTION getDocument(filename VARCHAR2)
RETURN CLOB
AUTHID CURRENT_USER IS
xbfile BFILE;
xclob CLOB;
BEGIN
xbfile := BFILENAME('xmldir', filename);
DBMS_LOB.OPEN(xbfile);
DBMS_LOB.CREATETEMPORARY(xclob, TRUE, DBMS_LOB.session);
DBMS_LOB.LOADFROMFILE(xclob, xbfile, DBMS_LOB.getLength(xbfile));
DBMS_LOB.CLOSE(xbfile);
RETURN xclob;
END;
/
INSERT INTO xmltable (doctext)
VALUES (XMLTYPE(getDocument('Berichte.xml')));
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-37
XMLTYPE-Eigenschaften
CREATE TABLE <Tabellenname> (
<Spaltenname> XMLTYPE [<XML-Property>]
);
CREATE TABLE <Tabellenname> OF XMLTYPE [<XML-Property>]
<XML-Property> :=
[XMLTYPE [COLUMN] <Spaltenname>
[STORE AS {OBJECT RELATIONAL | CLOB (<LOB-Parameter>)}]
[XMLSCHEMA <url> ELEMENT [<url>#]<Element>]
textbasierte
Speicherung
Default: CLOB
CREATE TABLE XMLBerichte OF XMLTYPE
XMLSCHEMA "http://www.dbs.ethz.ch/Berichte.xsd"
ELEMENT "Bericht";
ist äquivalent zu
strukturbasierte
Speicherung
(erfordert Angabe
eines passenden
XML-Schema)
CREATE TABLE XMLBerichte OF XMLTYPE
ELEMENT "http://www.dbs.ethz.ch/Berichte.xsd#Bericht";
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-38
Methoden des XML-Datentyps XMLTYPE (1)
z
XMLTYPE(<Wertausdruck>[,<Schema-URL>[, <Validated>]]
[,<Wellformed>]) ist der Konstruktor
–
Wertausdruck kann eine Zeichenkette oder eine Instanz eines
benutzerdefinierten Typs sein
z
getClobVal() liefert XML-Wert als CLOB
z
getStringVal() liefert XML-Wert als Zeichenkette
z
getNumVal() ist nur anwendbar auf einem XML-Wert, der einen
Textknoten darstellt, dessen Zeichenkette einer Nummer entspricht
z
isFragment() liefert 1, wenn Instanz mehr als ein Wurzelelement hat
z
existsNode(<XPath-Ausdruck>[, <Namensraum>]) liefert 1 oder 0, je nach
dem, ob der XPath-Ausdruck einen Knoten liefert oder nicht
z
extract(<XPath-Ausdruck>[, <Namensraum>]) extrahiert einen Teil des
XML-Wertes entsprechend eines XPath-Ausdruckes
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-39
Methoden des XML-Datentyps XMLTYPE (2)
z
transform(<XML-Wertausdruck>) transformiert einen XML-Wert gemäss
einem anderen XML-Wert, der ein Stylesheet repräsentiert
z
toObject() konvertiert einen XML-Wert in einen Objektwert
z
isSchemaBased() liefert 1, wenn der XML-Wert aus einen vorgegebenen
Schema basiert
z
getSchemaURL() liefert die URL des Schemas
z
getRootElement() liefert das Wurzelelement (bei XML-Fragmenten Null)
z
createSchemaBasedXML(<Schema-URK>) fügt dem XML-Wert ein Schema
hinzu
z
createNonSchemaBasedXML() hebt die Assoziation zu einem Schema auf
(falls eine vorhanden war)
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-40
Indexierung
z
Indexunterstützung
–
Wertindexe
Volltextindex
–
Pfadindex
CREATE INDEX xmlpfadidx ON Berichte(Inhalt)
INDEXTYPE IS CTXSYS.CTXXPATH;
–
Funktionaler Index
CREATE INDEX xmlfunktionalidx ON Berichte
(Inhalt.EXTRACT('//Autor/text()').getStringVal());
–
z
Anfrage, die den
funktionalen Index
nutzt:
CREATE INDEX xmlfulltextidx ON Berichte(Inhalt)
INDEXTYPE IS CTXSYS.CONTEXT;
SELECT ID
FROM Berichte
WHERE EXTRACT(Inhalt, '//Autor/text()').getStringVal()
= 'Jim Beam';
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-41
Anfragen
z
Unterstützung des SQL/XML-Standards
–
–
–
–
z
Plus weitere Funktionen wie
–
–
–
–
z
XMLAGG
XMLELEMENT
XMLATTRIBUTE
XMLFOREST
XMLSEQUENCE
XMLCOLATTVAL
EXTRACT
EXISTSNODE etc.
Volltextsuche durch Einbindung des
Intermedia-Text-Pakets
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
SELECT SCORE(1), doctext
FROM xmltable
WHERE CONTAINS(doctext, 'Jim') > 0
ORDER BY SCORE(1);
11-42
XML-Funktionen
z
basieren auf den XMLTYPE-Methoden
z
Auswahl von Oracle-XML-Funktionen
–
–
–
–
–
–
–
–
–
–
–
–
XMLTYPE erzeugt einen XML-Wert aus einem CLOB
EXTRACT extrahiert Knoten mittels eines XPath-Ausdruckes
EXTRACTVALUE extrahiert einen Knoten mittels eines XPath-Ausdruckes
EXISTSNODE überprüft, ob ein bestimmter Knoten existiert
XMLELEMENT erzeugt ein XML-Element aus einer Werteliste
XMLATTRIBUTES erzeugt XML-Attribute
XMLCOLATTVAL liefert einen Wald von XML-Elementen mit Tag <column>
XMLFOREST erzeugt einen Wald von XML-Elementen
XMLCONCAT konkateniert mehrere XML-Elemente zu einem Wald
XMLAGG aggregriert die XML-Elemente einer Gruppe
XMLUPDATE manipuliert einen XMLWert
…
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-43
XMLTYPE (1)
XMLTYPE(<Zeichenkettenausdruck> )
erzeugt einen XML-Wert
Beispiel:
Mitarbeiter
Name
Gehalt
Joe
2000
Jim
3500
SELECT XMLTYPE('<Mitarbeiter Name="' || Name
|| '"> <Gehalt>' || 12 * Gehalt || '</Gehalt> </Mitarbeiter>')
AS Angestellte
FROM Mitarbeiter;
Angestellte
Simulation von XMLGEN partiell
möglich (beschränkt auf XPathAusdrücke; kein XQuery)! Vergleiche
mit dem entsprechenden Beispiel aus
Kapitel 7 (SQL/XML)
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
<Mitarbeiter Name="Joe">
<Gehalt>24000</Gehalt>
</Mitarbeiter>
<Mitarbeiter Name="Jim">
<Gehalt>42000</Gehalt>
</Mitarbeiter>
11-44
XMLTYPE (2)
Berichte
ID
123
Inhalt
<Bericht> ... <Autor>Jim Beam</Autor> <Titel>Beam Dir einen
Whisky</Titel> ... <Datum>16.11.2001</Datum> </Bericht>
234
<Bericht><Autor>Johnny Walker</Autor><Datum>14.11.2002</Datum>
<Titel>Whisky, Walking and Talking</Titel> ... </Bericht>
872
<Bericht> <Titel>Great Single Malts</Titel> ... <Autor>Jack</Autor>
<Autor>Jim Beam</Autor> <Datum>21.11.2002</Datum> </Bericht>
SELECT ID, XMLTYPE('<Autoren>' || EXTRACT(Inhalt, '//Autor/text()').getClobVal()
|| '</Autoren>') AS Autorennamen
FROM Berichte;
ID
Autorennamen
123
<Autoren>Jim Beam</Autoren>
234
872
<Autoren>Johnny Walker</Autoren>
<Autoren>JackJim Beam</Autoren>
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-45
EXTRACTVALUE
EXTRACTVALUE(<XML-Wertausdruck>, <XPath-Ausdruck>[,<Wertausdruck>])
extrahiert einen durch eine XPath-Anfrage definierten Ausschnitt des XML-Wert,
der einem einzelnen Knotenwert entspricht
Beispiel:
SELECT ID, XMLTYPE('<Titel>' || EXTRACTVALUE(Inhalt, '//Titel') || '</Titel>') AS Berichttitel
FROM Berichte;
ID
Berichttitel
123
<Titel>Beam Dir einen Whisky</Titel>
234
<Title>Whisky, Walking and Talking</Title>
872
<Title>Great Single Malts</Title>
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-46
EXTRACT
EXTRACT(<XML-Wertausdruck>, <XPath-Ausdruck>[, <Namensraum>])
extrahiert einen durch eine XPath-Anfrage definierten Ausschnitt des XMLWertes
Beispiel:
SELECT ID, EXTRACT(Inhalt, '//Titel') AS Berichttitel
FROM Berichte;
ID
Berichttitel
123
<Titel>Beam Dir einen Whisky</Titel>
234
<Title>Whisky, Walking and Talking</Title>
872
<Title>Great Single Malts</Title>
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-47
EXISTSNODE
EXISTSNODE(<XML-Wertausdruck>, <XPath-Ausdruck> [, <Namensraum>])
ergibt 1 (True), wenn die Anfrage auf dem XML-Wert ein nicht-leeres Ergebnis
liefert
Beispiel:
Berichte
ID
123
Inhalt
<Bericht> ... <Autor>Jim Beam</Autor> <Titel>Beam Dir einen
Whisky</Titel> ... <Datum>16.11.2001</Datum> </Bericht>
234
<Bericht><Autor>Johnny Walker</Autor><Datum>14.11.2002</Datum>
<Titel>Whisky, Walking and Talking</Titel> ... </Bericht>
872
<Bericht> <Titel>Great Single Malts</Titel> ... <Autor>Jack</Autor>
<Autor>Jim Beam</Autor> <Datum>21.11.2002</Datum> </Bericht>
SELECT ID
FROM Berichte
WHERE EXISTSNODE(Inhalt, '//Autor[text()="Jack"]') = 1;
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
ID
872
11-48
XMLELEMENT
XMLELEMENT(NAME <Elementname>
[, XMLATTRIBUTES(<XML-Attributliste>)]
[, <Wertausdrucksliste>])
<XML-Attribut> := <Wertausdruck> [AS <Attributname>]
erzeugt ein XML-Element
Beispiel:
Mitarbeiter
Name
Gehalt
Joe
2000
Jim
3500
SELECT XMLELEMENT(NAME "Mitarbeiter",
XMLATTRIBUTES(Gehalt),
Name) AS Element
FROM Mitarbeiter;
Element
<Mitarbeiter GEHALT="2000">Joe</Mitarbeiter>
<Mitarbeiter GEHALT="3500">Jim</Mitarbeiter>
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-49
XMLCOLATTVAL
XMLCOLATTVAL(<XML-Spaltenwerteliste>)
<XML-Spaltenwerte>:=<Wertausdruck> [AS <Elementname>]
erzeugt XML-Elemente aus SQL-Wertausdrücken
Beispiel:
Mitarbeiter
Name
Gehalt
Joe
2000
Jim
3500
SELECT XMLCOLATTVAL(Name,
12*Gehalt AS Gehalt)
AS Mitarbeitergehalt
FROM Mitarbeiter;
Mitarbeitergehalt
<column name="NAME">Joe</column>
<column name="GEHALT>24000</column>
<column name="NAME">Jim</column>
<column name="GEHALT>4200</column>
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-50
XMLFOREST
XMLFOREST(<XML-Forest-Elementliste>)
<XML-Forest-Element>:=<Wertausdruck> [AS <Elementname>]
erzeugt einen Wald von XML-Elementen mit optionalen Attributen
Beispiel:
Mitarbeiter
Name
Gehalt
Joe
2000
Jim
3500
SELECT XMLFOREST(Name,
XMLELEMENT(NAME "Euro", 12*Gehalt)
AS Einkommen) AS Mitarbeitergehalt
FROM Mitarbeiter;
Mitarbeitergehalt
<NAME>Joe</NAME>
<Einkommen> <Euro>24000</Euro> </Einkommen>
<NAME>Jim</NAME>
< Einkommen> <Euro>42000</Euro> </Einkommen>
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-51
XMLCONCAT
XMLCONCAT(<XML-Wertausdrucksliste>)
konkateniert XML-Elemente zu einem Wald
Beispiel:
Mitarbeiter
Name
Gehalt
Joe
2000
Jim
3500
SELECT XMLCONCAT(
XMLELEMENT(NAME "Name", Name),
XMLELEMENT(NAME "Euro", 12*Gehalt))
AS Mitarbeitergehalt
FROM Mitarbeiter;
Mitarbeitergehalt
<Name>Joe</Name>
<Euro>24000</Euro>
<Name>Jim</Name>
<Euro>42000</Euro>
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-52
XMLAGG
XMLAGG(<XML-Wertausdruck>[ORDER BY, <Sortierausdrucksliste>] )
aggregiert die XML-Elemente einer Gruppe
Beispiel:
Mitarbeiter
Name
Gehalt
Joe
2000
Jim
3500
Jim
5000
SELECT Name, XMLAGG(
XMLELEMENT(NAME "Gehalt", Gehalt))
AS Einkommen
FROM Mitarbeiter
GROUP BY Name;
Name
Einkommen
Joe
<Gehalt>2000</Gehalt>
Jim
<Gehalt>3500</Gehalt>
<Gehalt>5000</Gehalt>
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-53
XMLSEQUENCE
XMLSEQUENCE(<XML-Wertausdruck>)
erzeugt aus XML-Elementen ein Array von XML-Werten
Beispiel:
SELECT ID, XMLSEQUENCE(EXTRACT(Inhalt, '//Autor')) AS Autoren
FROM Berichte;
ID
Autoren
123
XMLSEQUENCETYPE(XMLTYPE(<Autor>Jim Beam</Autor>))
234
XMLSEQUENCETYPE(XMLTYPE(<Autor>Johnny Walker</Autor>))
872
XMLSEQUENCETYPE(XMLTYPE(<Autor>Jack</Autor>),
XMLTYPE(<Autor>Jim Beam</Autor>))
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-54
Manipulation — UPDATEXML
UPDATEXML(<XML-Wertausdruck>, <Ersetzungsliste>[,<Namensraum>])
<Ersetzung> := <XPath-Ausdruck>,<Wert-Ausdruck>
manipuliert einen durch eine XPath-Anfrage definierten Ausschnitt des XMLWertes
Beispiel:
UPDATE Berichte
SET Inhalt = UPDATEXML(Inhalt, '//Autor[text()="Jim Beam"]/text()', 'Glenn');
Berichte
ID
123
Inhalt
234
<Bericht><Autor>Johnny Walker</Autor><Datum>14.11.2002</Datum>
<Titel>Whisky, Walking and Talking</Titel> ... </Bericht>
872
<Bericht> <Titel>Great Single Malts</Titel> ... <Autor>Jack</Autor>
<Autor>Glenn</Autor> <Datum>21.11.2002</Datum> </Bericht>
<Bericht> ... <Autor>Glenn</Autor> <Titel>Beam Dir einen
Whisky</Titel> ... <Datum>16.11.2001</Datum> </Bericht>
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-55
XML-Sichten
z
ermöglichen XML-basierte Sicht auf SQL- bzw. XML-Werte
z
basieren auf dem Prinzip der Objektsichten
–
z
der Objekttyp ist hier XMLTYPE
Beispiel:
CREATE VIEW BerichteSicht OF XMLTYPE
WITH OBJECT ID DEFAULT
AS SELECT VALUE(x)
FROM XMLBerichte x
WHERE EXTRACT(VALUE(x), '//Autor/text()').getStringVal() = 'Jack';
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-56
Export von Datenbankinhalten mit XML-Syntax
z
Standardabbildung von SQL nach XML
–
–
–
–
–
–
–
Spalten ergeben Elemente der ersten Ebene (top level)
Einfache Typen (mit skalaren Werten) als Elemente mit PCDATA
Strukturierte Typen und ihre Attribute auf Elemente mit Subelementen für die
Attribute abgebildet
Komplexe Attribute als hierarchisch geschachtelte Elemente
Aus Kollektionstypen werden Listen von Elementen
Objektreferenzen und referenzielle Integritätsbedingungen werden auf
ID/IDREF innerhalb eines Dokuments abgebildet
Tabelleninhalt wird auf ROWSET-Elemente abgebildet
<ROWSET>
<ROW num="1"> … </ROW> … <ROW num="n"> … </ROW>
</ROWSET>
z
Benutzerdefinierte Transformation von SQL nach XML mit XSLT möglich
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-57
Zusammenfassung Oracle-XML-Unterstützung
XML-Speicherung
Modell
erweiterbar, objektrelational
Schemabeschreibung
Validierung möglich
Art der Speicherung
text- oder strukturbasiert
Abbildungen von DB auf XML durch XML-Funktionen, Schemageneratoren,
XML-Sichten
XML-Datentyp
vorhanden
Indexe
Wertindex
Volltextindex
Pfadindex
Anfragen und Manipulation
Anfragen
SQL-Methoden mit XPath 1.0
Volltextsuche
mit dem Intermedia-Text-Erweiterungspaket
Manipulationen
SQL-Methoden mit XPath 1.0
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-58
Kritik des Ansatzes von Oracle
z
Gute Unterstützung von Standards
–
–
–
z
Besonderheiten:
–
–
–
–
z
XPath 1.0
XML-Schema
SQL/XML
XML-Sichten
Tools für Export und Import von XML-Schemata
XSLT-Prozessor, XML-Prozessoren (DOM, SAX),
XML-Schema Validator
Problem: zu viele parallele, redundante Ansätze
–
–
Konsolidierung erforderlich!
Hier nicht weiter betrachtet!
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-59
Excelon - Architektur
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-60
Zusammenfassung Excelon
XML-Speicherung
Modell
objektorientiert (DOM)
Schemabeschreibung
Validierung möglich
Art der Speicherung
modellbasiert
Abbildungen von DB auf XML nativ
XML-Datentyp
—
Indexe
Wertindex
Volltextindex
Pfadindex
Anfragen und Manipulation
Anfragen
XQL, XPath 1.0 + Teile von XQuery 1.0
Volltextsuche
Manipulationen
XUpdate (SQL-ähnlich mit XPath 1.0)
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-61
Tamino - Architektur (1)
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-62
Tamino - Architektur (2)
XML Parser:
Wohlgeformtheit &
Korrektheit
Object Processor:
Speichert XML und SQL
Daten
Query Interpreter:
X-Query (XPath-ähnlich)
Interpretation gemäß Data
Map
Objekt Composer:
Generiert XML Dokumente
aus Anfragen
Utilities:
Beschleunigung beim Laden
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-63
Zusammenfassung Tamino
XML-Speicherung
Modell
nativ
Schemabeschreibung
Validierung möglich
Art der Speicherung
modellbasiert
Abbildungen von DB auf XML nativ
XML-Datentyp
—
Indexe
Wertindex
Volltextindex
Pfadindex
Anfragen und Manipulation
Anfragen
XQL, XPath 1.0 mit Erweiterungen
Volltextsuche
Manipulationen
?
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-64
Poet - Architektur
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-65
Zusammenfassung Poet
XML-Speicherung
Modell
objektorientiert
Schemabeschreibung
für strukturierte Speicherung erforderlich
Art der Speicherung
modellbasiert, strukturiert
Abbildungen von DB auf XML über Java-Methoden
XML-Datentyp
—
Indexe
Wertindex
Volltextindex
—
Pfadindex
Anfragen und Manipulation
Anfragen
OQL
Volltextsuche
—
Manipulationen
OQL
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-66
Infonyte-DB - Architektur
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-67
Zusammenfassung Infonyte-DB
XML-Speicherung
Modell
nativ (DOM)
Schemabeschreibung
Validierung möglich
Art der Speicherung
modellbasiert
Abbildungen von DB auf XML nativ
XML-Datentyp
Indexe
Wertindex
Volltextindex
Pfadindex
Anfragen und Manipulation
Anfragen
XPath 1.0 + Teile von XQuery 1.0
Volltextsuche
—
Manipulationen
über DOM-Methoden
Vorlesung "XML und Datenbanken" - WS 2002/2003 (Schek/Türker/Grabs)
11-68
Herunterladen