7-Dedizierte XML-Datenbanksysteme

Werbung
XML-Datenmodellierung / XML-Schemasprachen
XML-Abfragesprachen
XML-Schemasprachen
XPath
DTD
XQuery
XML-Transformationssprache
XML-Schema
XSLT
...
XML
Relationale
DBMS
283
XML in DBMS
Dedizierte
XML-DBMS
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
5. Dedizierte XML-Datenbanksysteme
- Tamino XML Server
• Architektur des DBMS
• Speicherung von XML-Dokumenten und Schemabeschreibungen
• Commands
• Abfragemöglichkeiten und Indexunterstützung
• Sicherheit
• Werkzeug Tamino Manager
• Konzepte X-Node, X-Tension, X-Port (und weitere Schnittstellen)
284
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server *
- von der Software AG entwickeltes und vertriebenes reines XMLDatenbanksystem
- erstmals 1999 veröffentliche und aktuell in Version 8.2 verfügbar (seit 2011)
- unterstützte Plattformen
• Windows
• Solaris
• Unix
• Linux
•
- verfügbare Editionen
• Enterprise Edition
• Standard Edition
• Developer Edition
weiterhin verwendete Bildmaterialien entstammen http://documentation.softwareag.com/webmethods/tamino/ins82/overview.htm
285
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server - Architektur
X-Machine
(Nativer Data
Store mit der
XML-Engine)
286
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server – X-Machine
- Kernstück der XMLServerarchitektur
- Komponenten
• XML Parser
• Query Interpreter
• XML Datenspeicher
287
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server – X-Machine
- Komponenten im Detail
• XML Parser
- prüft syntaktische Korrektheit (Wohlgeformtheit) von XMLDokumenten und XML-Schemas
- validiert XML-Dokumente gegen zugeordnete XML-Schemas
• Query Interpreter
- interpretiert, optimiert und verarbeitet XQuery-Anfragen (Tamino
XQuery und Standard XQuery)
• Object Processor
- wird benötigt um (neue) geparste Objekte im nativen XMLDatenspeicher abzulegen
• Object Composer
- konstruiert (aus gegebenenfalls mehreren Informationsquellen) das
Abfrageergebnis in Form eines XML-Dokuments
288
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server – Data Map und Native XML Data Store
- Data Map
• „Datenbankkatalog“
• enthält logische und physische Schemas
- Native XML Data Store
• Speicherung von nativen XML-Daten
289
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server
- Speicherstrukturen in Tamino XML Server
290
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server
- Speicherstrukturen in Tamino XML Server
• Doctype
- (äußerste Element eines Dokuments zu dem eine DTD gehört)
- Container für XML-Dokumente mit gleichem Wurzelelement
• Collection
- größte Informationseinheit einer Datenbank
- enthält diverse Doctypes
• Schema
- XML-Schema erweitert um Annotationen mit Tamino-spezifischen
Informationen
- logische Schemas und physische Schemas
- Zuordnung von beliebig vielen Schemas zu einer Collection*
* für jeden Wurzelelementnamen (Doctype) nur eine Schemadefinition möglich
291
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server
- Speicherstrukturen in Tamino XML Server
• logische Schemas beschreiben Struktur und Inhalt
- erforderliche und zulässige Elemente und Attribute
- vorgegebene Datentypen
- Verschachtelung von Elementen
- ...
• physische Schemas enthalten Metadaten zur physischen Speicherung
- Collection eines XML-Dokuments
- vorhandene Indexe und Indextypen
- indexierte Elemente und Attribute
- Mapping-Vorschriften zu externen Datenbanken
- ...
292
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server
- Besonderheit beim Umgang mit offenen XML-Schemas
• XML-Schema
- ermöglicht offenes Inhaltsmodell durch xs:any nur an gezielten
Positionen im XML-Dokument
• Tamino
- erlaubt über eine spezielle Option (in Annotationen spezifiziert)
ganzheitlich offenes Inhaltsmodell
<tsd:content>open</tsd:content>
- das heißt: wenn die Option gesetzt ist, sind Ergänzungen an
beliebigen Stellen des XML-Dokumenten zulässig ohne das dort im
XML-Schema explizit xs:any definiert sein muss
293
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server
- Beispiel für ein Tamino-Schema
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tsd = "http://namespaces.softwareag.com/tamino/TaminoSchemaDefinition">
<xs:annotation>
<xs:appinfo>
<tsd:schemaInfo name = "Vorlesung">
<tsd:collection name = "Vorlesung"></tsd:collection>
<tsd:doctype name = "vorlesung">
<tsd:logical>
<tsd:content>open</tsd:content>
</tsd:logical>
</tsd:doctype>
</tsd:schemaInfo>
</xs:appinfo>
</xs:annotation>
<xs:element name="vorlesung">
...
</xs:element>
</xs:schema>
294
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server
- Verwalten von Dokumenten und Tamino Objekten per X-Machine Commands
295
Command
Meaning
_admin
Perform an administration function
_commit
Commit a transaction
_connect
Start a database session
_cursor
Perform a cursor-related command
_define
_delete
Create a collection, schema or doctype; modify an existing schema or doctype
Delete one or more documents
_destroy
Remove a prepared query
_diagnose
Perform a diagnostic test
_disconnect
Terminate a database session
_execute
Execute a prepared query
_htmlreq
Create and query Tamino documents (used only in the context of HTML forms)
_prepare
Prepare (precompile) a query for later execution
_process
Store one or more documents into a collection; or modify an existing XML document
_rollback
Roll back a transaction
_undefine
Delete a collection, schema or doctype
_xql
Retrieve one or more documents using the Software AG's XPath-based X-Query query language
_xquery
Specify a query based on the W3C XQuery query language
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server
- Transaktionssteuerung per X-Machine Commands
Command
Meaning
_admin
Perform an administration function
_commit
_connect
Commit a transaction
Start a database session
_cursor
Perform a cursor-related command
_define
Create a collection, schema or doctype; modify an existing schema or doctype
_delete
Delete one or more documents
_destroy
Remove a prepared query
_diagnose
Perform a diagnostic test
_disconnect Terminate a database session
296
_execute
Execute a prepared query
_htmlreq
Create and query Tamino documents (used only in the context of HTML forms)
_prepare
Prepare (precompile) a query for later execution
_process
Store one or more documents into a collection; or modify an existing XML document
_rollback
Roll back a transaction
_undefine
Delete a collection, schema or doctype
_xql
Retrieve one or more documents using the Software AG's XPath-based X-Query query language
_xquery
Specify a query based on the W3C XQuery query language
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server
- Abfragen auf XML-Daten
• Tamino X-Query und
Tamino XQuery 4 als
eigene Abfragesprachen
in Anlehnung an die
W3C Recommendations
• Tamino X-Query basiert
auf XPath 1.0
• Tamino XQuery 4
orientiert sich an W3C
XQuery 1.0 und XPath
2.0 Working Drafts (von
2002 und 2003)
* angepasst an den aktuellen Status der W3C Recommendations
297
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
*
Dedizierte XML-Datenbanksysteme
Tamino XML Server
- Abfragen auf XML-Daten - Tamino XQuery 4
• erweitert XQuery vor allem hinsichtlich
- in-document Update Operationen (insert, delete, rename, replace,
FLWU-Ausdruck)
- Analyse von und Suchen in Texten (phonetische Suche, etc.)
• aktuell bereits ähnlich durch W3C genormt
- XQuery Update Facility 1.0 (2011)
- XQuery and XPath Full Text 1.0 (2011)
298
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server
- Beispielabfrage
• Annahme: Beispieldokument mit dem Doctype vorlesung ist in der
default Collection gespeichert
for $var1 in
input()/vorlesung/teilnehmer
return data($var1/@matrikel)
Collection
(Default)
(4711, 4736)
Doctype
Doctype
Doctype
vorlesung
x
y
XML
299
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server
- (vereinfachte) Ausführung einer Abfrage
• Syntaxprüfung
• Optimierung unter Einbezug von
• eventuell vorhandenen Schemainformationen
• eventuell existierenden Indexen
• Auswertung der Abfrage
300
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server
- Indexe – Werteindexe
• „Standardindex“
• vgl. relationale Indexe
• vollständige Werte von Elementen und Attributen werden in den Index
(B*-Baum) aufgenommen
• Optimierungspotential für
- Punktabfragen (nach konkreten Werten)
- Bereichsabfragen (nach Wertebereichen)
- Sortierungen
301
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server
- Indexe – Werteindexe
• Beispiel
<xs:element name="vorlesung">
<xs:annotation>
<xs:appinfo>
<tsd:elementInfo>
<tsd:physical>
<tsd:native>
<tsd:index>
<tsd:standard></tsd:standard>
</tsd:index>
</tsd:native>
</tsd:physical>
</tsd:elementInfo>
</xs:appinfo>
</xs:annotation>
...
</xs:element>
302
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server
- Indexe – Textindexe
• Worte eines Texts (Werte von Elementen und Attributen) und deren
Kombination werden indiziert
• Textindex führt zum Aufbau eines Vokabulars (Liste aller indexierten
Wörter)
• Optimierungspotential für
- „normale“ Wortsuche
- Nachbarschaftssuche von Wörtern
- Suche von Teilwörtern
303
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server
- Indexe – Textindexe
• Beispiel
<xs:element name="vorlesung">
<xs:annotation>
<xs:appinfo>
<tsd:elementInfo>
<tsd:physical>
<tsd:native>
<tsd:index>
<tsd:text />
</tsd:index>
</tsd:native>
</tsd:physical>
</tsd:elementInfo>
</xs:appinfo>
</xs:annotation>
...
</xs:element>
304
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server
- Indexe – Strukturindexe
• wird für Doctype definiert und erfasst die in den dazugehörigen XMLDokumenten auftretenden Pfade
• erfassten Pfade sind unabhängig von vorhandenen Schemas und
umfassen daher auch Schema-seitig nicht vordefinierte Pfade
• Varianten
- verdichteter Strukturindex – alle Pfade eines Doctypes ohne
dokumentspezifische Informationen
- voller Strukturindex – alle Pfade eines Doctypes mit Informationen
in welchen Dokumenten sie jeweils auftreten
• Optimierungspotential für
- Notwendigkeitsprüfungen von Schemaevolutionen
- Mengenabschätzungen der zu betrachtenden XML-Dokumente
305
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server
- Indexe – Strukturindexe
• Beispiel
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tsd = "http://namespaces.softwareag.com/tamino/TaminoSchemaDefinition">
<xs:annotation>
<xs:appinfo>
<tsd:schemaInfo name = "Vorlesung">
<tsd:collection name = "Vorlesung"></tsd:collection>
<tsd:doctype name = "vorlesung">
<tsd:physical>
<tsd:structureIndex>full</tsd:structureIndex>
</tsd:physical>
</tsd:doctype>
</tsd:schemaInfo>
</xs:appinfo>
</xs:annotation>
<xs:element name="vorlesung">
...
</xs:element>
</xs:schema>
306
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server
- Sicherheit
• Transportsicherheit durch SSL-basierte Kommunikation
• Authentisierung
- entweder „ausgelagert“ per Web Server oder
- direkt durch den Tamino XML Server selbst
• Autorisierung
- Zugriffsrechte auf Ebene von Collections oder auch Doctypes bzw.
- für einzelne Attribut- oder Elementknoten
307
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server - Architektur
Manager
(Tamino
Administrationstool)
308
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server – Manager
- zentrales Administrationstool für Tamino XML Server
- Standard Web-Browser-Anwendung
- integriert in den System Management Hub (zentrales Werkzeug zur
Administration von Software AG Produkten)
309
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server – Manager
- Möglichkeiten zur Administration
• Administration von Datenbank Lokationen
• „klassische“ Datenbankadministration (Create/Delete, Stop/Start,
Backup/Restore, ...)
• Job Monitoring
• Collection Administration
• Security
• Version/Lizenz-Management
• Web Server Management
• Batch Processing
310
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server - Architektur
X-Node
311
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server – X-Node
- ermöglicht die transparente Anbindung relationaler Datenbanken per ODBC*
- Anwendungsszenarien
• Einbinden alter Datenbestände in neue XML-Speicherung
• Ergänzen relationaler Daten um XML-Daten in einem separaten DBMS
• ...
Anfrage
XMLSchema
Lesen
Schreiben
Tamino XML Server
relationale Datenbank
* Ausnahme: die Anbindung von Adabas (Software AG) erfolgt über eine eigene Schnittstelle
312
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server - Architektur
X-Tension
313
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server – X-Tension
- ermöglicht die Erweiterung von Tamino
• Funktionen zur Speicherung (Abbildung zu anderen Datenquellen)
- Map-In-Funktion – beim Speichern und Ersetzen eines Dokuments
- Map-Out-Funktion – beim Lesen eines Dokuments
- Delete-Funktion – beim Löschen eines Dokuments
Anfrage
XMLSchema
Tamino XML Server
314
weitere Datenquellen
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server – X-Tension
- ermöglicht die Erweiterung von Tamino
• Benutzerdefinierte Funktionen
• Reaktionen auf Ereignisse
- Callback-Funktionen liefern Informationen an X-Tension
Funktionen
- bspw. über Ende von Transaktionen oder Sessions
315
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server - Architektur
Schnittstellen
316
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server – Schnittstellen
- HTTP als primärer Zugang zu Tamino
• direkte HTTP-Kommandos zum Lesen und Speichern von Dokumenten
- Beispiel: Speichern eines neuen Dokuments über PUT-Methode und URL
http://meinServer/tamino/meineDB/Vorlesung/vorlesung/neues_Dokument.xml
Servername tamino DB-Name Collection
Doctype
Dokument
• weitergehende Anweisungen per HTTP-Methoden GET und POST
- Beispiel: Auslesen der Matrikelnummern aller Teilnehmer über GETMethode und URL
http://meinServer/tamino/meineDB/Vorlesung?_xql=/vorlesung/teilnehmer/@matrikel
Servername tamino DB-Name Collection
Ausdruck
- höhere Schnittstellen
• aufbauend auf HTTP-Schnittstelle oder
• basierend auf XTS (Extended Transport System)
317
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server – Bewertung (als Datenbank)
-
318
Effizienz
Mehrbenutzerbetrieb
Skalierbarkeit
Transaktionskonzept (ACID)
Speicherstrukturunabhängigkeit
Sicherheit
Verfügbarkeit
Erweiterbarkeit
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Tamino XML Server - Bewertung (XML-spezifisch)
-
319
Standardkonformität
Dokumentenbehandlung
Schema-Unabhängigkeit
Strukturunabhängigkeit
Schemavorgabe und Validierung
Web-Anbindung und andere Protokolle
Kodierung und Internationalisierung
XML-spezifische Schnittstellen zur Datenabfrage und –manipulation
offenes Inhaltsmodell
Schema-Evolution
unterschiedlich granulare Möglichkeiten zur Autorisierung
Speicherung von Nicht-XML-Daten
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Dedizierte XML-Datenbanksysteme
Zusammenfassung
320
-
Tamino XML Server verwaltet ganze XML-Dokumente und ordnet diese intern
verschiedenen Collections und hierarchisch untergeordneten Doctyps zu
-
auf Ebene der Collections erfolgt die Zuordnung von DB-seitig hinterlegten XMLSchemas zu den in der Collection gespeicherten XML-Dokumenten (abhängig vom
Doctype)
-
durch spezielle Mechanismen wie X-Node und X-Tension unterstreicht Tamino
seine Stärken hinsichtlich Konnektivität und Erweiterbarkeit
-
sämtliche betrachtete Anforderungen an XML-DBMS werden von Tamino erfüllt
-
da Tamino jedoch als reines XML-DBMS konstruiert wurde, ist die Erfüllung der
XML-Anforderungen nicht überraschend
-
auch wenn Tamino durch viele Vorzüge überzeugt: es ist „nur“ ein System zur
Speicherung und Verwaltung von XML-Daten und stellt daher keinen unmittelbaren
Ersatz für relationale Datenbankmanagementsysteme dar
XML-Grundlagen, -Sprachen, -Datenhaltungsfragen
Herunterladen