XML-Speicherung in Datenbanken



Ähnliche Dokumente
Projektseminar "Texttechnologische Informationsmodellierung"

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML

XML - Extensible Markup Language. Agenda - Oracle XML DB

Speicherung von XML in (objekt-)relationalen Datenbanken. Burkhard Schäfer

XML und Datenbanken. Wintersemester 2003/2004. Vorlesung: Dienstag, 13:15-15:00 Uhr IFW A36. Übung: Dienstag, 15:15-16:00 Uhr IFW A36

XINDICE. The Apache XML Project Name: J acqueline Langhorst blackyuriko@hotmail.de

Datenbanken. Prof. Dr. Bernhard Schiefer.

Institut für Dokumentologie und Editorik. XML-Datenbanken und XQuery

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Metadateneditoren für ArcGIS

XQuery Implementation in a Relational Database System

Carsten Czarski, Nina Neuwirth Oracle Deutschland. Volltextsuche in XML-Dokumenten mit Oracle

Einteilung von Datenbanken

Referenzielle Integrität SQL

7. Übung - Datenbanken

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

Datenmanagement in Android-Apps. 16. Mai 2013

Seminar Informationsintegration und Informationsqualität. Dragan Sunjka. 30. Juni 2006

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

OP-LOG

Objektrelationale Datenbanken

Java und XML 2. Java und XML

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube Konstanz

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

Leitfaden zur Nutzung von binder CryptShare

Weiterentwicklung digitaler Bibliothekssysteme zu OpenArchives-Systemen

Administering Microsoft SQL Server 2012/2014 Database (M20462) M /

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

KURZANLEITUNG CLOUD OBJECT STORAGE

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

TUSReport Installationsanleitung

7. XML-Datenbanksysteme und SQL/XML

Informatik 12 Datenbanken SQL-Einführung

Sophia Business Leitfaden zur Administration

Arbeiten mit einem lokalen PostgreSQL-Server

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

Hinweise zum Update des KPP Auswahltools (Netzwerkinstallation) auf Version 7.2

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

AS/point, Ihr Partner die nächsten 10 und mehr Jahre -

White Paper. Konfiguration und Verwendung des Auditlogs Winter Release

Allgemeines. veröffentlicht unter lizensiert unter. Creative Commons BY-SA 3.0. XQuery in MS SQL Server 2005

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube Konstanz

Whitepaper. Produkt: combit Relationship Manager / address manager. Integration der Ansicht "Adressen" in eigene Solution

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller

Verteilte Systeme: Übung 4

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS noch einmal. XQuery... Andreas Schmidt Oracle XQuery 1/12

Mai Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

Allgemeines zu Datenbanken

Aufgaben zu XPath und XQuery

Installationsanleitung. Novaline Datenarchivierung / GDPdU

DB2 Codepage Umstellung

Anleitung zum Prüfen von WebDAV

Import von Daten aus Word nach KlasseDozent

Prozedurale Datenbank- Anwendungsprogrammierung

Man liest sich: POP3/IMAP

Projektseminar Texttechnologische Informationsmodellierung

OCTOPUS Appointment System von ADCOTEL -- System Architektur Version 1.1 vom Adcotel GmbH. I. Übersicht

AUTOMATISCHE -ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

SQL. Fortgeschrittene Konzepte Auszug

Quickstep Server Update

GSI WebDAV Service. Dennis Klein,

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

FORGE2015 HDC Session 4. Nachhaltige Infrastruktur als technologische Herausforderung. Tibor Kálmán Tim Hasler Sven Bingert

Sehr geehrte Faktor-IPS Anwender,

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

3. Stored Procedures und PL/SQL

SQL (Structured Query Language) Schemata Datentypen

ODM. ww w. syn t egris.de

<Insert Picture Here> Oracle Datenbank Einführung Ulrike Schwinn

Java Enterprise Architekturen Willkommen in der Realität

Reporting Services und SharePoint 2010 Teil 1

Avira Management Console Optimierung für großes Netzwerk. Kurzanleitung

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Schlüssel bei temporalen Daten im relationalen Modell

Andreas Heuer Gunter Saake Kai-Uwe Sattler. Datenbanken. kompakt

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

Übersicht über Datenbanken

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

