Gegenstand der Bachelorarbeit ist die Entwicklung eines Systems
zur Indizierung von XML-Dokumenten ohne Schema.
Zur Indizierung von XML-Dokumenten in Datenbanken existieren
verschiedene Ansätze:
So können z.B. Teile des Dokumentes in eine indizierte Tabelle einer
relationalen Datenbank kopiert werden.
Alle Ansätze haben die Gemeinsamkeit, dass die Dokumente einem
definierten Schema entsprechen müssen.
Anfragen an schemalose Dokumente müssen das XML Dokument vollständig
verarbeiten, um das Ergebnis zu bilden.
Im Einzelnen sind folgende Teilaufgaben zu erfüllen:
-
Nach der Einarbeitung in den W3C-Standard XPath, einer Sprache zur
Selektion von Daten aus XML-Dokumenten, ist zu untersuchen, in wie
weit eine Normalisierung von XPath-Ausdrücken erfolgen
kann.
Auf Grundlage dieser normalisierten Ausdrücke ist eine
Abbildung zu entwerfen, die jeden Ausdruck einer möglichen
Indexdeklaration zuordnet.
Der Aufbau dieser Indexdeklaration ist dabei selbständig zu
entwerfen.
-
Weiterhin ist ein Entscheidungskriterium zu definieren, das
auf der Basis von Speicherkosten und Zeitkosten
urteilt, ob das Anlegen eines Index sinnvoll ist.
Zusätzliche Speicher- und Zeitkosten entstehen durch das einmalige
Anlegen eines neuen Index.
Im Anschluss ist aber für Anfragen, die den Index nutzen, ein
Zeitgewinn zu erwarten.
-
Anschließend ist in der Programmiersprache Java ein System zu
entwerfen und zu implementieren, das sowohl die Abbildung von
realen wiederkehrenden Datenbankanfragen in XPath auf
Indexdeklarationen, als auch das Entscheidungskriterium realisiert.
Die XML-Daten sind dabei mit einer DOM-ähnlichen Implementierung
(falls möglich PDOM) zu repräsentieren.
Für die Auswertung der XPath-Anfragen kann auf eine vorhandene
Implementierung (z.B. Jaxen) zurückgegriffen werden.
-
Zum Abschluss ist mit Zeitmessungen im Betrieb mit Beispieldaten die
Leistungsfähigkeit der gefundenen Abbildung und des definierten
Entscheidungskriteriums zu verbessern.
Dabei sollen die von den aktuellen Daten abhängigen Parameter des
Entscheidungskriteriums anhand von Messungen automatisch vom System
justiert werden.
Liegt der Gewinn durch den Index über den Kosten für das Anlegen des
Index, so soll die Indexstruktur automatisch angelegt und weitere
Anfragen durch ihn bedient werden.
Die gefundene Lösung soll mit anderen Indizierungsansätzen (z.B.
DB2 XML Extender) verglichen werden.
Diese Bachelorarbeit ist vom Umfang für 2 Studierende ausgelegt.