Semistrukturierte Daten 1 Präsentation: Anwendung von XML im Datenbankbereich Gruppe 5: Hubert Kosior ( ) Hubert Kosior ( ) Mikolaj Koziarkiewicz ( ) Mikolaj Koziarkiewicz ( ) Florian Kruse ( ) Florian Kruse ( ) Markus Wegscheider ( ) Markus Wegscheider ( ) Thomas Zwanzinger ( ) Thomas Zwanzinger ( ) Felix Schernhammer ( ) Felix Schernhammer ( ) Sebastian Kerekes ( ) Sebastian Kerekes ( )
Wozu XML (in) Datenbanken? Wann nutzen? keine/sehr dynamische Struktur Daten aus verschiedenen Quellen komplexe Anfragen Legacy Systems Anwendung von XML im Datenbankbereich MotivationDokumentenabspeicherung 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! Anwendung von XML im Datenbankbereich MotivationDokumentenabspeicherung 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 Anwendung von XML im Datenbankbereich MotivationDokumentenabspeicherung XML-Native DB XML Features in Oracle
Structure Mapping I XPath Tabelle pathidpathExp Wert (aus DTD ersichtlich) 1/Buchbestand 2/Buchbestand/BuchBuch.... Anwendung von XML im Datenbankbereich MotivationDokumentenabspeicherung XML-Native DB XML Features in Oracle Für jeden Endknoten spezielle Tabellen (Mapping von Elementen/Attributen) Buch Struktur wird XPath kompatibel in Tabelle erfasst XPath Tabelle BuchpathidTitelAutorSeitenPreis 2 The Adventures of Huckleberry Finn Mark Twain In der Strafkolonie Franz Kafka
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,...) Anwendung von XML im Datenbankbereich MotivationDokumentenabspeicherung 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 Anwendung von XML im Datenbankbereich MotivationDokumentenabspeicherung XML-Native DB XML Features in Oracle KnotenVorgängerReiheNameWert 1 Buchbestand 211Buch 321Titel The Adventures Autor Mark Twain 523Seiten Preis Buch 881Titel In der Strafkolonie 982Autor Franz Kafka....
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!!) Anwendung von XML im Datenbankbereich MotivationDokumentenabspeicherung 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 Anwendung von XML im Datenbankbereich MotivationDokumentenabspeicherung 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. Anwendung von XML im Datenbankbereich MotivationDokumentenabspeicherung XML-Native DB XML Features in Oracle
Typen XML nativer Datenbanken Textbasierte Datenbanken XML wird als Text gespeichert XML wird als Text gespeichert Benutzen von Indizes Benutzen von Indizes Modellbasierte Datenbanken Modell (z.B. DOM) des XML Dokuments wird gespeichert Modell (z.B. DOM) des XML Dokuments wird gespeichert Schwierigkeit das Dokument wiederherzustellen (SQL expressivity) Schwierigkeit das Dokument wiederherzustellen (SQL expressivity) Anwendung von XML im Datenbankbereich MotivationDokumentenabspeicherung 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. mögliche Lösung von Stijn Dekeyser, et al: annotiere gesperrte Knoten mit dem Kind, das gesperrt ist. Anwendung von XML im Datenbankbereich MotivationDokumentenabspeicherung 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,...) Anwendung von XML im Datenbankbereich MotivationDokumentenabspeicherung 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 Mit dem Oracle XML Developer's Kit (XDK) – ohne XML-Struktur Direkt als: Direkt als: Character Large Object (CLOB) Binary Large Object (BLOB) Binary File (BFILE) VARCHAR Heute: Abspeichern von XML als XMLType XML Datentyp XML Datentyp XML Tabelle XML Tabelle Oracle XML DB Repository Oracle XML DB Repository Anwendung von XML im Datenbankbereich MotivationDokumentenabspeicherung 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 Anwendung von XML im Datenbankbereich MotivationDokumentenabspeicherung 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 PerformanceMittelmäß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 Anwendung von XML im Datenbankbereich MotivationDokumentenabspeicherung XML-Native DB XML Features in Oracle
Literatur Enderle Jost, XML in Datenbanken, Informatik Spektrum , S Oracle® XML DB Developer's Guide 10g Release 1 (10.1)
Danke Schön