IV. Datenbankmanagement

Information zum SQL Server: Installieren und deinstallieren. (Stand: September 2012)

2. Word-Dokumente verwalten

INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Macher Solutions Produktinformation SAP Crystal Reports 2011

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Einbindung einer ACT!12-16 Datenbank als Datenquelle für den Bulkmailer 2012

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Anleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken

So funktioniert die NetWorker 7.5 Eigenschaft zum Sichern umbenannter Verzeichnisse ( Backup renamed Directories )

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Transkript:

XML-Speicherung in Datenbanken Dr. Harald Schöning Überblick Einleitung Modelle zur Speicherung von XML in RDBMS Anfragesprachen Stand der Technik in kommerziellen RDBMS Tamino, ein natives XML-Datenbanksystem Zusammenfassung 2 Dr. Harald Schöning 1-1

Benutzung von XML ursprüngliche Intention: Datenaustausch inzwischen vermehrt: Format für persistente Daten besonders für semistrukturierte Information (Daten vs. Dokumente) Nachrichten komplexe Daten Gesundheitswesen 70%-85% der relevanten Geschäftsinformation in Textdokumenten geeignet für Darstellung in XML und für Protokolle Web Services persistente Speicherung in Datenbanken Schutz Sicherheit Anfragen Transaktionen 3 Speicherung in relationalen Datenbanken? eingeführte Technologie seit 20 Jahren immer mehr optimiert vielseitige Anwendungsszenarien OODBMS als Negativbeispiel für nicht-relationale Systeme 4 Dr. Harald Schöning 1-2

Datenmodelle sind verschieden XML Relationale Welt Daten in einer hierarchischen Struktur Knoten haben Elemente und / oder Attributwerte Elemente können geschachtelt sein Elemente sind geordnet Schema ist optional komplexes Typsystem Daten in mehreren flachen Tabellen Spalten haben einen einzelnen Wert begrenzte Schachtelung keine Ordnung Schema ist verpflichtend einfacheres Typsystem 5 Inhaltsorientierte Zerlegung (Shredding) <Lieferung Datum="7.6.2001"> <Lieferadresse> <Name>Harald Schöning</Name> <Stadt>Dieburg</Stadt> </Lieferadresse> <Teil Nummer="4711" Menge="10"/> <Teil Nummer="4712" Menge="11"/> </Lieferung> Lieferung Kunden Nr Datum Kunde Kundennr 17 7.6.2001 K19 K19 Lieferung Teilnr Menge 17 4711 10 17 4712 11 Name Harald Schöning Ort Dieburg 6 Dr. Harald Schöning 1-3

Beschränkungen der inhaltsorientierten Zerlegung Abbildung muss definiert sein (automatisch/manuell) Dokumente ohne Schema können nicht gespeichert werden Künstliche Schlüssel zur Darstellung von Hierarchie Wild cards (offenes Schema), mixed content, Rekursion schwierig Änderung schwierig / unmöglich Originaltreue nicht garaniert Verlust von Kommentaren, Processing Instructions, DTD, Reihenfolge ineffiziente Nutzung relationaler Strukturen ggf. dünn besetzte Tabellen (bei optionalen XML-Anteilen) ggf. große Zahl von Tabellen hoher Rekonstruktions- und Sperraufwand inkompatibles Typsystem SQL-Typ darf nicht strenger sein Normalisierung auf SQL-Ebene gefährdet Originaltreue Datum 7 Strukturorientierte Zerlegung Speicherung in generischen Tabellen auch modellgestützte Speicherung genannt Abspeichern der Kanten und Knoten des zum XML-Dokument gehörigen Strukturbaumes Aus 1 XML-Dokument werden viele Sätze Schema der relationalen Datenbank ist unabhängig vom Schema der XML-Dokumente einmalige Definition Verwendete relationale Strukturen für Benutzer unbrauchbar (keine Anwendungssemantik) vollständige Abbildung möglich Kommentare, processing instructions Reihenfolgeerhaltung kanonische Äquivalenz 8 Dr. Harald Schöning 1-4

