Indizierung in DBMS: Was ist, Arten von Indizes mit BEISPIELEN
โก Intelligente Zusammenfassung
Die Indizierung in Datenbanken ist eine Datenstrukturtechnik, die es ermรถglicht, Datensรคtze schnell รผber eine Map abzurufen.ping Ein Suchschlรผssel verweist auf die Festplattenadresse des zugehรถrigen Datensatzes. Primรคr-, Sekundรคr-, Cluster-, Mehrebenen- und B-Baum-Indizes bieten jeweils unterschiedliche Kompromisse hinsichtlich Speicherplatz, Geschwindigkeit und Wartungsaufwand.

Was ist Indizierung?
Indizierung Ein Index ist eine Datenstrukturtechnik, die es ermรถglicht, Datensรคtze schnell aus einer Datenbankdatei abzurufen. Ein Index ist eine kleine Tabelle mit nur zwei Spalten. Die erste Spalte enthรคlt eine Kopie des Primรคr- oder Kandidatenschlรผssels der Tabelle. Die zweite Spalte enthรคlt eine Menge von Schlรผsseln. Zeiger enthรคlt die Adresse des Festplattenblocks, in dem dieser spezifische Schlรผsselwert gespeichert ist.
Ein Inhaltsverzeichnis:
- Nimmt einen Suchbegriff als Eingabe entgegen.
- Gibt effizient eine Sammlung รผbereinstimmender Datensรคtze zurรผck.
Ohne Index muss die Datenbank jede Zeile durchsuchen, um eine Anfrage zu beantworten. Mit einem Index springt sie direkt zum passenden Datenblock, weshalb die Wahl des Indextyps einen groรen Einfluss auf die Performance hat.
Arten der Indizierung im DBMS

