XML-Datenbanken

Werbung
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
Herunterladen