Strukturorientierte Zerlegung - Beispiel 1 2 <Lieferung Datum= 11.11.2003"> 3 <Lieferadresse> <Name> Quelle Nr Tag Ziel Daten 4 Harald Schöning 0 1 Lieferung 1 </Name> 1 0 @Datum 0 11.11.2003 <Stadt> 1 1 Lieferadresse 3 5 Dieburg 3 1 Name 4 Harald Schöning </Stadt> 3 2 Stadt 5 Dieburg </Lieferadresse> 1 2 Teil 6 6 0 @Nummer 0 4711 6 <Teil Nummer="4711" 7 8 Menge="10" /> 9 <Teil Nummer="4712" 10 11 Menge="11" /> </Lieferung> 6 0 @Menge 0 10 1 3 Teil 9 9 0 @Nummer 0 4712 9 0 @Menge 0 11 9 Strukturorientierte Zerlegung Problemfelder Performance Anfragen beinhalten komplexe Joins Anfragen enthalten Sortierung (wegen der Reihenfolgeerhaltung) keine gezielte Indizierung (z.b. auf Elementebene) Locking viele Tupel pro Dokument viele Sperren pro Änderung Anfragemächtigkeit Elementübergreifende Anfragen text retrieval 10 Dr. Harald Schöning 1-5

Opake Speicherung XML-Dokument als Inhalt einer Spalte einer Tabelle (BLOB, CLOB) oder als externe Datei CREATE TABLE xmltable ( xml BLOB) schematische Beschreibung des XML-Dokumentes nicht erforderlich Bitidentität prinzipiell möglich Heute oft XML-Typ 11 Opake Speicherung - Beispiel <Lieferung Datum= 11.11.2003"> <Lieferadresse> <Name> Harald Schöning </Name> <Stadt> Dieburg </Stadt> </Lieferadresse> <Teil Nummer="4711" Menge="10" /> <Teil Nummer="4712" Menge="11" /> </Lieferung> xml <Lieferung Datum= 11.11.2003"><Lieferadresse><Name> Harald Schöning</Name><Stadt>Dieburg</Stadt> </Lieferadresse><Teil Nummer="4711" Menge="10" /> <Teil Nummer="4712" Menge="11"/></Lieferung> 12 Dr. Harald Schöning 1-6

Opake Speicherung - Problemfelder Optimierbarkeit der Anfrage Das relationale System kennt die Struktur des Dokuments nicht Ganzes Dokument muss gelesen werden Auch beim Zugriff auf einzelnes Element 13 Anfragesprache (Benutzer) SQL ist bestenfalls bei inhaltsorientierter Zerlegung geeignet nur dort Anwendungssemantik auf relationaler Ebene Elementübergreifende Anfragen nicht immer möglich Ergebnis ist eine Tabelle Transformation nach XML in nachgelagertem Schritt SQL/XML zur XML-Einbettung XPath eingeschränkte Funktionalität nicht als Anfragesprache entworfen W3C XQuery dedizierte XML-Anfragesprache textorientierte Anfragen? 14 Dr. Harald Schöning 1-7

Mischung von SQL und XPath / XQuery Modellbruch Oracle 9i / 10g: SQL/XML SELECT extractvalue(value(d), '/Description') "Description" FROM Purchaseorder, table(xmlsequence(extract(object_value, '/PurchaseOrder/LineItems/LineItem/Description'))) d WHERE existsnode(object_value, 'PurchaseOrder[Ref="SV-2803030912"]')=1 entspricht XPath-Ausdruck /PurchaseOrder[Ref="SV-2803030912"]/LineItems/LineItem/Description UPDATE Personalakten p SET p.personalakte = SYS.XMLType.createXML('<?xml version="1.0"?> <Personalakte Personalnummer="2234">... </Personalakte> ') WHERE p.personalakte.extractvalue('/personalakte/@personalnummer') = 2234 15 Queries in kommerziellen RDBMS MS SQL Server (SQL Server 2005) SELECT PK, XDOC.xquery('for $s in /BOOK/SECTION return <topic>{data($s/title)}</topic> ') FROM DOCS XQuery bezieht sich nur auf ein Dokument! DB2 (native XML-Unterstützung, geplant) for $e in db2-fn:xmlcolumn( DEPT.DEPTDOC )/dept/employee where $e/office=344 return $e/name let $d:=db2-fn:sqlquery(' select deptdoc from dept where deptid= PR27 ') let $u:=db2-fn:sqlquery(' select XMLELEMENT(NAME Unit, XMLFOREST(ID, name, manager)) from unit where ID= PR27 ') return <report><units>{$u}</units><department>{$d}</department>></report> select deptid, deptdoc from dept d where deptid LIKE PR% and xmlexists(' $deptdoc/dept/employee[office=344] ' passing by ref d.deptdoc as deptdoc ) 16 Dr. Harald Schöning 1-8

