Sekundärindex

Sekundärindex

Ein Datenbankindex, oder kurz Index (im Plural "Indexe" oder "Indizes"), ist eine von der Datenstruktur getrennte Indexstruktur in einer Datenbank, die die Suche und das Sortieren nach bestimmten Feldern beschleunigt.

Ein Index besteht aus einer Ansammlung von Zeigern (Verweisen), die eine Ordnungsrelation auf eine oder mehrere Spalten in einer Tabelle definieren. Wird bei einer Abfrage eine indizierte Spalte als Suchkriterium herangezogen, sucht das Datenbankmanagementsystem (DBMS) die gewünschten Datensätze anhand dieser Zeiger. In der Regel finden hier B+-Bäume Anwendung. Ohne Index müsste die Spalte sequentiell durchsucht werden, was selbst mit modernster Hardware und Software viel Zeit in Anspruch nehmen kann.

In der Datenbanksprache SQL wird ein Index mit dem Befehl

CREATE INDEX Indexname ON Tabellenname ( Spaltenname(n) )

definiert (kein Standard-SQL, siehe unten). Meistens wird eine einzelne Spalte indiziert, doch auch zusammengesetzte Indizes sind in den meisten Datenbanksystemen möglich. Auf Spalten, die Primärschlüssel enthalten (SQL-Klausel primary key im Befehl create table), wird automatisch ein Index gelegt.

Häufig reicht die Sortierung der Daten nach einem Primärindex nicht aus, so dass weitere Indizes erforderlich sind. Wird nun für diese weiteren Erschließungen ein Gesamtinhaltsverzeichnis aufgebaut, entsteht ein Sekundärindex.

Inhaltsverzeichnis

Arten von Indizes

Bitmap Index

Der Bitmap Index basiert auf der Speicherung der Spaltenwerte in Form von Bitketten. Dieser Indextyp findet aus datenbanktechnischen Gründen Verwendung bei geringer Selektivität und niedriger Aktualisierungserwartung der zu indizierenden Spalte(n).

Clustered Index

Viele Datenbankverwaltungssysteme erlauben auch die Definition eines clustered Index. Dieser unterscheidet sich von einem non-clustered Index dadurch, dass nicht nur die Liste der Zeiger auf die Datensätze in sortierter Form vorliegt, sondern dass das DBMS zusätzlich versucht, neu eingefügte Datensätze, die innerhalb des Index nah beieinander liegen, auch physikalisch im Speicher nah beieinander abzulegen. Das kann die Suche nach Werten dieser Spalte weiter beschleunigen.

Funktionaler Index

Unter einem funktionalen Index (englisch functional index oder function based index) versteht man eine spezielle Form eines Index in einem Datenbankmanagementsystem. Im Gegensatz zu einem normalen Index werden nicht die reinen Feldwerte, beispielsweise der Vorname, in den Index aufgenommen, sondern mittels Datenbankfunktionen transformierte Werte, beispielsweise to_upper(Vorname) für eine Umwandlung in Großbuchstaben.

Reverse Index

Unter einem reverse Index versteht man einen Index, in dem die Werte bitweise oder byteweise umgekehrt werden vor dem Speichern. Beim Lesen dieses Index müssen die gelesenen Werte wieder in die richtige Reihenfolge konvertiert werden, bevor sie ausgewertet werden können. Die 'vertauschten' Werte werden wie bei anderen Indices meistens als B-Baum gespeichert. Ein Reverse-Index hat den Vorteil, dass bei einem Einfügen von fortlaufenden Schlüsseln der Index-Baum nicht in einen unbalancierten Zustand kommt und reorganisiert werden muss. Er hat jedoch den Nachteil, dass ein Range-Scan (z.b. where nr between 100 and 120) nicht über den Reverse-Index evaluiert werden kann.

Partitionierter Index

