View
109
Download
1
Category
Preview:
Citation preview
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
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)>
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
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
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)
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
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)
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
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
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
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>
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
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>
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:
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
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";…
}
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
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
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
)
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
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
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
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
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
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
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
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
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
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)
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
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
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
Recommended