XML-Datenbanken - Anforderungen © Dr. Arno Schmidhauser Letzte Revision: Dezember 2005 Email: [email protected] Webseite: http://www.sws.bfh.ch/db Anforderungen an XML-Datenbanken Anforderungen an eine XML-Datenbank Die Anforderungen an eine XML-Datenbank können aus unterschiedlicher Sicht betrachtet werden: • Datenbank-Sicht • Modell-Sicht • Ablauf-Sicht • Reproduktionsqualität-Sicht • API-Sicht • Physische Sicht 2 Je nach Notwendigkeit einer Sicht für eine bestimmte Applikation ergeben sich unterschiedliche technologische Realisierungen oder verfügbare Produkte, beispielsweise eine relationale Datenbank mit XML-Erweiterung, eine einfache filebasierte Lösung mit Zugriff's API's oder eine hochperformante DokumentDatenbank. Arno Schmidhauser Dezember 2005 Seite 2 Anforderungen an XML-Datenbanken Datenbank-Sicht • Transaktionsmanagement – Commit/Rollback – Concurreny Control – Recovery • Performance-Optimierung – Indexe, Abfrageoptimierung – Diskmanagement für grosse Datenmengen • Tools und Erweiterungen – Upload/Download (Import/Export) – Backup-Utilities – Benutzer- und Rechteverwaltung – Verteilte und replizierte Datenhaltung 3 Arno Schmidhauser Dezember 2005 Seite 3 Anforderungen an XML-Datenbanken Modell-Sicht, 1 Datenzentrierte Informationssysteme • flache Hierarchie, starre und genaue Typisierung, einfache Datenwerte. • transaktionsorientierter Gebrauch (OLTP): – einfache Einfüge- und Änderungsoperationen – Suchen von Datensätzen nach einfachen Bedingungen, zum Beispiel Auftragsnummer, Datum, Kundenname usw. – Ausgabe von Daten in Listenform, meist sortiert oder gruppiert. • Redundanzfreie Speicherung, Normalisierung. • Join-Operationen zur Laufzeit. • Beispiel: Verkaufsabwicklung in einem On Line Store. 4 Datenzentrierte OLTP-Systeme sind die Stärke von herkömmlichen, relationalen Datenbanken mit SQL. XML-Systeme können ihre Fähigkeiten hier nicht voll ausspielen, sollten aber trotzdem eine gewisse Unterstützung bieten, zum Beispiel für Join-Operationen in Abfragen. XML-Technologien können für datenzentrierte Systeme allenfalls nützlich sein, wenn eine gezielte Denormalisierung in einer relationalen Datenbank vorgenommen werden soll. Beispielsweise wäre die Speicherung der Adressen (strasse, plz, ort, land, telefon) eines Kunden als ein einziges XML-Attribut einer Kunden-Tabelle sinnvoll. Da datenzentrierte Informationssyteme intensiven Änderungen unterliegen, kommt der Redundanzfreiheit und damit der Einfachheit von Änderungsoperationen eine zentrale Bedeutung zu. Das one-fact-in-one-place Prinzip (Normalisierung) regiert hier die Datenmodellierung. Damit sind Anomalien durch gleichzeitigen Gebrauch der Datenbank durch mehrere Benutzer ausgeschlossen. Der Bildung von Joins bei Abfragen kommt höchste Bedeutung zu. Arno Schmidhauser Dezember 2005 Seite 4 Anforderungen an XML-Datenbanken Modell-Sicht, 2 Dokumentzentrierte Informationssysteme • Ablage und Verwaltung von komplexen Dokumenten. • Entnehmen ganzer Dokumente aufgrund von Suchkriterien. • Suche nach Werten und Strings in unterschiedlicher Tiefe. • Möglichkeiten der Volltextsuche: Synonyme, Stopwörter, Wortstämme, Thesaurus. • Join-Operationen von untergeordneter Bedeutung. • Beispiel: Datenbank von Manuals, eBooks, Publikationen. 5 XML-Datenbank wollen vorallem die dokumenzentrierte Sicht einbringen und unterstützen. Aus Sicht logischer Datenmodellierung ist der XML-Ansatz mächtiger als der relationale Ansatz, da jede Tabelle als eine flache XML-Hierarchie angesehen werden kann. Umgekehrt kann jedoch nicht jede Hierarchie in eine flache Tabelle abgebildet werden. Mit XML kann sowohl nach relationalen, datenzentrierten Ideen, wie auch nach hierarchisch, dokumentorientierten Ideen gearbeitet werden, wie das Beispiel auf der nächsten Seite zeigt. In der dokumentzentrierten Sicht entfällt oft die Notwendigkeit von technischen Primär- und Fremdschlüsseln. In der Praxis treten datenzentrierte und dokumentzentrierte Informationssysteme auch gemischt auf: • Einfache, flache Struktur für Verwaltungsinformationen und transaktionsorientierte Abläufe (Verkauf, Ausleihe, Bestellung) • komplexe, dokumentenorientierte Struktur für Hauptinhalte (Publikation, eBook, Manual, Vertrag, Kundendossier) Arno Schmidhauser Dezember 2005 Seite 5 Anforderungen an XML-Datenbanken Die datenzentrierte (relationale) Modellierung eines Problems <person> <idP>1</idP><name>Muster</name><vorname>Hans, Justus</vorname> </person> <adresse> <idA>1</idA><idP>1</idP><strassse>Morgenstrasse 2</strassse> <idA>2</idA><idP>1</idP><strassse>Quellgasse 21</strassse> </adresse> Die dokumentzentrierte, hierarchische Modellierung eines Problems <personen> <person> <stammdaten> <name>Muster</name> <vorname>Hans</vorname> <vorname>Justus</vorname> </stammdaten> <adressen> <adresse> <strassse>Morgenstrasse 2</strassse> </adresse> <adresse> <strassse>Quellgasse 21</strassse> </adresse> <adressen> </person> <personen> Arno Schmidhauser Dezember 2005 Seite 6 Anforderungen an XML-Datenbanken Unterschiede XMLDB / RDB 7 Siehe White Paper über das Tamino-System von Software AG. Arno Schmidhauser Dezember 2005 Seite 7 Anforderungen an XML-Datenbanken Der Dokument-Begriff In Zusammenhang mit XML-Datenbanken ist der Dokument-Begriff wichtig. Ein Dokument besitzt typischerweise Eigenschaften wie: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Es Es Es Es Es Es Es Es Es Es ist klar identifizier- und abgrenzbar. enthält alle relevanten Informationen. enthält gegenüber anderen Dokumenten Redundanz. ist eine Mischung von einfachen Daten, Fliesstext, Bild und Ton. ist hierarchisch gegliedert. besitzt freiwillige Strukturelemente. hat dokumentarischen Wert. hat einen Status. enthält seine Entstehungsgeschichte. ist ein Business-Objekt. 8 Zu 1, 2: Es gibt einen äusseren Schlüssel wie beispielsweise Vertragsnummer, Kundennummer, ISBN usw. Ein Dokument stellt aus UML-Sicht eine umfangreiche Komposition von Elementen mit existentieller Abhängigkeit dar. Alle zum Verständnis des Dokumentes gehörende Information ist darin eingebettet. Aus dem Dokument hinaus bestehen keine oder nur "leichte" Beziehungen im Sinne von UML-Aggregationen mit der Multiplizität 0..1 <-> 0..n. Zu 3: Beispiel: In einem Vertragsdokument ist Id, Name und Adresse des Kunden explizit genannt. Die Id kann jedoch zusätzlich auf die aktuellen, ausserhalb des Vertragsdokumentens abgelegten Kundendaten verweisen. Das Dokument enthält also eine gewisse Redundanz. Sobald allerdings die Daten in der äusseren Referenz ändern, kann nicht mehr von Redundanz gesprochen werden, weil das Dokument dann den Zustand bei seiner Entstehung beschreibt, der ansonsten verloren gehen würde. Zu 4: In XML spricht man von mixed content, wenn ein Dokument auf einer bestimmten Hierarchiestufe gleichzeitig freien Text und weitere XML-Elemente enthält. Zu 6: Ein gutes Beispiel ist die Beschreibung von Publikationen mit dem Dublin Core MetaSchema (http://de.wikipedia.org/wiki/Dublin_Core). Zu 7: Gewünschtes Ergebnis aus 1 und 2. Zu 8: Die verschiedenen Zustände sind ev. über die ganze Lebensdauer mit zeitlicher Gültigkeit dokumentiert. Zu 9: Ein Dokument kann in sich selbst verschiedene Version haben, oder nach aussen in unterschiedlichen Version publiziert werden. Inkrementelle Änderungen können mit XML sehr gut innerhalb eines Dokumentes gekennzeichnet werden. Arno Schmidhauser Dezember 2005 Seite 8 Anforderungen an XML-Datenbanken Ablauf-Sicht 1 Dokumentations-System 1. Dokumente werden als Ganzes in die Datenbank eingefügt . 2. Auf die Dokumente wird nur noch lesend mit einer Abfrage zugegriffen. Die Ausgabe kann sowohl das ganze Dokument oder nur Teile davon umfassen. 3. Wichtigste Anforderungen an die XML-Datenbank: kräftige und performante Implementation von XQuery. 4. Anwendungsbeispiele: Datenbanken für jegliche Dokumente in betrieblichen Abläufen, Publikationen, Medizin, F+E, KnowledgeManagement, Befragungen usw. 9 Beispiel einer XQuery-Abfrage welche Bücher die das Wort 'Learning' im Titel haben, zurückliefert: collection( "myDocuments" )/book[contains( ./title, 'Learning' )] Ein wichtiges Hilfsmittel für die Ausgabe von Abfrageresultaten ist die Transformation mit einem XSL Style-Sheet. Dieses kann die Ausgabe beispielsweise in HTML oder PDF umwandeln. Arno Schmidhauser Dezember 2005 Seite 9 Anforderungen an XML-Datenbanken Ablauf-Sicht 2 Dokument-Workflow 1. Ein Dokument wird in einem Anfangszustand in die Datenbank eingefügt. 2. Das Dokument wird zwecks Modifikation zuerst gesucht, dann in die Applikation eingelesen (zum Beispiel via XPath/DOM). 3. Das modifizierte Dokument wird zurückgeschrieben. Dabei kann mit einem zusätzlichen Zeitstempel oder Checkout/Checkin-Verfahren gearbeitet werden. 4. Wichtigste Anforderung an die Datenbank: Einfacher bis gut ausgebauter Selektionsmechanismus. Effizientes Lesen und Ersetzen ganzer Dokumente. 5. Anwendungsbeispiele: Kundendossier, Patientenaktie, Notenblatt. 10 Das initial einzufügende Dokument sieht beispielsweise wie folgt aus: <student> <matrikelnr>123</matrikelnr> <name>Hans Muster</name> <faecher></faecher> </student> Für den Gebrauch wird das Dokument aus der Datenbank ind die Applikation gelesen, beispielsweise mit folgender XQuery-Abfrage for $s in collection('studenten')/student[matrikelnr=123] return $s Das gelesene XML-Dokument kann in der Applikation als DOM-Baum gehalten und modifziert werden. Für das Zurückspeichern in die Datenbank kann folgender XQuery-Befehl verwendet werden: update for $s in collection('studenten')/student[matrikelnr=123] do replace $s with <student> <matrikelnr>123</matrikelnr> <name>Hans Muster</name> <faecher> <fach> <titel>Java für Reiseleiter</titel> <note>A</note> </fach> </faecher> </student> Arno Schmidhauser Dezember 2005 Seite 10 Anforderungen an XML-Datenbanken Reproduktionsqualität-Sicht • Eine XML-Datenbank sollte eine möglichst hohe Reproduktionsfähigkeit der original eingelesenen Daten aufweisen. Neben dem Hauptinhalt eines Dokumentes aus XML-Elementen und Attributen können folgende Punkte eine Rolle spielen: – – – – – – – – Nachvollziehbares Verhalten bei Schema-Änderungen Übernahme der Zeichensatzzuordnung von Dokumenten Übernahme / Auflösung von Entity-Referenzen Übernahme von Kommentaren Übernahme von CDATA-Abschnitten Übernahme der Attribut-Reihenfolge Übernahme von White Space Übernahme der verwendeten Anführungszeichen 11 Im Unterschied zu SQL-Datenbanken ist die Definition einer Datenstruktur bei XMLDatenbanken keine zwingende Notwendigkeit. In SQL muss eine Tabelle definiert werden, damit Datensätze darin gespeichert werden können. Die Struktur dieser Tabelle, das heisst Anzahl, Name und Typ der Attribute, muss festgelegt sein. Bei XML-Datenbanken ist die Definition eines Schema meist fakultativ und dient nur logischen Zwecken, das heisst der Sicherheit, dass eingefügte Daten die gewünschte Struktur haben. Wenn man auf ein Schema verzichtet, können XMLDaten beliebiger Struktur in eine XML-Datenbank eingefügt und wieder herausgelesen werden. Wenn mit Schemas gearbeitet wird, kann es sehr wichtig sein, dass die zeitliche Veränderung des Schemas auch in der Datenbank nachvollziehbar ist. Beispielsweise wird ein Dokument a gemäss dem Schema A abgespeichert, danach wird das Schema modifiziert zu A' (z.B. ein Element hinzugefügt) und ein Dokument b erstellt. Dokument a ist aber bereits in der Datenbank vorhanden. Es muss entweder gemäss Schema A' nach-validiert werden oder die Zuordnung zum alten Schemas A muss erhalten bleiben. Arno Schmidhauser Dezember 2005 Seite 11 Anforderungen an XML-Datenbanken API-Sicht • XML-orientierte Datenverwaltungs-Sprachen – Datendefinition Æ XML Schema – Datenmanipulation Æ XUpdate, XQuery Update? – Datenabfrage Æ XPath, XQuery, XQuery Fulltext • API zu Applikation, Zugriff auf Daten über: – SAX – DOM – Textuelle XML-Daten – XQJ 12 Arno Schmidhauser Dezember 2005 Seite 12 Anforderungen an XML-Datenbanken Physische Sicht • Speicherungseinheit, Transporteinheit, Sperreinheit, Indexeinheit sollten bevorzugt XML-Knoten, XMLDokumente oder Sequenzen davon sein. 13 Arno Schmidhauser Dezember 2005 Seite 13 Anforderungen an XML-Datenbanken Was ist nun eine XML-Datenbank? • Als native XML-Datenbank kann man eine DB bezeichnen, welche die vorgestellten Sichtweisen abdeckt. • Es gibt viele Basistechnologien, von denen man ausgehen kann, um diese Sichtweisen zu realisieren: – relationale DB mit XML-Erweiterung – relationale DB als Träger von Knotentabellen – objektorientierte DB – serialisierte DOM-Knoten auf proprietäres Fileformat – gewöhnliche Datei(en) im XML-Format • Die Wahl der Basistechnologie, resp. eines Produktes hängt von der vorherrschenden Sichtweise für die Applikationen ab. 14 Arno Schmidhauser Dezember 2005 Seite 14 Anforderungen an XML-Datenbanken Übersicht • Nachfolgende Grafik zeigt, dass es viele Kombinationsmöglichkeiten relationaler, objektorientierter und xmlorientierter Datenbank-Technologien gibt. – UML kann als Basiswerkzeug für den technologieunabhängigen, konzeptionellen Entwurf verwendet werden – Klassen, Tabellen, XML Schemas beschreiben die Struktur auf formaler Ebene. – Verschiedene phyisische Realisierung der formalen Ebene sind denkbar und können oft auch gegenseitig aufeinander aufbauen. 15 Arno Schmidhauser Dezember 2005 Seite 15 Anforderungen an XML-Datenbanken UML, grafische XML-Schema Werkzeuge Generator oder manuell Tabellen Datensätze Generator oder manuell Konzeptionelle Ebene Generator oder manuell XML Schemas XML Dokumente Klassen Objekte Formale (logische) Ebene SQL-Funktionen XQuery DOM XPath XQuery XUpdate RDB DOM XPath XMLDB Physische Ebene OODB RDB 16 Arno Schmidhauser Dezember 2005 Seite 16 Anforderungen an XML-Datenbanken Im Folgenden... • Einführung in XPath und XQuery. • Generische Knotendatenbank in einer RDB: Verwendung von SAX und SQL. Grundlagen der Knotenverwaltung. • Auf dem DOM-Modell basierende, native XML-Datenbank: DOM-API mit XPath und Transaktions-Erweiterungen • Native XML-Datenbank: XQuery und XQuery Update, DOM-ähnliche API's. • Relationale Datenbankprodukte mit XML-Unterstützung: Datentyp XML, SQL mit XQuery-Erweiterungen, Indexierungsmöglichkeiten. 17 Arno Schmidhauser Dezember 2005 Seite 17