XML und Datenbanken © 2006 Markus Röder .

36
XML und Datenbanken © 2006 Markus Röder www.training- deluxe.de

Transcript of XML und Datenbanken © 2006 Markus Röder .

Page 1: XML und Datenbanken © 2006 Markus Röder .

XML und Datenbanken

© 2006 Markus Röder

www.training-deluxe.de

Page 2: XML und Datenbanken © 2006 Markus Röder .

Motivation für XML

Einfaches Textformat Weite Standardisierung Enthält Daten und Metadaten Ist erweiterbar

Page 3: XML und Datenbanken © 2006 Markus Röder .

Einsatz

Ein RDBMS zur Speicherung hierarchisch strukturierter XML-Dokumente einzusetzen ist ungefähr so effizient, wie ein Auto abends nach Feierabend in seine Einzelteile zu zerlegen, um es morgens für die Fahrt zur Arbeit wieder zusammenzubauen

Page 4: XML und Datenbanken © 2006 Markus Röder .

Datenbanken

Effiziente und strukturierte Speicherung Datenbanken speichern Informationen in strukturierten

Einheiten und bieten darüber hinaus unterschiedliche logische Sichten, ohne, dass der Anwender etwas über die Speicherung wissen muss. Indexe Durch gezielte Indizierung der Daten lassen sich Informationen schneller

auffinden. Schnelle Anfrageauswertung Anfragen werden durch das DBMS optimiert, um

schnellere Ergebnisse zu erhalten. Sicherheitskonzepte Um die Datenintegrität zu gewährleisten, kann die Manipulation der

Daten innerhalb gekapselter Transaktionen durchgeführt werden. Mehrbenutzerfähigkeit Die meisten DBMS unterstützen den gleichzeitigen Zugriff durch mehrere Benutzer. Standards DBMS sind weit verbreitet und viele Anwendungen verwenden bereits SQL-

Schnittstellen (bzw. JDBC, ODBC o.A.) zum Zugriff auf Datenbanken.

Page 5: XML und Datenbanken © 2006 Markus Röder .

Datenbanken und Systeme im Einsatz

Relationale Datenbanken Relationale DB XML Enabled Objektorientierte Datenbanken Native XML Datenbanken Persistenzframeworks ( z.B. Hibernate ) Middleware EAI SOA Implementierungen Application-Server PDOMs Individuelle Anwendungen

Page 6: XML und Datenbanken © 2006 Markus Röder .

XML Daten in relationalen Datenbanken speichern

Ablauf: Programmierung– Lesen der XML Daten mit Parser

individuelles Datenmodell in Memory SAX standard in memory Repräsentation DOM Fehler : ParserError optional: Vorher xsl Transformation in Normalform

– individuelles Mapping der Daten auf Tabellen Keys und Typbestimmung

– Daten in Datenbank speichern

Page 7: XML und Datenbanken © 2006 Markus Röder .

DTD - > DB Schema

1. Für jedes komplexe Element eine Tabelle mit Primärschlüssel erzeugen. 2. Jeden Element-Inhalt (Subelemente und PCDATA) betrachten und

– für einzelne Referenzen zu einfachen Elementen eine Spalte erzeugen,– für mehrfache Elemente (*) eine abhängige Tabelle mit Fremdschlüssel erzeugen,– für Referenzen zu komplexen Elementen einen Fremdschlüssel bei diesen

erzeugen,– für PCDATA in komplexen Elementen eine abhängige Tabelle mit Fremdschlüssel in

dieser erzeugen, bei optionalen Elementen (?) Nullwerte in der entsprechenden Spalte erlauben

und– evtl. Spalten für Ordnungsnummern bei Subelementen und PCDATA einfügen, falls

deren Reihenfolge wichtig ist. 3. Jedes Attribut betrachten und für einfache Attribute eine Spalte erzeugen,

– für mehrwertige Attribute (z.B. IDREFS) eine abhängige Tabelle mit Fremdschlüssel erzeugen,

