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 (DTDDBSchema) • 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) 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