Green-IT und Datenbanken - ODBMS
Green-IT und Datenbanken - ODBMS
Green-IT und Datenbanken - ODBMS
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
6.2.2 Indexstrukturen in Caché<br />
6.2 Energieeffizienz <strong>und</strong> Indizes<br />
Caché bietet wie andere <strong>Datenbanken</strong> die Möglichkeit, Indizes für die in der Datenbank<br />
enthaltenen Daten anzulegen. Diese benötigen zusätzlichen Speicherplatz <strong>und</strong><br />
sind getrennt von den Daten des TPC-H abgespeichert. Caché bietet zwei Arten von<br />
Indizes an.<br />
Konventioneller Index<br />
Der Index bei Caché unterscheidet sich von der Funktionsweise nicht von dem einer<br />
relationalen Datenbank. Dieser enthält Tupel von Schlüsselattributen, <strong>und</strong> Referenzen<br />
auf die ID <strong>und</strong> stellt eine Ordnungsrelation für die Schlüsselattribute da. Eine<br />
einfache Ordnungsrelation ist das Sortieren nach einer Randbedingung, <strong>und</strong> kann z.B.<br />
bei Zahlenwerten auf- oder absteigend sein. Der Index kann bei Abfragen, die auf der<br />
referenzierten Spalte operieren, effizienter die abgefragten Datensätze bereitstellen,<br />
da durch die vorhandene Ordnungsrelation keine sequentielle Suche auf der Spalte<br />
erfolgen muss. Der erste Index in unserem Datenmodell ist jede Spalte, die einen Primärschlüssel<br />
enthält. Die Struktur, in der der Index abgespeichert, ist ein B + -Baum<br />
[Wer07].<br />
Ein zusätzlich angelegter Index benötigt immer zusätzlichen Speicherplatz. Caché<br />
speichert die Indizes wie die Daten in Globals, wobei der Inhalt des Globals für einen<br />
Index nur eine Referenz auf den indizierten Datensatz enthält. Bei einer Aktualisierung<br />
der Daten muss zusätzlich der Index aktualisiert werden, falls eine indizierte<br />
Spalte von der Aktualisierung betroffen ist. Dies bedeutet einen höheren Aufwand<br />
beim Ändern der Daten. Darum ist es von Vorteil, wenn die Anzahl der Indizes nicht<br />
hoch ist, um bei Aktualisierungen, unnötige Kosten zu vermeiden.<br />
Bitmap-Index<br />
Caché bietet neben dem konventionellen Index noch den Bitmap-Index zur Indizierung<br />
von Daten an. Dieser eignet sich für Spalten mit einer hohen Selektivität. Das<br />
sind die Spalten, bei denen ein konventioneller Index keine Steigerung der Effizienz<br />
bringt. Bei einem Bitmap-Index werden die indizierten Attribute einem Schlüssel in<br />
Form von einem Bitvektor zugeordnet. Der Vorteil ist, dass man bei einer multidimensionalen<br />
Suche nur Bitvektoren miteinander vergleichen muss. Tabelle 6.5 enthält<br />
Datensätze die eine hohe Selektivität haben (Geschlecht <strong>und</strong> Familienstand). Tabelle<br />
6.6 zeigt den resultierenden Bitmap Index. Wenn nun eine Abfrage alle Elemente der<br />
Tabelle sucht die ledig <strong>und</strong> männlich sind ist die Suchmaske 10010. Die Abfrage kann<br />
mit einem Bitmap-Index schnell verarbeitet werden, da es sich bei der Abfrage im<br />
Kern um Binäroperationen handelt, die sehr effizient auf dem Prozessor ausgeführt<br />
werden können. Der Bitmap-Index benötigt durch seine Struktur wesentlich mehr<br />
Speicherplatz als ein konventioneller Index, <strong>und</strong> es ist daher aufwändiger ihn bei Veränderung<br />
der Daten zu aktualisieren. Aus diesen Gründen wird der Bitmap-Index<br />
häufig bei <strong>Datenbanken</strong> eingesetzt, bei denen überwiegend lesende Transkationen<br />
87