XML und Datenbanken - Universität Oldenburg

Werbung
Datenbanken und XML
Vortrag: Oliver Klein
Seminar Weltweite Datenbanken
WS 2000/01
CvO Universität Oldenburg
Datenbanken und XML - Überblick
• XML und Einsatzbereiche von XML
• Verwendung von Datenbanken und XML
– Produktkategorien
• XML-Daten speichern, rekonstruieren, abfragen
– Unterschiedliche Mapping-Verfahren
– Einschränkungen beim Mapping
• XML–Datenbanken und –Produkte
– Beispiele: Oracle8i, Tamino (Software AG), etc.
• Fazit
Oliver Klein WS 2000/01
Datenbanken und XML
2
XML – Extensible Markup Language
• Beschreibung von
– unstrukturierten
– semistrukturierten
Daten
<buch isbn='0-201-342855'>
<titel>
The XML companion
</titel>
<autor>
<name>Bradley</name>
<vorname>Neil</vorname>
</autor>
</buch>
Oliver Klein WS 2000/01
• Spezifikation durch DTD
(Document Type Definition)
– Datenschema
– kontextfreie Grammatik
<!ELEMENT
<!ATTLIST
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
Datenbanken und XML
buch (titel,autor+)>
isbn #REQUIRED>
titel (#PCDATA)>
autor (name,vorname)>
name (#PCDATA)>
vorname (#PCDATA)>
3
XML – Eigenschaften und Einsatzbereiche
– selbstbeschreibend
– flexibel
– erweiterbar
Struktur
Daten
bsp.xml
XSL
DTD
CSS
XML-Schema
– plattformunabhängig
– standardisiert (W3C)
Oliver Klein WS 2000/01
Datenbanken und XML
4
Einsatzbereiche von XML
•
•
•
•
EDI (Electronic Data Interchange)
Verbindungen zwischen Softwarekomponenten
Anbindung von Datenbanken an Applikationen
Import/ Export von Datenbankinhalten
filtern
restrukturieren
synthetisieren
XML
suchen
analysieren
anfragen
generieren
Oliver Klein WS 2000/01
Datenbanken und XML
5
Speichern von XML-Daten
• XML-Dateien im Dateisystem
• OO-Datenbanken (eXcelon)
• (DB)MS für semistrukturierte Daten (LORE)
bzw. speziell angepasste Systeme
• (Objekt-)Relationale Datenbanken mit XML
Erweiterungen (Oracle8i, IBM DB2)
• XML-Server (Tamino, eXcelon, POET)
Oliver Klein WS 2000/01
Datenbanken und XML
6
XML-Daten in Datenbanken
Motivation:
•
•
•
•
•
•
Effiziente und strukturierte Speicherung
Indexe
Sicherheitskonzepte – Transaktionen – Datenintegrität
Mehrbenutzerfähigkeit
Schnelle Anfrageauswertung
weit verbreitete Technologie/ Systeme
Oliver Klein WS 2000/01
Datenbanken und XML
7
Verwaltung und Verarbeitung von XML-Daten
Produktkategorien:
• Middleware:
– Datentransfer via JDBC, ODBC
XML Dokument Middleware Datenbank
• XML-fähige Datenbanken:
– DBMS erweitert um XML-Verarbeitungsfunktionalität
• Native XML Datenbanken:
1.
2.
3.
4.
speichern XML vollständig in RDB als BLOB oder im Dateisystem
speichern modifizierte XML-Dokumente (komprimiert oder pre-parsed)
Abbildung von XML- bzw. DOM-Objekten auf Tabellen oder OO-DB
(Abbildung der Datenstruktur oder DTD auf die Datenbank)
Oliver Klein WS 2000/01
Datenbanken und XML
8
Verwaltung und Verarbeitung von XML-Daten
Produktkategorien (Forts.):
• XML (Application) Server:
– XML-Datenserver für verteilte Anwendungen
(e-commerce, business-to-business)
– Application-Server generieren dynamisch XML-Daten
(über Skripte mit eingebetteten SQL-Statements)
• Content Management Systeme:
– verwalten und managen XML-Inhalte
(Editoren,Versionskontrolle, Multi-User)
• Persistente DOM Implementierungen:
– speichern DOM Objekte in Datenbanken
Oliver Klein WS 2000/01
Datenbanken und XML
9
Abbildungen zwischen XML und Datenbanken
"Mapping"
• unterschiedliche Modelle:
– Templates
– Tabellen-basiert
– Objekt-basiert
– mit oder ohne DTD
 unterschiedliche Komplexität
• alternative Verfahren
Oliver Klein WS 2000/01
Datenbanken und XML
10
Template Driven Mapping
<?xml version="1.0"?>
<FlightInfo>
<Intro>
the following flights have available seats:
</Intro>
<SelectStmt>
SELECT Airline, FltNumber, Depart, Arrive
FROM Flights
</SelectStmt>
</FlightInfo>
RDBMS
Oliver Klein WS 2000/01
Data Transfer
(Middleware)
Datenbanken und XML
11
Template Driven Mapping Output
<?xml version="1.0"?>
<FlightInfo>
<Intro>
the following flights have available seats:
</Intro>
<Flights>
<Row>
<Ailine>ACME</Ailine>
<FltNumber>123</FltNumber>
<Depart>Dec 12, 2001 13:43</Depart>
<Arrive>Dec 13, 2001 01:21</Arrive>
</Row>
...
</Flights>
</FlightInfo>
Oliver Klein WS 2000/01
Datenbanken und XML
12
Template Driven Mapping
• Erweiterungen:
– freie Platzierung der Anfrageergebnisse
– Parametrisierung von Select Statements zur Verwendung in
untergeordneten Anfragen
– Programmierkonstrukte (Schleifen und Bedingungsabfragen)
• Vorteile:
– flexibles Mapping
• Nachteile:
– Transfer nur von DB  XML
Oliver Klein WS 2000/01
Datenbanken und XML
13
Model Driven Mappings
Table Model:
• Vorteile:
– implizites Mapping
– Einfach zu
<database>
<table>
Implementieren
<row>
<column1>...</column1> – effizienter Datenaustausch zwischen RDB
<column2>...</column2>
...
</row>
...
</table>
...
</database>
Oliver Klein WS 2000/01
• Nachteile
– flache Strukturen
– nur für einfache XMLDaten geeignet
Datenbanken und XML
14
Model Driven Object Based Mapping
Data Specific Object Model:
Orders
<Orders>
<SalesOrder SONumber="12345">
SalesOrder
<Customer CustNumber="543">
…
</Customer>
<OrderDate>150999</OrderDate>
Customer
Line
<Line LineNumber="1">
<Product Name="Cherries">
…
Produkt
</Product>
<Quantity Unit="ton">2</Quantity>
</Line>
</SalesOrder>
</Orders>
Oliver Klein WS 2000/01
Datenbanken und XML
15
Data Specific Object Model – einfaches Mapping
• Komplexe Elemente
• Subelemente und Attribute
<Line LineNumber="1">
<Product name="Cherries">
…
</Product>
<Quantity Unit="ton">
2
</Quantity>
</Line>
<Line LineNumber="1">
<Product Name="Cherries">
…
</Product>
<Quantity Unit="ton>
2
</Quantity>
</Line>
werden Objekte
Oliver Klein WS 2000/01
werden Eigenschaften von
Objekten
Datenbanken und XML
16
Ein einfaches Objekt Mapping
<Line LineNumber="1">
<Product Name="Cherries">
…
</Product>
<Quantity Unit="ton">
2
</Quantity>
</Line>
object Line {
lineNumber = "1";
product = {prodPtr};
quantity = "2";
quantUnit = "ton";
}
object Product {
name = "Cherries";
…
}
Oliver Klein WS 2000/01
Datenbanken und XML
17
Ein Objekt-relationales Mapping
Line
Product
lineNumber quantity
quantUnit
lineNumber prodName
...
1
ton
1
...
2
...
Cherries
...
Zusammenfassung:
1.
2.
XML-Daten als Objektbaum
• komplexe Elemente werden Objekte
• einfache Elemente und Attribute werden zu Eigenschaften
direkte Abbildung in OO-DB oder
Objekt-relationales Mapping in Relationale DB
Oder: Kombination von 1. und 2. und XML DTD
Oliver Klein WS 2000/01
Datenbanken und XML
18
Bewertung des Objekt-Modells
• Einschränkungen des Verfahrens:
– keine CDATA-Abschnitte, Entity-Referenzen, XML-Instruktionen
und Kommentare
– Metadaten (Dokumentname, DTD, etc.) gehen verloren
• Vorteile:
– verarbeitet alle XML Dokumente
– erhält die logische Struktur der Daten
– ideal für hoch strukturierte Dokumente
• Verbreitung des Verfahrens:
– RDBMS: Oracle8i, IBM DB2, Informix, Microsoft SQL Server
– Middleware: Oracle SQL-Utility for Java, ADO, XML-DBMS
Oliver Klein WS 2000/01
Datenbanken und XML
19
Relationale DB-Schemata aus DTDs generieren
Ein einfacher Algorithmus:
1. Für jedes komplexe Element eine Tabelle mit PK
erzeugen:
<!ELEMENT Line (Product, Quantity)>
CREATE TABLE Line (
Line_ID NUMBER() NOT NULL
)
2. Jeden Element-Inhalt betrachten und
•
für einfache Referenzen zu einfachen Elementen eine Spalte
erzeugen
Line
<!ELEMENT Line (Product, Quantity)>
<!ELEMENT Quantity (#PCDATA)>
Oliver Klein WS 2000/01
Datenbanken und XML
Line_ID (PK) Quantity
20
Relationale DB-Schemata aus DTDs generieren
•
für mehrfache Elemente (*) abhängige Tabellen mit FK erzeugen
•
für Referenzen zu komplexen Elementen Fremdschlüssel
erzeugen
<!ELEMENT Line (Product, Quantity)>
CREATE TABLE Product (
Product_ID NUMBER() NOT NULL,
Line_ID NUMBER() FK
)
•
•
für PCDATA in komplexen Elementen abhängige Tabelle mit FK
erzeugen
optionale Elemente (?) in "nullable" Spalten abbilden und
evtl. Spalten für Ordnungsnummern von Subelementen oder
PCDATA
Oliver Klein WS 2000/01
Datenbanken und XML
21
Relationale DB-Schemata aus DTDs generieren
3. Jedes Attribut betrachten und
•
für einfache Attribute eine Spalte erzeugen
<!ELEMENT Product (... )>
<!ATTLIST Product Name CDATA #REQUIRED>
CREATE TABLE Product (
Product_ID NUMBER() NOT NULL,
Line_ID NUMBER() FK,
Product_Name VARCHAR() NOT NULL
)
•
•
für mehrwertige Attribute abhängige Tabellen mit FK erzeugen
optionale (#IMPLIED) Attribute werden "nullable" und
Default-Werte werden direkt abgebildet
Oliver Klein WS 2000/01
Datenbanken und XML
22
DTDs aus relationalen DB-Schemata generieren
Ein einfacher Algorithmus:
1. Für jede Tabelle ein Element mit sequentiellen
Subelementen (Spalten) erzeugen
2. Für jede Spalte (außer PK und FK) ein XML-Element mit
PCDATA erzeugen
3. Für jede abhängige Tabelle (FK-PK) ein Subelement
erzeugen
4. "nullable" Spalten werden optionale (?) Subelemente
Oliver Klein WS 2000/01
Datenbanken und XML
23
Generelle Probleme des (relationalen) Mappings
• Namenskollisionen und illegale Namen
• keine Datentypen und Längenbeschränkungen (DTDDBSchema)
• keine eindeutige Kennzeichnung von Elementen/Attributen als
Schlüssel (DTDDB-Schema)
• keine Festlegung ob Primärschlüssel im Eltern- oder
Kindelement
• Spalten für sequentielle Ordnung nicht erkennbar
(DB-SchemaDTD)
DTD  DTD
• Nicht "Round-trip"-fähig:
DB-Schema
Oliver Klein WS 2000/01
Datenbanken und XML
24
XML in (relationalen) Datenbanken
Mappingverfahren
Template Driven
Mapping
Model Driven Mapping
Table Model
DataSpecific
Object
Models
Oliver Klein WS 2000/01
Einsatzbereiche
• dynamische Web-Sites
• Transfer Middleware
DB  XML
• Transfer Middleware
DB  XML
XML  DB
ohne
DTD • weit verbreitet
mit
DTD
Verarbeitungsrichtungen
• manuelle oder automatische
Abbildung
Datenbanken und XML
DB  XML
XML  DB
25
Alternative Abbildungen auf Datenbanken
• Struktur und Daten auf Instanzebene speichern:
Eine ähnliche Tabelle
speichert die Attribute
• Inlining-Techniken:
Element
ID
Parent
Child#
String
buch
100
-
titel
101
100
1
The XML ...
autor
102
100
2
name
103
102
1
Bradley
vorname
104
102
2
Neil
Sub-(Sub-...)elemente werden zu Spalten einer Relation (für alle
Elemente)
erzeugt Redundanz
• Manuelle Verfahren:
Mapping z.B. durch "Data Access Definition" (IBM DB2)
Oliver Klein WS 2000/01
Datenbanken und XML
26
Beispiele für XML verarbeitende Systeme
• XML-fähige Datenbanken:
– Oracle8i RDBMS mit vielen Erweiterungen und
Werkzeugen für XML
• XML-Server:
– Tamino XML Plattform für E-Business
Oliver Klein WS 2000/01
Datenbanken und XML
27
XML-fähige Datenbanken: Oracle8i
• XDK
(XML Developer's Kit)
– XML Parser und XSL
Processors (Java, C, C++,
and PL/SQL)
– XML Class Generators
(Java and C++)
– XML SQL Utility for Java
– XML Transviewer Beans
• XSQL Servlet
• Oracle8i InterMedia
– Oracle JServer (JVM)
Oliver Klein WS 2000/01
• XML Dokumente speichern als
– komplette Dokumente
(CLOB, BLOB)
– Daten in
objekt-relationalen Tabellen
– XML und Daten
kombinieren durch Views
• Verarbeitung und Retrieval
durch
– XML Parser
– XML SQL Utility
– XSL Processor
Datenbanken und XML
28
XML Dokumente in Oracle8i
XML
Documents
SQL oder Object
Queries
--------
XML SQL Utility for Java
Oracle8i
Oliver Klein WS 2000/01
Datenbanken und XML
29
XML-Daten zwischen Anwendungen austauschen
•
Anwendung 1
(XSQL Servlet)
1. verarbeitet
Formulardaten (SQLQuery)
2. generiert XML aus DB
mit DTD
3. sendet XML-Dokument
•
Anwendung 2
1. empfängt XML
2. verarbeitet (XMLParser)
3. speichert XML (XML
SQL Utility)
Oliver Klein WS 2000/01
Datenbanken und XML
30
XML-Server: Tamino (Software AG)
"Transaction Architecture for the Management
of Internet Objects"
• XML-native Speicherung (XML-Database)
• Integration anderer (relationaler) Datenquellen (X-Node)
• Anwendungsentwicklung (Bolero, X-Studio, ...)
Browser
WWW
E-Business
client
weitere
Anwendungen
Tamino Server
XML-engine
XML / Data Map / SQL
Oliver Klein WS 2000/01
X-Nodes
Manager
Web- & Application Server
Datenbanken und XML
externe
Datenquellen
31
Anfrageverarbeitung in Taminos XML-Engine
Query
(URL)
XML
Output
XML Objects
DTDs
XML engine
Query
Interpreter
Utilities
Object
Composer
Data
Map
XML
Parser
Object
Processor
XML Store, externe Datenquellen, interner SQL Store
Oliver Klein WS 2000/01
XML Parser:
Wohlgeformtheit & Korrektheit
Object Processor:
Speichert XML und SQL Daten
Query Interpreter:
X-Query (XPath-ähnlich)
Interpretation gemäß Data Map
Objekt Composer:
Generiert XML Dokumente aus
Anfragen
Utilities:
Beschleunigung beim Laden
Datenbanken und XML
32
Zusammenfassung, Fazit & Ausblick
XML als Austauschformat für strukturierte Daten
zwischen Anwendungen, WWW und Datenbanken ist
bereits weit entwickelt, doch ...
• Verlust von Metadaten und Zusatzinformationen bei allen
Mappingverfahren
• Schwierigkeiten mit unstrukturierten Daten
• viele Systeme erfordern manuelles Mapping
• native Speicherung verkürzt Antwortzeiten
Zukunft: XML-Datenbanken als neues Paradigma neben
OODBMS und RDBMS
Oliver Klein WS 2000/01
Datenbanken und XML
33
Herunterladen