Semistrukturierte Daten 1 Präsentation: Anwendung von XML im Datenbankbereich Gruppe 5: Hubert Kosior (9626561) Mikolaj Koziarkiewicz (0309169) Florian Kruse (9626012) Markus Wegscheider (0325831) Thomas Zwanzinger (0125069) Felix Schernhammer (0225493) Sebastian Kerekes (0301942) Anwendung von XML im Datenbankbereich Motivation Dokumentenabspeicherung XML-Native DB XML Features in Oracle Wozu XML (in) Datenbanken? Wann nutzen? keine/sehr dynamische Struktur Daten aus verschiedenen Quellen komplexe Anfragen „Legacy Systems“ 2006-01-24 2 Anwendung von XML im Datenbankbereich Motivation Dokumentenabspeicherung XML-Native DB XML Features in Oracle Wozu XML (in) Datenbanken? Nachteile: reduzierte Effizienz RDBMS „alter“ und daher sicherer Kompromisslösung: „XML-enabled“ RDBMS Nicht immer besser! 2006-01-24 3 Anwendung von XML im Datenbankbereich Motivation Dokumentenabspeicherung XML-Native DB XML Features in Oracle XML – Mapping Umwandlung XML – in Relationen Strukturelle Analyse (mittels DTD) Umwandlung in Relationen (Primärschlüssel, Fremdschlüssel, Beziehungen,...) CLOB (Character Large Object) Kompletter XML – Baum gespeichert Verlust der DBMS Funktionalitäten (Anfragebearbeitung, Transaktionen,....) Probleme XML ist hierarchisch Feste Reihenfolge von Elementen Gemischte Inhalte möglich 2006-01-24 4 Anwendung von XML im Datenbankbereich Motivation Dokumentenabspeicherung XML-Native DB XML Features in Oracle Structure Mapping I Für jeden Endknoten spezielle Tabellen (Mapping von Elementen/Attributen) Buch XPath Tabelle pathid Struktur wird XPath kompatibel in Tabelle erfasst XPath Tabelle pathExp 1 /Buchbestand 2 /Buchbestand/Buch Wert (aus DTD ersichtlich) Buch .... Buch pathid Titel Autor Seiten Preis 2 The Adventures of Huckleberry Finn Mark Twain 336 12.75 2 In der Strafkolonie Franz Kafka 125 9.90 .... 2006-01-24 5 Anwendung von XML im Datenbankbereich Motivation Dokumentenabspeicherung XML-Native DB XML Features in Oracle Structure Mapping II DTD für XML Strukturen wird verwendet DTD muss vorhanden sein Wird eventuell adaptiert Vorteilhaft für viele gleiche Daten Unflexibel für stark unterschiedliche XML Daten sehr viele Tabellen Erhalt der Datentypen ( int, String,...) 2006-01-24 6 Anwendung von XML im Datenbankbereich Motivation Dokumentenabspeicherung XML-Native DB XML Features in Oracle Model Mapping I XML wird als Baum interpretiert, daher meist nur eine große Tabelle Struktur und Inhalt Knoten Vorgänger Reihe 1 Name Wert Buchbestand 2 1 1 Buch 3 2 1 Titel The Adventures.... 4 2 2 Autor Mark Twain 5 2 3 Seiten 336 6 2 4 Preis 12.75 7 1 2 Buch 8 8 1 Titel In der Strafkolonie 9 8 2 Autor Franz Kafka .... 2006-01-24 7 Anwendung von XML im Datenbankbereich Motivation Dokumentenabspeicherung XML-Native DB XML Features in Oracle Model Mapping II Freie Struktur (keine DTD notwendig) Keine Datentyp Erhaltung Kompakte Darstellung in DBMS (u.U nur eine Tabelle) Einfache Umwandlung XML RDBMS Sehr flexibel Schlechte Performance (Rekursionen!!) 2006-01-24 8 Anwendung von XML im Datenbankbereich Motivation Dokumentenabspeicherung XML-Native DB XML Features in Oracle CLOB (Character Large Object) Speichern des gesamten Objektbaums als CLOB Bei sehr unterschiedlichen XML Dokumenten (Dokumenten-orientiert) Suchfunktionen durch DBMS vorhanden (primitive Textsuche, XPath Anweisungen) Hersteller Abhängig 2006-01-24 9 Anwendung von XML im Datenbankbereich Motivation Dokumentenabspeicherung XML-Native DB XML Features in Oracle XML native Datenbank: Definition Defines a (logical) model for an XML document – as opposed to the data in that document – and stores and retrieves documents according to that model. At a minimum, the model must include elements, attributes, PCDATA, and document order. Has an XML document as its fundamental unit of (logical) storage, just as a relational database has a row in a table as its fundamental unit of (logical) storage. Is not required to have any particular underlying physical storage model. For example, it can be built on a relational, hierarchical, or object-oriented database, or use a proprietary storage format such as indexed, compressed files. 2006-01-24 10 Anwendung von XML im Datenbankbereich Motivation Dokumentenabspeicherung XML-Native DB XML Features in Oracle Typen XML nativer Datenbanken Textbasierte Datenbanken XML wird als Text gespeichert Benutzen von Indizes Modellbasierte Datenbanken Modell (z.B. DOM) des XML Dokuments wird gespeichert Schwierigkeit das Dokument wiederherzustellen (SQL expressivity) 2006-01-24 11 Anwendung von XML im Datenbankbereich Motivation Dokumentenabspeicherung XML-Native DB XML Features in Oracle Features von XML nativen Datenbanken Document Collections Query Sprachen: XPath (evtl. mit "Join-Erweiterung"), XQuery, etc. Transactions Problem mit Locking (was soll blockiert werden?) mögliche Lösung von Stijn Dekeyser, et al: annotiere gesperrte Knoten mit dem Kind, das gesperrt ist. 2006-01-24 12 Anwendung von XML im Datenbankbereich Motivation Dokumentenabspeicherung XML-Native DB XML Features in Oracle Sonstiges Round Tripping (= ursprüngliches XML Dokument aus der Datenbank wiederherstellen) Normalisierung (XLink bzw. Join nicht immer vorhanden) Referentielle Integrität – nur auf Dokumentenebene (DTD, XSchema, ...) 2006-01-24 13 Anwendung von XML im Datenbankbereich Motivation Dokumentenabspeicherung XML-Native DB XML Features in Oracle Oracle XML DB Früher 2 Möglichkeiten: Mit dem Oracle XML Developer's Kit (XDK) – ohne XML-Struktur Direkt als: Character Large Object (CLOB) Binary Large Object (BLOB) Binary File (BFILE) VARCHAR Heute: Abspeichern von XML als XMLType XML Datentyp XML Tabelle Oracle XML DB Repository 2006-01-24 14 Anwendung von XML im Datenbankbereich Motivation Dokumentenabspeicherung XML-Native DB XML Features in Oracle XMLType Seit Oracle9i release 1 (9.0.1) Darstellung der XML Dokumente als Instanz (von XMLType) in SQL Built-in Member Funktionen (z.B. extract() – gibt aus einen oder mehrere Knoten) API für PL/SQL und Java Typ für PL/SQL, SQL, C, Java (JDBC) und Oracle Data Provider for .NET (ODP.NET) Basiert auf XML Standards: XML Parser, XML DOM, and XML Schema Validator 2006-01-24 15 Anwendung von XML im Datenbankbereich Motivation Dokumentenabspeicherung XML-Native DB XML Features in Oracle XML Storage in Oracle XML DB Vor und Nachteile von LOB bzw. XMLType: Feature LOB Storage (mit Oracle Text Index) Strukturiertes Storage (mit B*Tree Index) Schemaflexibilität Sehr flexibel bei Schemaänderungen Limitierte Flexibilität Datenintegrität und Genauigkeit Behält ursprünglichen XML Inhalt unverändert XML Inhalt durch parsen nicht mehr ident mit dem Original, jedoch bez. DOM-Model unverändert Performance Mittelmäßig Hervorragendes DML Performance Verwendung in SQL Manche SQL Features Viele SQL Features, z.B.: Constraints, Indexen Speicherplatz Kann viel Speicherplatz gebrauchen Benötigt weniger Speicherplatz 2006-01-24 16 Literatur http://dx.doi.org/10.1145/383034.383038 http://csdl.computer.org/comp/proceedings/icde/2002/1531/00/15310335.pdf Enderle Jost, XML in Datenbanken, Informatik Spektrum 24.12.2001, S.357-368 Oracle® XML DB Developer's Guide 10g Release 1 (10.1) http://download-west.oracle.com/docs/cd/B14117_01/appdev.101/b10790/toc.htm 2006-01-24 17 Danke Schön