– bei optionalen Attributen (#IMPLIED) Nullwerte in der entsprechenden Spalte erlauben

– sowie Default-Werte ¨

Page 8: XML und Datenbanken © 2006 Markus Röder .

DB-Schema -> DTD

1. Für jede Tabelle ein Element erzeugen, dessen Subelemente aus den Spalten der Tabelle

abgeleitet werden. Gleichzeitig für jede Spalte, die nicht Primär- oder Fremdschlüssel ist,

ein PCDATA-Element erzeugen. 2. Für jede abhängige Tabelle, die einen

Fremdschlüssel enthält, ein Subelement erzeugen. 3. Bei Spalten mit möglichen Nullwerten ein

optionales Subelement (?) erzeugen.

Page 9: XML und Datenbanken © 2006 Markus Röder .

Table Based Mapping

<database>

<table> <row>

<column1>...</column1> <column2>...</column2> ... </row> <row> ... </row> ... </table> <table> ... </table> ...

</database>

Page 10: XML und Datenbanken © 2006 Markus Röder .

Object-Relational Mapping

Es wird versucht den XML Baum auf den Datenbank Bereich mit jeder Ebene als eigene Tabelle zu mappen

Page 11: XML und Datenbanken © 2006 Markus Röder .

Mapping vom Profi

http://www.rpbourret.com/xml/DTDToDatabase.htm#object

Page 12: XML und Datenbanken © 2006 Markus Röder .

XML Enabled Datenbank

Speicherung von XML Daten als BLOB/CLOB

Je nach Tiefe der Daten können Teilbäume als Text im BLOB gespeichert werden.

Auslesen und Suche über Volltextrecherche Oder hinzufügen einer weiteren Spalte id

Page 13: XML und Datenbanken © 2006 Markus Röder .

Beispiel Oracle 9i

Support für offene Standards– W3C: DOM, XML Schema, XSLT, XQuery– ANSI: SQLX– IETF: WebDAV– Und: HTTP, FTP, JNDI, Web Services

Integriertes XML Repository in das RDBMS XML Schema-Integrität und RDBMS-Integritätregeln für XML

Daten XML Views über relationale Daten und umgekehrt XML spezifische Performance Leichte Darstellbarkeit durch Transformation im Server

Page 14: XML und Datenbanken © 2006 Markus Röder .

O

Page 15: XML und Datenbanken © 2006 Markus Röder .

O

Page 16: XML und Datenbanken © 2006 Markus Röder .
Page 17: XML und Datenbanken © 2006 Markus Röder .
Page 18: XML und Datenbanken © 2006 Markus Röder .

Im Hintergrund

Page 19: XML und Datenbanken © 2006 Markus Röder .

Architektur

Page 20: XML und Datenbanken © 2006 Markus Röder .

HTTP Zugriff

Page 21: XML und Datenbanken © 2006 Markus Röder .
Page 22: XML und Datenbanken © 2006 Markus Röder .
Page 23: XML und Datenbanken © 2006 Markus Röder .
Page 24: XML und Datenbanken © 2006 Markus Röder .

Altova Oracle Integration

Page 25: XML und Datenbanken © 2006 Markus Röder .
Page 26: XML und Datenbanken © 2006 Markus Röder .
Page 27: XML und Datenbanken © 2006 Markus Röder .

XML native Datenbanken

6.3.1 What is a Native XML Database? 6.3.2 Native XML Database Architectures

– 6.3.2.1 Text-Based Native XML Databases – 6.3.2.2 Model-Based Native XML Databases

6.3.3 Features of Native XML Databases – 6.3.3.1 Document Collections – 6.3.3.2 Query Languages – 6.3.3.3 Updates and Deletes – 6.3.3.4 Transactions, Locking, and Concurrency – 6.3.3.5 Application Programming Interfaces (APIs) – 6.3.3.6 Round-Tripping – 6.3.3.7 Remote Data – 6.3.3.8 Indexes – 6.3.3.9 External Entity Storage

6.3.4 Normalization, Referential Integrity, and Scalability – 6.3.4.1 Normalization – 6.3.4.2 Referential Integrity – 6.3.4.3 Scalability

Page 28: XML und Datenbanken © 2006 Markus Röder .

Artikel zur Entscheidung native or not

http://www.dotnet-magazin.de/itr/magazine/stuff/dm/Interview10_05.pdf

Page 29: XML und Datenbanken © 2006 Markus Röder .

Tamino im Einsatz

Page 30: XML und Datenbanken © 2006 Markus Röder .

Kommunikation mit Tamino

Page 31: XML und Datenbanken © 2006 Markus Röder .

Kommunikationssprachen

XQuery XUpdate

Page 32: XML und Datenbanken © 2006 Markus Röder .
Page 33: XML und Datenbanken © 2006 Markus Röder .
Page 34: XML und Datenbanken © 2006 Markus Röder .
Page 35: XML und Datenbanken © 2006 Markus Röder .

Middleware, zB Simplex

Page 36: XML und Datenbanken © 2006 Markus Röder .

Application Server f. Mapping

Bizztalk