logo

Indizierung im DBMS

  • Die Indizierung wird verwendet, um die Leistung einer Datenbank zu optimieren, indem die Anzahl der Festplattenzugriffe minimiert wird, die bei der Verarbeitung einer Abfrage erforderlich sind.
  • Der Index ist eine Art Datenstruktur. Es wird verwendet, um die Daten in einer Datenbanktabelle schnell zu finden und darauf zuzugreifen.

Indexstruktur:

Mit einigen Datenbankspalten können Indizes erstellt werden.

Android-Versionen
DBMS-Indizierung im DBMS
  • Die erste Spalte der Datenbank ist der Suchschlüssel, der eine Kopie des Primärschlüssels oder Kandidatenschlüssels der Tabelle enthält. Die Werte des Primärschlüssels werden in sortierter Reihenfolge gespeichert, sodass auf die entsprechenden Daten leicht zugegriffen werden kann.
  • Die zweite Spalte der Datenbank ist die Datenreferenz. Es enthält eine Reihe von Zeigern, die die Adresse des Plattenblocks enthalten, in dem der Wert des jeweiligen Schlüssels gefunden werden kann.

Indizierungsmethoden

DBMS-Indizierung im DBMS

Geordnete Indizes

Die Indizes sind normalerweise sortiert, um die Suche zu beschleunigen. Die sortierten Indizes werden als geordnete Indizes bezeichnet.

Beispiel : Angenommen, wir haben eine Mitarbeitertabelle mit Tausenden von Datensätzen, von denen jeder 10 Byte lang ist. Wenn ihre IDs mit 1, 2, 3 usw. beginnen und wir Studenten mit ID-543 suchen müssen.

  • Im Falle einer Datenbank ohne Index müssen wir den Plattenblock von Anfang an durchsuchen, bis er 543 erreicht. Das DBMS liest den Datensatz, nachdem es 543*10=5430 Bytes gelesen hat.
  • Im Falle eines Index suchen wir mithilfe von Indizes und das DBMS liest den Datensatz, nachdem es 542*2= 1084 Bytes gelesen hat, was im Vergleich zum vorherigen Fall sehr viel weniger ist.

Primärindex

  • Wird der Index auf Basis des Primärschlüssels der Tabelle erstellt, spricht man von Primärindizierung. Diese Primärschlüssel sind für jeden Datensatz eindeutig und enthalten eine 1:1-Beziehung zwischen den Datensätzen.
  • Da Primärschlüssel in sortierter Reihenfolge gespeichert werden, ist die Leistung des Suchvorgangs recht effizient.
  • Der Primärindex kann in zwei Typen eingeteilt werden: Dense-Index und Sparse-Index.

Dichter Index

  • Der dichte Index enthält einen Indexdatensatz für jeden Suchschlüsselwert in der Datendatei. Es beschleunigt die Suche.
  • Dabei entspricht die Anzahl der Datensätze in der Indextabelle der Anzahl der Datensätze in der Haupttabelle.
  • Es benötigt mehr Platz, um den Indexdatensatz selbst zu speichern. Die Indexdatensätze verfügen über den Suchschlüssel und einen Zeiger auf den tatsächlichen Datensatz auf der Festplatte.
DBMS-Indizierung im DBMS

Sparse-Index

  • In der Datendatei erscheint der Indexdatensatz nur für einige Elemente. Jedes Element zeigt auf einen Block.
  • Dabei zeigt der Index nicht auf jeden Datensatz in der Haupttabelle, sondern auf die Datensätze in der Haupttabelle in einer Lücke.
DBMS-Indizierung im DBMS

Clustering-Index

  • Ein Clustered-Index kann als geordnete Datendatei definiert werden. Manchmal wird der Index für Nicht-Primärschlüsselspalten erstellt, die möglicherweise nicht für jeden Datensatz eindeutig sind.
  • Um den Datensatz schneller zu identifizieren, gruppieren wir in diesem Fall zwei oder mehr Spalten, um den eindeutigen Wert zu erhalten und daraus einen Index zu erstellen. Diese Methode wird als Clustering-Index bezeichnet.
  • Die Datensätze mit ähnlichen Merkmalen werden gruppiert und für diese Gruppe werden Indizes erstellt.

Beispiel : Angenommen, ein Unternehmen hat mehrere Mitarbeiter in jeder Abteilung. Angenommen, wir verwenden einen Clustering-Index, bei dem alle Mitarbeiter, die derselben Dept_ID angehören, in einem einzigen Cluster berücksichtigt werden und Indexzeiger auf den Cluster als Ganzes verweisen. Hier ist Dept_Id ein nicht eindeutiger Schlüssel.

DBMS-Indizierung im DBMS

Das vorherige Schema ist wenig verwirrend, da ein Plattenblock von Datensätzen gemeinsam genutzt wird, die zu verschiedenen Clustern gehören. Wenn wir separate Festplattenblöcke für separate Cluster verwenden, spricht man von einer besseren Technik.

DBMS-Indizierung im DBMS

Sekundärindex

Bei der Sparse-Indizierung nimmt mit zunehmender Tabellengröße auch die Größe der Zuordnung zu. Diese Zuordnungen werden normalerweise im Primärspeicher gespeichert, sodass der Adressabruf schneller erfolgen sollte. Anschließend durchsucht der Sekundärspeicher die tatsächlichen Daten basierend auf der durch das Mapping erhaltenen Adresse. Wenn die Zuordnungsgröße zunimmt, wird das Abrufen der Adresse selbst langsamer. In diesem Fall ist der Sparse-Index nicht effizient. Um dieses Problem zu lösen, wird die Sekundärindizierung eingeführt.

Bei der sekundären Indizierung wird eine weitere Indizierungsebene eingeführt, um die Größe der Zuordnung zu reduzieren. Bei dieser Methode wird zunächst der große Bereich für die Spalten ausgewählt, sodass die Zuordnungsgröße der ersten Ebene klein wird. Dann wird jeder Bereich weiter in kleinere Bereiche unterteilt. Die Zuordnung der ersten Ebene wird im Primärspeicher gespeichert, sodass der Adressabruf schneller erfolgt. Die Abbildung der zweiten Ebene und die tatsächlichen Daten werden im Sekundärspeicher (Festplatte) gespeichert.

DBMS-Indizierung im DBMS

Zum Beispiel:

  • Wenn Sie den Datensatz von Rolle 111 im Diagramm finden möchten, wird im Index der ersten Ebene nach dem höchsten Eintrag gesucht, der kleiner oder gleich 111 ist. Auf dieser Ebene wird es 100 erreichen.
  • Dann wird in der zweiten Indexebene wieder max (111) angezeigt.<= 111 and gets 110. now using the address 110, it goes to data block starts searching each record till 111. < li>
  • So wird bei dieser Methode eine Suche durchgeführt. Auch das Einfügen, Aktualisieren oder Löschen erfolgt auf die gleiche Weise.