XML und Datenbanken © 2006 Markus Röder .

Post on 06-Apr-2015

106 views 0 download

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

XML und Datenbanken

© 2006 Markus Röder

www.training-deluxe.de

Motivation für XML

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

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

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.

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

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

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 ¨

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.

Table Based Mapping

<database>

<table> <row>

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

</database>

Object-Relational Mapping

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

Mapping vom Profi

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

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

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

O

O

Im Hintergrund

Architektur

HTTP Zugriff

Altova Oracle Integration

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

Artikel zur Entscheidung native or not

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

Tamino im Einsatz

Kommunikation mit Tamino

Kommunikationssprachen

XQuery XUpdate

Middleware, zB Simplex

Application Server f. Mapping

Bizztalk