Die Indizierung in einer Datenbank wird anhand ihrer Indizierungsattribute definiert. Die zwei Hauptarten von Indizierungsmethoden sind:
- Primรคrindizierung
- Sekundรคre Indizierung
Primรคrindex im DBMS
Ein Primรคrindex ist eine geordnete Datei fester Lรคnge mit zwei Feldern. Das erste Feld entspricht dem Primรคrschlรผssel, das zweite Feld verweist auf den entsprechenden Datenblock. Im Primรคrindex besteht stets eine Eins-zu-Eins-Beziehung zwischen den Eintrรคgen der Indextabelle.
Der Primรคrindex ist auรerdem in zwei Typen unterteilt:
- Dichter Index
- Sparse-Index
Dichter Index
In einem dichten Index wird fรผr jeden Suchschlรผsselwert in der Datenbank ein Eintrag erstellt. Dies beschleunigt die Suche, benรถtigt aber mehr Speicherplatz fรผr die Indexeintrรคge. Bei dieser Methode enthalten die Eintrรคge den Suchschlรผsselwert und verweisen auf den entsprechenden Datensatz auf der Festplatte.
Sparse-Index
Ein Sparse-Index ist ein Indexeintrag, der nur fรผr einige Werte in der Datei existiert. Sparse-Indizes helfen Ihnen, die Probleme der dichten Indizierung zu lรถsen. DBMSBei dieser Technik speichert ein Bereich von Indexspalten dieselbe Datenblockadresse, und wenn Daten abgerufen werden mรผssen, wird diese Blockadresse abgerufen.
Ein spรคrlicher Index speichert Indexeintrรคge nur fรผr einige Suchschlรผsselwerte. Er benรถtigt weniger Speicherplatz und einen geringeren Wartungsaufwand fรผr Einfรผgungen und Lรถschungen, ist aber beim Auffinden von Datensรคtzen langsamer als ein dichter Index.
Nachfolgend ein Beispiel fรผr einen Sparse-Index in einer Datenbank.
Dichte Index vs. Sparse Index
Die beiden primรคren Indexvarianten bringen gegensรคtzliche Vor- und Nachteile mit sich, die im Folgenden zusammengefasst werden.
| Aspekt | Dichter Index | Sparse-Index |
|---|---|---|
| Eintrรคge | Eins pro Suchschlรผssel | Einer pro Block |
| Weltraum | Mehr | Less |
| Suchgeschwindigkeit | Schneller | Langsamer |
| Wartung | Hรถher | Senken |
Sekundรคrindex im DBMS
Der Sekundรคrindex in einem DBMS kann durch ein Feld generiert werden, das fรผr jeden Datensatz einen eindeutigen Wert besitzt und als Kandidatenschlรผssel dienen sollte. Er wird auch als nicht-clustering Index bezeichnet.
Diese zweistufige Datenbankindizierungstechnik wird verwendet, um die Karte zu verkleinernping Grรถรe der ersten Ebene. Fรผr die erste Ebene wird ein groรer Zahlenbereich ausgewรคhlt, sodass die Karteping Die Grรถรe bleibt immer klein.
Beispiel fรผr einen Sekundรคrindex
Lassen Sie uns die Sekundรคrindizierung anhand eines Datenbankindexbeispiels verstehen. In einer Bankkontendatenbank werden die Daten sequenziell nach Kontonummer (acc_no) gespeichert, aber Sie mรถchten mรถglicherweise alle Konten in einer bestimmten Filiale der ABC-Bank finden.
Hier kรถnnen Sie fรผr jeden Suchschlรผssel einen Sekundรคrindex anlegen. Der Indexeintrag verweist auf einen Bucket, der Zeiger auf alle Datensรคtze mit dem entsprechenden Suchschlรผsselwert enthรคlt.
Clustering-Index im DBMS
In einem gruppierten Index werden die Datensรคtze selbst und nicht Zeiger darauf gespeichert. Manchmal wird der Index fรผr Spalten erstellt, die keine Primรคrschlรผssel sind und daher nicht fรผr jeden Datensatz eindeutig sind. In diesem Fall kรถnnen Sie zwei oder mehr Spalten gruppieren, um eindeutige Werte zu erhalten und einen Index zu erstellen โ einen sogenannten gruppierten Index. Dies beschleunigt auch das Auffinden des gewรผnschten Datensatzes.
Ejemplo: Angenommen, ein Unternehmen hat viele Mitarbeiter in verschiedenen Abteilungen eingestellt. In diesem Fall sollte ein Clustering-Index fรผr alle Mitarbeiter erstellt werden, die derselben Abteilung angehรถren.
Sie werden als ein einziger Cluster betrachtet, und der Index verweist auf den gesamten Cluster. Hierbei ist Department_no ein nicht eindeutiger Schlรผssel.
Was ist ein mehrstufiger Index?
Mehrstufige Indizierung wird erstellt, wenn ein Primรคrindex nicht in den Arbeitsspeicher passt. Bei dieser Indizierungsmethode lรคsst sich die Anzahl der Festplattenzugriffe zum Erreichen eines Datensatzes reduzieren. Die Datensรคtze werden als sequentielle Datei auf der Festplatte gespeichert, und auf dieser Datei wird ein Sparse-Index erstellt.
B-Baum-Index
Der B-Baum-Index ist die am weitesten verbreitete Datenstruktur fรผr die baumbasierte Indizierung in Datenbanksystemen. Es handelt sich um ein mehrstufiges Format der baumbasierten Indizierung, das auf einem ausgewogenen Index basiert. binรคre SuchbรคumeAlle Blattknoten des B-Baums enthalten die eigentlichen Datenzeiger.
Darรผber hinaus sind alle Blattknoten รผber eine verkettete Liste miteinander verbunden, wodurch ein B-Baum sowohl wahlfreien als auch sequenziellen Zugriff unterstรผtzt.
- Blattknoten mรผssen zwischen 2 und 4 Werte aufweisen.
- Alle Pfade von der Wurzel zu einem Blatt sind im Groรen und Ganzen gleich lang.
- Alle Nicht-Blattknoten auรer dem Wurzelknoten haben zwischen 3 und 5 Kindknoten.
- Jeder Knoten, der weder Wurzel noch Blatt ist, hat zwischen n/2 und n Kinder.
Wo exakte รbereinstimmungssuchen dominieren und Bereichsscans selten sind, Hashing kann eine schnellere Alternative zu einem B-Baum-Index sein.
Vorteile der Indexierung
Die wichtigsten Vorteile der Indexierung sind:
- Dadurch wird die Gesamtzahl der zum Abrufen von Daten erforderlichen E/A-Operationen reduziert, sodass Sie nicht direkt auf eine Zeile in der Tabelle zugreifen mรผssen.
- Es bietet Nutzern eine schnellere Suche und einen schnelleren Abruf von Daten.
- Dadurch kann der Tabellenspeicherplatz reduziert werden, da die ROWID nicht mehr fรผr jede verknรผpfte Zeile im Index gespeichert werden muss.
- Die Daten in den Blattknoten sind bereits nach dem Wert des Schlรผssels sortiert.
Nachteile der Indizierung
Die wichtigsten Nachteile der Indizierung sind:
- Fรผr die Indizierung benรถtigen Sie einen Primรคrschlรผssel in der Tabelle mit einem eindeutigen Wert.
- Es ist nicht mรถglich, einen weiteren Index auf Daten aufzubauen, die bereits auf die gleiche Weise indexorganisiert sind.
- Sie dรผrfen eine indexorganisierte Tabelle nicht partitionieren.
- Die Indizierung verringert die Leistung bei INSERT-, DELETE- und UPDATE-Abfragen.





