www.wikidata.de-de.nina.az
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 gewunschten Datensatze anhand dieser Zeiger In der Regel finden hier B Baume Anwendung Ohne Index musste die Spalte sequenziell durchsucht werden wahrend eine Suche mit Hilfe des Baums nur logarithmische Komplexitat hat In der Datenbanksprache SQL wird ein Index mit dem Befehl CREATE INDEX i Indexname i ON i Tabellenname i i Spaltenname n i definiert kein Standard SQL siehe unten Meistens wird eine einzelne Spalte indiziert doch auch zusammengesetzte Indizes sind in den meisten Datenbanksystemen moglich Auf Spalten die Primarschlussel enthalten SQL Klausel primary key im Befehl create table wird automatisch ein Index gelegt Haufig reicht die Sortierung der Daten nach einem Primarindex nicht aus so dass weitere Indizes erforderlich sind Wird nun fur diese weiteren Erschliessungen ein Gesamtinhaltsverzeichnis aufgebaut entsteht ein Sekundarindex Inhaltsverzeichnis 1 Arten von Indizes 1 1 Bitmap Index 1 2 Clustered Index 1 3 Funktionaler Index 1 4 Reverse Index 1 5 Partitionierter Index 2 Indizes in SQL 3 Siehe auchArten von Indizes BearbeitenBitmap Index Bearbeiten Der Bitmapindex basiert auf der Speicherung der Spaltenwerte in Form von Bitketten Dieser Indextyp findet aus datenbanktechnischen Grunden Verwendung bei geringer Selektivitat und niedriger Aktualisierungserwartung der zu indizierenden Spalte n Clustered Index Bearbeiten 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 Datensatze in sortierter Form vorliegt sondern dass das DBMS zusatzlich versucht neu eingefugte Datensatze die innerhalb des Index nah beieinander liegen auch physisch im Speicher nah beieinander abzulegen Das kann die Suche nach Werten dieser Spalte weiter beschleunigen Funktionaler Index Bearbeiten 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 fur eine Umwandlung in Grossbuchstaben Reverse Index Bearbeiten Unter einem reverse Index versteht man einen Index in dem die Werte vor dem Speichern bitweise oder byteweise umgekehrt werden Beim Lesen dieses Index mussen die gelesenen Werte wieder in die richtige Reihenfolge konvertiert werden bevor sie ausgewertet werden konnen Die vertauschten Werte werden wie bei anderen Indizes meistens als B Baum gespeichert Ein Reverse Index hat den Vorteil dass bei einem Einfugen von fortlaufenden Schlusseln 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 uber den Reverse Index evaluiert werden kann Partitionierter Index Bearbeiten Genauso wie Datenbanktabellen partitioniert werden konnen konnen auch Indizes partitioniert werden Dabei wird unterschieden ob die Partitionierung sich an der ersten Spalte orientiert die indiziert wird oder an einer anderen Spalte Wenn die Datenbanktabelle auf die sich der Index bezieht partitioniert ist dann kann der Index nach denselben Kriterien partitioniert werden lokale Indexpartitionierung Einige Datenbanksysteme z B Oracle bieten auch die Moglichkeit einen Index nach anderen Kriterien zu partitionieren globale Indexpartitionierung Indizes in SQL BearbeitenKeiner der verschiedenen SQL Standards definiert Befehle fur Indizes Die Befehle zum Anlegen und Entfernen von Indizes sind daher immer datenbankspezifisch Allerdings haben sich die Befehle CREATE INDEX und DROP INDEX weitestgehend durchgesetzt Siehe auch BearbeitenSchlussel Datenbank Invertierte Datei Abgerufen von https de wikipedia org w index php title Datenbankindex amp oldid 211554732