Hauptseminar XML-Datenbanken XML-Systeme Schwerpunkt Native XML-DBMS Prof. R. Bayer, Ph. D. Prof. Dr. D. Kossmann Betreuer: Bearbeiter: Termin: Frank Ramsak Hicham Loukili 05.07.2001 Hauptseminar Page 1 XML-Systeme mit Schwerpunkt „native“ XML-DBMS Gliederung § XML Systeme im Überblick § Produktkategorien § Anforderungen an XML-Datenbanken § Native XML-Datenbanken (XML-DBMS) § Produktevaluation § eXcelon Server § Gemeinsamkeit der Produkte § Zusammenfassung XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 2 1 Motivation § Einsatzgebiete von XML § § § § § Website-Management Dokumentenverwaltung / content management Universelles Datenaustauschformat Anbindung von Electronic-Business-Anwendungen ... § Daten müssen aber nicht nur ausgetauscht, sondern auch gespeichert werden: § Unterschiedliche Lösungsansätze: relational vs. „native“ § Unterschiedliche Anwendungsgebiete: Application Server, ContentManagement-Systeme à Vielzahl von XML-Systemen XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 3 Produktkategorien-Übersicht Eine zentrale Anlaufstelle im Internet zum Thema XML und Datenbanken ist die Sammlung von R. Bourret : http://www.rpbourret.com/xml/XMLDatabaseProds.htm Produkte werden in folgende Kategorien eingeteilt: § Middleware § XML-Enabled Datenbanken § Native XML Datenbanken § XML Server § XML Applikation Server § Content Management Systeme Die Grenzen zwischen einigen dieser Kategorien sind schwammig XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 4 2 Data-Centric vs. Dokument-Centric Es gibt zwei Arten von XML-Dokumenten: § Datenorientierte (Data-Centric) § Schwerpunkt auf Inhalt der einzelnen Struktur, d.h. der einzelnen Attribute/Elemente § i.d.R. feste Struktur für eine große Anzahl von Dokumenten à Dokumente unterscheiden sich nur in den Daten Beispiel: Bestellformulare § Dokumentorientierte (Document-Centric) § Dokument samt Struktur wird betrachtet à Struktur enthält Informationen Beispiel: Datenbankpublikationen in DBLP XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 5 Data-Centric vs. Document-centric Beispiel § Data-centric Dokumente sind strukturierter <Memo> <MeetingTime>10:30AM</MeetingTime> <Purpose>Discuss Budget</Purpose> <Location>ninth floor</Location> </Memo> § Document-centric Dokument: <Memo> Please make sure you are at the <Location>ninth floor</Location>by <MeetingTime>10:30 AM</MeetingTime> to<Purpose>discuss the budget</Purpose> </Memo> XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 6 3 Kategorie: Middleware Sind Software Produkte: § Die bei Data-Centric Anwendungen benutzt werden § Sie dienen zur Übertragung der Daten zwischen XMLDokumenten und Datenbanken. Beispiel: XML SQL Utility für Java (Oracle) XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 7 Middleware (Beispiel) XML SQL Utility für Java besteht aus mehreren Klassen, welche: § SQL Abfragen ausführen § XML-Dokumente als Resultat zurückgeben § XML Daten in DB speichern XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 8 4 Middleware (Beispiel) § Struktur des Resultats basiert auf der internen Struktur des Datenbankschemas SELECT EMPNO, ENAME FROM EMP WHERE EMPNO = 7654; <?xml version="1.0"?> <ROWSET> <ROW id="1"> <EMPNO>7654</EMPNO> <ENAME>MARTIN</ENAME> </ROW> </ROWSET> § Jeder Attributname bildet ein neues Tag; Attributwerte werden damit getagt. § Extraelement zur Zusammenfassung aller Attribute eines Tupels. XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 9 Kategorie: XML-Enabled Datenbanken Sind Datenbanken: § mit zusätzlichen Komponenten zur Verarbeitung von XMLDokumenten: § verwalten den lesenden und zum Teil schreibenden Zugriff auf XMLDaten § Die Abspeicherung (und damit die Transformation) der Daten unterscheidet sich je nach Lösung § Der Zugriff und die Bearbeitung der Daten erfolgt entweder durch standardisierte XML-Technologie (XPath, DOM und SAX) oder mittels SQL. § Einsatz: Data-Centric Anwendungen § Beispiel für XEDs ist der DB2 XML Extender von IBM. XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 10 5 XML-Enabled Datenbanken (Beispiel) § XML Extender ermöglicht Extraktion, Ablegen und Zugriff auf XML-Dokumente in DB2 § Transformation zwischen XML und rel. Daten möglich § Im Document Access Definition File (DAD) wird festgehalten, wie strukturierte XML Dokumente abgelegt oder erstellt werden. § XML Column (komplette Dokument wird eine Spalte abgelegt) § XML Collection (XML Daten werden auf eine Menge von rel. Tab abgebildet) XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 11 Kategorie: XML-Server § i.d.R. für Data-Centric Anwendungen § XML-Server bieten nicht nur eine Datenbank mit XML-Fähigkeiten, sondern ein meist komplexes System bestehend aus Werkzeugen und einer (XML-) Datenbank. § Nach Ansicht der Giga-Analysten lassen sich XML-Server in vier funktionelle Segmente einteilen: § Formatierung und Präsentation von XML-Dokumenten § Ausführung von Geschäftslogik § Langfristige und kurzfristige Speicherung § Verbindung zu bestehenden Informationssystemen XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 12 6 XML-Server (Beispiel- Bluestone Server von HP) XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 13 Kategorie: XML-Applikation Server § XML-Appliktionen Server sind Web-Applikationen. § Sie verarbeiten, sowohl „Data-Centric“ als auch „Document-Centric“ Dokumente. § Sie dienen zur Einbindung von DB in den Webauftritt § Sie verwenden eingebettete SQL-Anweisungen innerhalb einer Skriptsprache um Daten abzufragen und XML-Dokumente dynamisch zu generieren. § Die Trennlinie zwischen XML-Server und XMLApplikation Server ist vage. § Beispiel: Cocoon von Apache.org XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 14 7 Kategorie: Content Management Systeme (CMS) Document-Centric Anwendungen Definition: Der Begriff CMS beinhaltet die Integration, Persistenz und Verteilung von Informationen verschiedenen Typs eines begrenzten Themenbereich, wie z.B. Produktinformationen § Integration von Inhalten aus unterschiedlichen Datenquellen § Persistente Speicherung dieser Inhalte § Aufbereitung der Inhalte für die Ausgabe auf unterschiedlichen Endgeräten bzw. unterschiedliche Medien Content Integration of different Sources Persistent Content Storage Content Mediation for different Devices XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 15 Kategorie: Native XML-DBMS § Motivation: Die Speicherung von XML-Objekten mittels RDBMS oder ODBMS ist zwar möglich, aber nicht optimal. → Deshalb sind neue Datenbanksysteme („native“ XMLDBMS) entwickelt worden, die ganz speziell auf die Speicherung von XML-Strukturen ausgerichtet sind. § Definition: XML-DBMS sind Datenbanken, die XML-Dokumente in ihren echten („native“) Format speichern und verarbeiten können. XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 16 8 Anforderungen an XML-DBMS § Speicherung von XML-Dokumenten als XML § Unterstützung XML-spezifischer Anfragesprachen: z.B. XML-QL, XQL, XPath, QUILT à liefert XML als Ergebnis § Effiziente Unterstützung struktur-, wert- und textbasierter Anfragen § Unterstützung von daten- und dokumentorientierten XML-Dokumenten § erlaubt eine schematische Beschreibung der Dokumente § ... XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 17 Technologie: DOM vs. TEXT Bei XML-DBMS gibt es zwei Speicherungsarten: § Text-basierte Speicherung: § gesamte Dokument wird in Textform gespeichert à „Verlust“ der Struktur § Zugriff auf Struktur wird über verschiedene Indexierungstechniken realisiert § Modell-basierte Speicherung: § Dokument wird samt seiner Struktur gespeichert (z.B. als DOM). § DOM wird auf rel. Tabellen abgebildet oder in preparsed Form gespeichert XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 18 9 XML-DBMS vs. XML-Enabled-DB XML-DBMS können sowohl die physikalische Struktur als auch Kommentare, DTDs, etc. erhalten. XML-DBMS können XML-Dokumente speichern ohne deren Schema (DTD) zu kennen, angenommen sie haben überhaupt eines. XML-Enabled Datenbanken könnten Schemata zwar in Echtzeit generieren, was jedoch unpraktisch ist. Vor allem wenn man mit schemalosen Dokumenten arbeitet. Die einzige Schnittstelle zu den Daten innerhalb einer XML-DBMS ist XML und verwandte Technologien, wie XPath, DOM. Im Gegensatz dazu bieten XML-Enabled Datenbanken direkten Zugang zu den Daten, zum Beispiel durch ODBC. Hauptseminar Page 19 XML-Systeme mit Schwerpunkt „native“ XML-DBMS eXcelon XML Plattform eXcelon Stylus Studio eXcelon Extensible Information Server eXcelon Business Process Manager eXcelon XML Platform XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 20 10 eXcelon ein XML-DBMS § § § § Anfragesprache: XPath speichert XML-Dokumente und "non-XML“ Speichert XML-Dokumente als DOM Indizierung gemäß XML-Struktur: § Unterstützt struktur-, text- und wertebasierte Anfragen effizient § Unterstützung von beliebigen XML-Dokumenten § Erweiterbar durch "Server extensions“ § Integration heterogener Datenquellen XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 21 Extensible Information Server Architekturüberblick XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 22 11 Speicherung von XML in eXcelon § Aufbau einer DOM-artigen Struktur beim parsen § Generierung eines C++ Objektbaums § Speicherung der C++Objektstruktur im OO-DBMS ObjectStore § Indexierung mit in ObjectStore verfügbaren Datenstrukturen Hauptseminar Page 23 XML-Systeme mit Schwerpunkt „native“ XML-DBMS Gemeinsamkeit der XML-DBMS Produkte Produkt Tamino Excelon X-Hive/DB Speichermodell DOM Objektorientier tnative DOM DOM Virtuoso Anfragesprache XPathErweiterung, XQL XQL XSLT XPath XSLT XPath XSLT XSLT 4Suite Server DOM XPath Birdstep DataBase Engine DOM XPath XML-Systeme mit Schwerpunkt „native“ XML-DBMS Transformation- Indexierung sprache XSL, CSS structural, value, text structural, value, text Hauptseminar Page 24 12 Danke für Ihre Aufmerksamkeit Fragen ? XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 25 Mail: Product Manager - eXcelon We parse XML documents into nodes using the Xerces SAX parser and generate a C++ object tree from the result. We persistify that C++ object structure inside the ObjectStore database. However, users never know ObjectStore is under the covers as the lowest level API we expose is the DOM API. We never expose ObjectStore APIs. Basically, when you access the data, you are accessing it in ist pre-parsed form. At the core, you’re navigating hierarchical object structures… something ObjectStore is very fast at ;-> We provide three types of indexing: structural, value, and text. Structural indexing allows you to index a group of nodes that will be accessed often. Basically, this type of index gives the XPath engine a sufficient lookahead into the object tree so that it can navigate to indexed objects quickly. A value index is placed on a node where you will be doing comparisons on its value (for example, on the contents of a “Price” element, where you might be doing numeric comparisons). A text index is used on large text nodes on which youwill need to perform Boolean word searches (using xln:contains-words). Any more details and I would be treading shaky ground and would probably have to have your entire class sign non-disclosure agreements to avoid sharing of trade secrets ;-> If you have any further questions, please ask… Cheers, Chris --------------------------------------Chris Parkerson - Product Manager Extensible Information Server eXcelon Corporation Burlington, MA (781) 674-5393 http://www.exceloncorp.com XML-Systeme mit Schwerpunkt „native“ XML-DBMS Hauptseminar Page 26 13