Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität...

33
Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg

Transcript of Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität...

Page 1: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Datenbanken und XML

Vortrag: Oliver Klein

Seminar Weltweite Datenbanken

WS 2000/01

CvO Universität Oldenburg

Page 2: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 2

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

Page 3: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 3

XML – Extensible Markup Language

• Beschreibung von– unstrukturierten– semistrukturierten

Daten

• Spezifikation durch DTD(Document Type Definition)

– Datenschema – kontextfreie Grammatik

<buch isbn='0-201-342855'>

<titel>

The XML companion

</titel>

<autor>

<name>Bradley</name>

<vorname>Neil</vorname>

</autor>

</buch>

<!ELEMENT buch (titel,autor+)>

<!ATTLIST isbn #REQUIRED>

<!ELEMENT titel (#PCDATA)>

<!ELEMENT autor (name,vorname)>

<!ELEMENT name (#PCDATA)>

<!ELEMENT vorname (#PCDATA)>

Page 4: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 4

XML – Eigenschaften und Einsatzbereiche

– selbstbeschreibend– flexibel– erweiterbar

– plattformunabhängig– standardisiert (W3C)

StrukturDaten

bsp.xmlXSL

DTD

CSS

XML-Schema

Page 5: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 5

Einsatzbereiche von XML

• EDI (Electronic Data Interchange)

• Verbindungen zwischen Softwarekomponenten

• Anbindung von Datenbanken an Applikationen

• Import/ Export von Datenbankinhalten

XML

filtern

restrukturieren

synthetisieren

analysieren

anfragensuchen

generieren

Page 6: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 6

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)

Page 7: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 7

XML-Daten in Datenbanken

Motivation:

• Effiziente und strukturierte Speicherung

• Indexe

• Sicherheitskonzepte – Transaktionen – Datenintegrität

• Mehrbenutzerfähigkeit

• Schnelle Anfrageauswertung

• weit verbreitete Technologie/ Systeme

Page 8: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 8

Verwaltung und Verarbeitung von XML-Daten

Produktkategorien:• Middleware:

– Datentransfer via JDBC, ODBCXML Dokument Middleware Datenbank

• XML-fähige Datenbanken:– DBMS erweitert um XML-Verarbeitungsfunktionalität

• Native XML Datenbanken:1. speichern XML vollständig in RDB als BLOB oder im Dateisystem

2. speichern modifizierte XML-Dokumente (komprimiert oder pre-parsed)

3. Abbildung von XML- bzw. DOM-Objekten auf Tabellen oder OO-DB

4. (Abbildung der Datenstruktur oder DTD auf die Datenbank)

Page 9: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 9

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

Page 10: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 10

Abbildungen zwischen XML und Datenbanken

"Mapping"• unterschiedliche Modelle:

– Templates

– Tabellen-basiert

– Objekt-basiert

– mit oder ohne DTD unterschiedliche Komplexität

• alternative Verfahren

Page 11: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 11

Template Driven Mapping

<?xml version="1.0"?><FlightInfo>

<Intro>the following flights have available seats:

</Intro><SelectStmt>

SELECT Airline, FltNumber, Depart, ArriveFROM Flights

</SelectStmt></FlightInfo>

Data Transfer(Middleware)RDBMS

Page 12: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 12

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>

Page 13: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 13

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

Page 14: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 14

Model Driven Mappings

Table Model: • Vorteile:– implizites Mapping

– Einfach zu Implementieren

– effizienter Daten-austausch zwischen RDB

• Nachteile– flache Strukturen

– nur für einfache XML-Daten geeignet

<database><table>

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

</row>...

</table>...

</database>

Page 15: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 15

<Orders><SalesOrder SONumber="12345">

<Customer CustNumber="543">…</Customer><OrderDate>150999</OrderDate><Line LineNumber="1">

<Product Name="Cherries">…</Product><Quantity Unit="ton">2</Quantity>

</Line></SalesOrder>

</Orders>

Orders

SalesOrder

Customer Line

Produkt

Model Driven Object Based Mapping

Data Specific Object Model:

Page 16: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 16

Data Specific Object Model – einfaches Mapping

• Komplexe Elemente

<Line LineNumber="1"> <Product name="Cherries"> … </Product> <Quantity Unit="ton"> 2 </Quantity></Line>

werden Objekte

• Subelemente und Attribute

<Line LineNumber="1"> <Product Name="Cherries"> … </Product> <Quantity Unit="ton> 2 </Quantity></Line>

werden Eigenschaften von Objekten

Page 17: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 17

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";…

}

Page 18: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 18

Ein Objekt-relationales Mapping

Line

lineNumber quantity quantUnit

1 2 ton

...

Product

lineNumber prodName ...

1 Cherries ...

...

Zusammenfassung:1. XML-Daten als Objektbaum

• komplexe Elemente werden Objekte• einfache Elemente und Attribute werden zu Eigenschaften

2. direkte Abbildung in OO-DB oderObjekt-relationales Mapping in Relationale DB

Oder: Kombination von 1. und 2. und XML DTD

Page 19: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 19

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

Page 20: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 20

Relationale DB-Schemata aus DTDs generieren

Ein einfacher Algorithmus:

1. Für jedes komplexe Element eine Tabelle mit PK erzeugen:

<!ELEMENT Line (Product, Quantity)>

Line

Line_ID (PK) Quantity<!ELEMENT Line (Product, Quantity)><!ELEMENT Quantity (#PCDATA)>

2. Jeden Element-Inhalt betrachten und• für einfache Referenzen zu einfachen Elementen eine Spalte

erzeugen

CREATE TABLE Line (Line_ID NUMBER() NOT NULL

)

Page 21: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 21

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

Page 22: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 22

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

Page 23: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 23

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

Page 24: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 24

Generelle Probleme des (relationalen) Mappings

• Namenskollisionen und illegale Namen

• keine Datentypen und Längenbeschränkungen (DTDDB-Schema)

• keine eindeutige Kennzeichnung von Elementen/Attributen als Schlüssel (DTDDB-Schema)

• keine Festlegung ob Primärschlüssel im Eltern- oder Kindelement

• Spalten für sequentielle Ordnung nicht erkennbar (DB-SchemaDTD)

• Nicht "Round-trip"-fähig:DTD DTD

DB-Schema

Page 25: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 25

XML in (relationalen) Datenbanken

Mappingverfahren EinsatzbereicheVerarbeitungs-

richtungen

Template Driven Mapping

• dynamische Web-Sites

• Transfer MiddlewareDB XML

Mod

el Driven

Map

pin

g

Table Model • Transfer MiddlewareDB XML

XML DB

Data-Specific Object Models

ohne DTD • weit verbreitet

• manuelle oder automatische Abbildung

DB XML

XML DBmit

DTD

Page 26: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 26

Alternative Abbildungen auf Datenbanken

• Struktur und Daten auf Instanzebene speichern:

Eine ähnliche Tabellespeichert die Attribute

• Inlining-Techniken: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)

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

Page 27: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 27

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

Page 28: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 28

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)

