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