Stand der Technik (kommerzielle Systeme) Oracle 10g Opak oder inhaltsorientiert Keine Unterstützung von XQuery Forschung: Index gemäß strukturorientierter Zerlegung für opake Speicherung Rudimentär: Text Retrieval XML Schema Validierung nicht erzwungen IBM DB2 In Vorbereitung: native Unterstützung von XML Integration von XQuery im relationalen Optimierer XML Schema Validierung nicht erzwungen Microsoft SQL Server In Vorbereitung: XQuery auf einzelnen Spalten Index gemäß strukturorientierter Zerlegung Tamino Native Unterstützung seit 1999 XQuery seit 2003 17 Perspektive in relationalen Datenbanksystemen eigene, gleichberechtigte Anfrageauswertungskomponenten SQL engine SQL- Optimierer gemeinsame Optimiererlogik? XML-Anfrageauswertung XQuery- Optimierer SQL Speicherung XML-Speicherung 18 Dr. Harald Schöning 1-9

ein XML- Datenbanksystem Seit 1999 verfügbar Native XML-Unterstützung, kein Modellbruch XQuery als primäre Anfragesprache Integration heterogener Datenquellen Erweiterbar durch "Server extensions" speichert XML-Dokumente und "non-xml" schematische Beschreibung ist möglich, aber nicht zwingend http ist primärer Zugang Indizierung gemäß XML-Struktur 19 Der XML-Datenbankserver: XML speichern Dokumente mit und ohne Schemaassoziation ggf. Validierung einzeln oder als Menge von Dokumenten zu speichern eindeutige ID pro Dokument optional Dokumentname Datenbank Collection Schema Collection Schema Doctype Doctype 20 Dr. Harald Schöning 1-10

