KeyX: schlüssel-orientierter XML Index
english version
Kurzbeschreibung des Projektes:
In relationalen Datenbank-Management-Systemem (RDBMS) werden Indizes verwendet, um
spezifische und häufig wiederkehrende Anfragen zu beschleunigen. Die Auswahl von passenden Indizes ist ein wichtiger Prozess
beim Anlegen und Optimieren der Datenbank, der meist von einem Administrator oder einem Index-Auswahl-Tool durchgeführt wird,
welches eine Menge von passenden Indizes vorschlägt. Für die Indizierung von XML-Daten existieren zur Zeit noch keine
Standardverfahren sondern verschiedene Ansätze in der wissenschaftlichen Literatur, die oft rein Pfad-basiert sind und keine
oder wenig Auswahl bezüglich der indizierten Elemente zulassen. Ansätze, die das gesamte Dokument indizieren - sogenannte Structural
Summaries- haben zwangsläufig einen hohen Speicherplatzbedarf und garantieren keine Leistungssteigerung, wenn häufig Änderungen am
XML-Dokument vorgenommen werden, da Änderungen der Datenbank immer auch an der Indexstruktur vorgenommen werden müssen.
In dem KeyX-Projekt wird das Konzept von spezifischen Indizes auf native XML-Datenbank-Management- Systeme (XDBMS) übertragen.
Mit KeyX stellen wir einen Indizierungsansatz vor, der XML-Element- und Attributwerte mit spezifischem Pfad als Schlüssel
interpretiert und die dazugehörenden oder benachbarten Knoten im Original-Dokument als Rückgabewert referenziert. Da sich
Schlüssel und Wert unterscheiden können, entfällt der Aufwand, der für navigierende Pfadverfolgung zwischen beiden benötigt
wird. Experimentell bestimmte Ergebnisse der auf einem nativen XDBMS basierenden prototypischen Implementierung zeigen, dass
unser Ansatz die Ausführungszeit von Anfragen signifikant beschleunigt.
KeyX unterstützt sowohl rein navigierende Anfragen ,wie auch Anfragen mit einem Wertvergleich. Insbesondere Anfragen mit mehrere
Wertvergleichen werden durch mehrwertige Indizes effizient unterstützt. Anfragen, die Wildcards (*) oder self-or-descendant (//)
enthalten sind ebenfalls möglich.
In einem Teilprojekt soll zu einer gegeben Menge von Anfragen und einer Datenbank die optimale Indexkonfiguration anhand eines
Kostenmaßes gefunden werden.
Hierbei werden insbesondere Änderungsoperationen berücksichtigt, die hohe Kosten erzeugen. Dieses Problem ist in der
wissenschaftlichen Literatur als das 'Index Selection Problem' (ISP) bekannt und wird hier auf XML Datenbanken übertragen.
Das ISP wird verwendet, um eine Menge von Indizes zu bestimmen, für die die Ausführungszeit eines Workloads von Datenbankoperationen
minimal ist. Da der Workload periodisch analysiert wird und durch das ISP günstige Indizes automatisch angelegt und ggf. aufgelöst
werden, garantiert die KeyX-Implementierung eine hohe Leistung über die gesamte Lebenszeit der Datenbank.
KeyX benötigt kein Schema, wie eine DTD oder ein XMLSchema, um Daten zu indizieren. Ohne Schema ist es unmöglich alle Indizes im
voraus zu definieren; dies ist eine weitere Motivation für ein XDBMS, welches Indizes automatisch erzeugt.
Im Rahmen des KeyX - Projekts werden laufend Studien-, Bachelor- und Diplomarbeiten vergeben. Bei Interesse
wenden Sie sich bitte an die Projektbeteiligten.
Beteiligte Mitarbeiter des Instituts für Informationssysteme:
Beteiligte Studenten (in alphabetischer Reihenfolge):
- Chu Dangxing (Praktikum)
- Konstantin Ens (Bachelorarbeit)
- Timm Gehrmann (Bachelorarbeit)
- Khaled Haj-Yahya (Bachelorarbeit)
- Florian Massel (Bachelorarbeit)
- Alexander Pfalzgraf (Bachelorarbeit)
- Philipp Stursberg (Bachelorarbeit)
webmaster / 25.06.2004