Genauso wie Datenbanktabellen partitioniert werden können, können auch Indizes partitioniert werden. Dabei wird unterschieden, ob die Partitionierung sich an der ersten Spalte orientiert, die indiziert wird, oder an einer anderen Spalte.

Indizes in SQL

Keiner der verschiedenen SQL-Standards definiert Befehle für Indizes. Die Befehle zum Anlegen und Entfernen von Indizes sind daher immer datenbank-spezifisch. Allerdings haben sich die Befehle CREATE INDEX und DROP INDEX weitestgehend durchgesetzt.

Siehe auch


Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Indexstruktur — Indexstrukturen (Indizes) werden in der Informatik verwendet, um den schnellen Zugriff auf Daten in einer umfangreichen Datensammlung zu gewährleisten. Daten werden üblicherweise sequentiell auf einem Speichermedium verwaltet. Die Bearbeitung… …   Deutsch Wikipedia

  • Sekundärschlüssel — Ein Sekundärschlüssel ist ein alternativer Suchschlüssel, der in einem Datenbanksystem neben dem Primärschlüssel als zusätzliches Suchkriterium zum Auffinden von einem oder mehreren Datensätzen verwendet werden kann. Ein Sekundärschlüssel kann… …   Deutsch Wikipedia

  • Suchschlüssel — Ein Sekundärschlüssel ist ein alternativer Suchschlüssel, der in einem Datenbanksystem neben dem Primärschlüssel als zusätzliches Suchkriterium zum Auffinden von einem oder mehreren Datensätzen verwendet werden kann. Ein Sekundärschlüssel kann… …   Deutsch Wikipedia

  • Datenbank — Verzeichnis; Liste; Aufstellung; Tabelle; Register; Aufzählung; Gliederung; Auflistung; Datensammlung; elektronischer Karteikasten (umgangssprachlich) * * * …   Universal-Lexikon

  • Abgleichcode — Ein Schlüssel dient in einer Relationalen Datenbank dazu, die Tupel einer Relation eindeutig zu identifizieren. Anschaulich kann man sich eine Relation als Tabelle vorstellen. Ein Schlüssel für eine solche Tabelle ist dann eine Gruppe von Spalten …   Deutsch Wikipedia

  • B-Plus-Baum — Der B+ Baum ist eine Erweiterung des B Baumes. Bei einem B+ Baum werden die eigentlichen Datenelemente nur in den Blattknoten gespeichert, während die inneren Knoten lediglich Schlüssel enthalten. Ein einfaches Beispiel eines B+ Baumes welches… …   Deutsch Wikipedia

  • Blattsuchbaum — Der B+ Baum ist eine Erweiterung des B Baumes. Bei einem B+ Baum werden die eigentlichen Datenelemente nur in den Blattknoten gespeichert, während die inneren Knoten lediglich Schlüssel enthalten. Ein einfaches Beispiel eines B+ Baumes welches… …   Deutsch Wikipedia

  • Buffer Manager — DB2 ist ein kommerzielles relationales Datenbank Management System (RDBMS) der Firma IBM, dessen Ursprünge auf das System R und die Grundlagen von E. F. Codd vom IBM Research aus dem Jahr 1970 zurückgeht. Inhaltsverzeichnis 1 Eigenschaften 1.1… …   Deutsch Wikipedia

  • Buffer Pool — DB2 ist ein kommerzielles relationales Datenbank Management System (RDBMS) der Firma IBM, dessen Ursprünge auf das System R und die Grundlagen von E. F. Codd vom IBM Research aus dem Jahr 1970 zurückgeht. Inhaltsverzeichnis 1 Eigenschaften 1.1… …   Deutsch Wikipedia

  • B⁺-Baum — Der B+ Baum ist eine Erweiterung des B Baumes. Bei einem B+ Baum werden die eigentlichen Datenelemente nur in den Blattknoten gespeichert, während die inneren Knoten lediglich Schlüssel enthalten. Ein einfaches Beispiel eines B+ Baumes welches… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”