XML und Datenbanken

Werbung
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 2003/2004 (Dr. C. Türker)
11-59
Abbildung von XML auf Datenbanken
z
Drei Varianten zur Speicherung von XML-Dokumenten
–
Modellbasierte Speicherung nach dem EDGE-Ansatz
„
–
Strukturbasierte Speicherung über STORED-Queries
„
–
SQL-Erweiterung um einen XML-Parser, der STORED-Queries verarbeitet
Textbasierte Speicherung
„
z
SQL-Erweiterung um einen XML-Parser, der eine Ausgabe nach dem EDGE-Format
generiert
XML-Dokumente als CLOBs gespeichert
Speicherung der XML-Inhalte (EDGE oder strukturbasierte Daten) über
INSERT-SQL-Befehle in der Datenbank
Vorlesung "XML und Datenbanken" - WS 2003/2004 (Dr. C. Türker)
11-60
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 2003/2004 (Dr. C. Türker)
11-61
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 2003/2004 (Dr. C. Türker)
11-62
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 2003/2004 (Dr. C. Türker)
11-63
Strukturbasierte Speicherung: Beispiel
z
Ergebnistabelle erzeugen:
CREATE TABLE book (
publisher NVARCHAR(200) ,
title
NVARCHAR(3000),
isbn
NVARCHAR(15)
)
z
Nach STORED-Query von der vorigen Seite ergibt sich der Tabelleninhalt:
publisher
title
Addison Wesley Datenmodelle
isbn
3-89319-566-1
Springer
Datenbank-Handbuch 3-540-10741-X
Thomson
Objektdatenbanken
Vorlesung "XML und Datenbanken" - WS 2003/2004 (Dr. C. Türker)
3-8266-0258-7
11-64
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 2003/2004 (Dr. C. Türker)
11-65
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 2003/2004 (Dr. C. Türker)
11-66
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 2003/2004 (Dr. C. Türker)
11-67
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= "Buch" sql:relation= "book" type= "BuchTyp"/>
<xsd:complexType name= "BuchTyp" >
<xsd:sequence>
<xsd:element name= "Titel"
sql:field= "title"/>
<xsd:element name= "ISBN"
sql:field= "isbn"/>
<xsd:element name= "Verlag"
sql:field= "publisher"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Definition der
XML-Struktur
Definition der
Tabellenspalten
Vorlesung "XML und Datenbanken" - WS 2003/2004 (Dr. C. Türker)
11-68
Benutzerdefinierte XML-Sicht: Beispiel
publisher
title
Addison Wesley Datenmodelle
isbn
3-89319-566-1
Springer
Datenbank-Handbuch 3-540-10741-X
Thomson
Objektdatenbanken
3-8266-0258-7
<Buch>
<Titel> Datenmodelle </Titel>
<ISBN> 3-89319-566-1 </ISBN>
<Verlag> Addision Wesley</Verlag>
</Buch>
...
<Buch>
<Titel> Objektdatenbanken </Titel>
<ISBN>3-8266-00258-7 </ISBN>
<Verlag> Thomson </Verlag>
</Buch>
Vorlesung "XML und Datenbanken" - WS 2003/2004 (Dr. C. Türker)
SichtDefinition
Sichten können
als XML-Dokumente
über den IIS abgerufen
werden, um sie dann
weiterzuverarbeiten
11-69
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 2003/2004 (Dr. C. Türker)
11-70
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>
<Buch>
<Titel> Objektdatenbanken </Titel>
<ISBN>3-8266-00258-7 </ISBN>
<Verlag> Thomson </Verlag>
</Buch>
</updg:before>
<updg:after>
<Buch>
<Titel> Objektdatenbanken </Titel>
<ISBN>3-8266-00258-7 </ISBN>
<Verlag> International Thomson Publishing </Verlag>
<Buch>
</updg:after>
</updg:sync>
</ROOT>
Vorlesung "XML und Datenbanken" - WS 2003/2004 (Dr. C. Türker)
11-71
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 2003/2004 (Dr. C. Türker)
11-72
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 2003/2004 (Dr. C. Türker)
11-73
Tamino - Architektur (1)
Vorlesung "XML und Datenbanken" - WS 2003/2004 (Dr. C. Türker)
11-74
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 2003/2004 (Dr. C. Türker)
11-75
Speicherungsstrukturen: Abbildung von XML
z
Tamino verwendet eine "native" Speicherungsstruktur für XML
z
Ergänzung der nativen Speicherung durch diverse klassische Indextypen
–
–
–
z
B-Baum-Index
Volltextindex
zusätzlich: Pfadindex
Speicherungsalternativen
–
–
Speicherung von wohlgeformten XML-Dokumenten ohne Schemadefinition
Speicherung von schemavaliden XML-Dokumenten
„
z
Annotation der Schema-Definition mit Speicherungsvarianten
Hierarchie der Speicherung
–
–
–
–
1. Ebene: Tamino
2. Ebene: Kollektion
3. Ebene: Dokumenttyp (definiert durch Menge von XML-Schema-Definitionen)
4. Ebene: Dokumentinstanz
Vorlesung "XML und Datenbanken" - WS 2003/2004 (Dr. C. Türker)
11-76
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tsd="namespaces.softwareag.com/tamino/TaminoSchemaDefinition">
<xs:annotation> <xs:appinfo>
<tsd:schemaInfo name="book">
<tsd:collection name="books"></tsd:collection>
<tsd:doctype name="book">
<tsd:logical> <tsd:content>open<tsd:content></tsd:logical>
</tsd:doctype>
</tsd:schemaInfo>
</xs:appinfo> </xs:annotation>
<xs:element name = "book">
<xs:complexType> <xs:sequence>
<xs:element name = "title" type = "xs:string"></xs:element>
…
<xs:element name = "summary" type = "xs:string">
<xs:annotation> <xs:appinfo>
<tsd:elementInfo>
<tsd:physical> <tsd:native>
<tsd:index> <tsd:text></tsd:text> </tsd:index>
</tsd:native> </tsd:physical>
</tsd:elementInfo>
</xs:appinfo> </xs:annotation>
</xs:element>
</xs:sequence> </xs:complexType>
</xs:element>
Speicherung:
Beispielschema
mit Annotation
für Text-Index
Vorlesung "XML und Datenbanken" - WS 2003/2004 (Dr. C. Türker)
11-77
Anfragen
z
Möglichkeiten zum Zugriff
–
–
–
z
Programmgesteuert bspw. über DCOM-Komponenten
Ad-Hoc-Anfragen mit Query Tool des X-Plorer
"Interactive Interface"
Unterstützte Anfragesprachen
–
XPath 1.0-Dialekt mit Erweiterungen für Textsuche (auch ohne Index möglich)
„
Enthaltensein (~=)
/Buch[Titel ~= "Datenmodelle"]/Beschreibung
„
Platzhalter (*)
/*[. ~= "*XML*"]
„
Kontextberücksichtigung (NEAR)
/*[/Autor ~= "Gunter" NEAR "Saake"]
–
XQuery-Dialekt
Vorlesung "XML und Datenbanken" - WS 2003/2004 (Dr. C. Türker)
11-78
Manipulation
z
Operationen (innerhalb von UPDATE sind mehrere Operationen möglich)
–
Löschen:
UPDATE DELETE $buch//Verlag[@Ort="Zürich"]/@Ort
–
Einfügen:
UPDATE INSERT <Preis Waehrung="EUR">35</Preis>
INTO $buch[@ISBN="3-8266-0258-7"]
–
Ersetzen:
UPDATE REPLACE $buch//Verlag[@Ort="Zürich"]/@Ort
WITH ATTRIBUTE Ort {"Wiesbaden"}
Vorlesung "XML und Datenbanken" - WS 2003/2004 (Dr. C. Türker)
11-79
Zusammenfassung Tamino
XML-Speicherung
Modell
nativ
Schemabeschreibung
Validierung möglich
Art der Speicherung
modellbasiert
Abbildungen von DB auf XML nativ
XML-Datentyp
—
Indexe
Wertindex
vorhanden
Volltextindex
vorhanden
Pfadindex
vorhanden
Anfragen und Manipulation
Anfragen
Tamino X-Query (Erweiterungen und kleinen
Abweichung von W3C XQuery)
Volltextsuche
unterstützt
Manipulationen
unterstützt
Vorlesung "XML und Datenbanken" - WS 2003/2004 (Dr. C. Türker)
11-80
Excelon - Architektur
Vorlesung "XML und Datenbanken" - WS 2003/2004 (Dr. C. Türker)
11-81
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 2003/2004 (Dr. C. Türker)
11-82
Poet - Architektur
Vorlesung "XML und Datenbanken" - WS 2003/2004 (Dr. C. Türker)
11-83
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 2003/2004 (Dr. C. Türker)
11-84
Infonyte-DB - Architektur
Vorlesung "XML und Datenbanken" - WS 2003/2004 (Dr. C. Türker)
11-85
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 2003/2004 (Dr. C. Türker)
11-86
Herunterladen