• XML Dokumente speichern als

– komplette Dokumente(CLOB, BLOB)

– Daten inobjekt-relationalen Tabellen

– XML und Daten kombinieren durch Views

• Verarbeitung und Retrieval durch

– XML Parser

– XML SQL Utility

– XSL Processor

Page 29: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 29

XML Dokumente in Oracle8i

XML SQL Utility for JavaXML SQL Utility for Java

Oracle8i

--- -------

--- -------

SQL oder ObjectQueries

XML Documents

Page 30: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 30

XML-Daten zwischen Anwendungen austauschen

• Anwendung 1(XSQL Servlet)1. verarbeitet

Formulardaten (SQL-Query)

2. generiert XML aus DB mit DTD

3. sendet XML-Dokument

• Anwendung 21. empfängt XML2. verarbeitet (XML-

Parser)3. speichert XML (XML

SQL Utility)

Page 31: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 31

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, ...)

Tamino Server

XML / Data Map / SQL

XML-engineX

-Nodes

Manager

Web- & Application Server

externeDaten-quellen

weitereAnwendungen

BrowserE-Business

clientWWWWWW

Page 32: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 32

Anfrageverarbeitung in Taminos XML-Engine

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

XML engineQuery

Interpreter

ObjectComposer

Utilities

ObjectProcessor

XMLParser

XMLOutput

Query(URL)

XML ObjectsDTDs

DataMap

XML Store, externe Daten-quellen, interner SQL Store

Page 33: Datenbanken und XML Vortrag: Oliver Klein Seminar Weltweite Datenbanken WS 2000/01 CvO Universität Oldenburg.

Oliver Klein WS 2000/01 Datenbanken und XML 33

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