Der XML-Datenbankserver: XML abfragen und ändern XQuery W3C draft Erweiterung für update plus Funktionsbibliothek Tamino-Namensraum Text-Retrieval XQJ Beispiel: Beispiel: Autoren Autoren mit mit ihren ihren Büchern : Büchern : <Autorenliste> <Autorenliste> {for {for $a $a in incollection( Bücher )/alle/autor )/alle/autor return return <Eintrag> <Eintrag> {$a} {$a} {for {for $b $b in incollection( Bücher )//Buch[Autor=$a] )//Buch[Autor=$a] return return $b/titel} $b/titel} </Eintrag>} </Eintrag>} </Autorenliste> </Autorenliste> 21 Der XML-Datenbankserver: Text Retrieval Wildcards tf:containstext(titel, "Tam* Data*") Suche nach benachbarten Wörtern tf:containsadjacenttext(titel,3,"tamino","datenbanksystem") Tamino ist ein Datenbanksystem Suche nach Stammformengleichheit tf:containstext(titel,tf:stem("speichern")) Tamino speichert XML Suche nach gleichem Klang tf:containsneartext(titel,3,tf:phonetic("stark"), tf:stem("speichern") XML-Speicherung ist Taminos Stärke Mit anderen Bedingungen kombinierbar declare namespace tf=" " for $b in input()//buch where tf:containstext($b/titel,"xml") and $b/preis<100 return $b Funktioniert mit und ohne Index 22 Dr. Harald Schöning 1-11

Der XML-Datenbankserver: XML Schema Schemadefinition über W3C XML Schema Das Tamino Schema ist ein gültiges XML Schema Annotationen, um Tamino-Spezifika anzugeben Standard-Mechanismus von XML Schema eigener Tamino-Namensraum wird benutzt Benutzt für logische Angaben, die über XML Schema hinausgehen nationale Sortierordnungen, Zugehörigkeit zu Collections usw. Benutzt für physische Angaben Indexierung usw. Schemaänderungen möglich (ggf. mit Validierung) offene Schemata 23 Der XML-Datenbankserver: Security Autorisierung auf Collection Doctype Knotenebene Funktionen Über ACLs Benutzer Gruppen Rechte Authentisierung Web Server Tamino Betriebssystem 24 Dr. Harald Schöning 1-12

Der XML-Datenbankserver: Indexierung Indextypen Standard Elemente Attribute Text Elemente Attribute Struktur doctype Compound index Kombination von Elementen und Attributen zu einem einzigen Index Reference index Speziell auf hierarchische XML- Struktur zugeschnitten Multipath index Besonders für rekursive Strukturen 25 Der XML-Datenbankserver: Internationalisierung mehr als 100 encodings für XML-Dokumente unterstützt <?xml version="1.0" encoding="iso-8859-2"?> Konvertierung beim Speichern und Abfragen möglich IRI-Unterstützung Zeichenrepertoire von Unicode 3.2 nationale Sortierordnungen Text Retrieval für nicht auf Buchstaben beruhende Sprachen Chinesisch Japanisch Koreanisch tf:containstext(" 心 臟 疾 病 ", " 心 ") Regeln für sprachspezifische Behandlung von Zeichen definierbar ß ss 26 Dr. Harald Schöning 1-13

Der XML-Datenbankserver... ist ein Datenbanksystem Volle Unterstützung von ACID Transaktionen verschiedene Isolationsebenen können gewählt werden verteilte Transaktionen Cursoring Backup / Recovery Einbindung der Backupkonzepte von EMC, Network Applicances usw. High Availability Replikation 27 Tamino X-Node: XML-Anbindung an RDBMS Abbildung relationaler Strukuren nach XML Teile von Dokumenten aus Tamino, andere aus dem RDBMS Abfragen Abspeichern Ändern Auch für Adabas 28 Dr. Harald Schöning 1-14

Tamino X-Tension: Erweiterung der Serverfunktionalität Durch benutzerdefinierte Server-Extensions Bibliotheken mit Callback-Möglichkeiten Mapping von XML (Sub-) Dokumenten auf externe Datenquellen Trigger Binden von Aktionen an Operationen auf Knoten Anfragefunktionen Erweiterung von X-Query durch benutzerdefinierte Funktionen Reaktion auf Ereignisse Beendigung einer Transaktion usw. 29 XML-Anbindung anderer Formate Tamino kann beliebige Dateien speichern.txt,.gif,.doc usw. Bei Text erfolgt automatisch eine Textindizierung Weitergehende Indizierung möglich durch Server Extension Erzeugung eines "Schattendokumentes Dokumentinhalt und Metadaten werden in XML-Form zugänglich beliebige Anfragen Extraktion / Konvertierung durch spezielle Server Extension 30 Dr. Harald Schöning 1-15

XML-Anbindung anderer Formate: weitergehende Indizierung Nicht-XML Dokument Datenbank Server extension Metadaten + Inhalt Original XML 31 Schnittstellen X-Application Framework OCX Browser WebDAV client SOAP client Java Tamino Java API JScript HTTP Client API.Net API HTTP WebDAV WebDAV Server Server SOAP SOAP API API X-Node X-Node X-Tension X-Tension Server Server Extension Extension Server Server Extension Extension Tamino Store XML non-xml SQL Store relational ADABAS Store Adabas 32 Dr. Harald Schöning 1-16

Tamino Werkzeuge: Tamino X-Plorer Browser durch die Datenbank Anfragen zur Einschränkung der sichtbaren Dokumente 33 Tamino Werkzeuge:Query Tool Syntax highlighting für W3C XQuery Query history 34 Dr. Harald Schöning 1-17

Tamino Werkzeuge: Schema Editor 35 Tamino Werkzeuge: Administration 36 Dr. Harald Schöning 1-18

Zusammenfassung RDBMS Abbildung auf relationale Strukturen nicht zukunftsfähig Entwicklung in Richtung nativer XML-Unterstützung noch sehr am Anfang Tamino XML speichern mit oder ohne Schema, oder offenes Schema Andere Formate speichern Mit Brücke zu XML XML Indizierung XML-Security X-Tension zur Erweiterung der Server-Funktionalität X-Node zur Anbindung externer Datenbanken 37 38 Dr. Harald Schöning 1-19