4.1. Indizies history menue
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.

1. Indexfunktion
2. Praktischer Indexeinsatz
3. Einfacher und Komplexer Index
4. Gepacktes BCD-Format

Datenbanken

Logo der Indizies

inhaltlich auf korrektem Stand - evtl. partiell unvollständig ;-)

Wissen für Fortgeschrittene der Informatik

Quellen:
Indizierte Dateien existieren nicht zum Selbstzweck - sie sind Mittel zum Zweck der komfortablen Datenbankarbeit. So sind Indexdateien z. B. Voraussetzung bei der Verknüpfung von Datenbankdateien in FoxPro. Aber auch den schnellen Zugriff auf unsortierte Datenbestände machen Indexdateien erst möglich. Dabei wird gar nicht real sortiert, sondern die Nummer des Platzes des in der Sortierfolge richtigen Datensatzes in einer separaten Datei registriert.

1. Indexfunktion history menue scroll up

Indizies sind solange bedeutungslos, wie die Erfassung der Daten in einer sortierten Folge vorgenommen und garantiert wird, dass dies im "Live-Cycle" der Datenbasis auch so bleibt. Das aber kann bei Datenpflege praktisch nicht gewährleistet werden.

  • Indizies beschleunigen den Datenzugriff auf unsortierte Datenbestände, da der Index ein verweis auf den Platz des nächsten anzuordnenden Elementes enthält

  • viele Datenbankmanagementsysteme indizieren ihren Datenbestand  automatisch, sofern mindestens ein Schlüssel vorhanden ist und wenn diese Funktion nicht ausgeschalten wird

  • Indizies sind an mindestens ein Schlüsselfeld gebunden

  • Indizies vergrößern den Datenbestand um mindestens ein Datenfeld (das Indexfeld) - die Datei wird also mit Index größer, als sie ohne Index ist

  • ein verlorener Index kann neu generiert werden - es bedeutet nur eine Neusortierung der Datenbasis

  • verwaltet wird der Index über die Datensatznummer - record-number (recnum) - eine Systemvariable in dBASE

Einige Datenbankmanagementsysteme erstellen separate Dateien für die Indexverwaltung

 

Indizierte Datenbasis


2. Praktischer Indexeinsatz history menue scroll up

Sortierungen werden bei indizierten Datenbanken über eben diesen wahrgenommen. Der Index wird dabei als Speicher für die Satznummer verwandt, er gibt also an, mit welcher Satznummer ein Datensatz innerhalb der geöffneten Datei registriert ist, auch wenn er physisch an einer ganz anderen Stelle angeordnet ist.
Indizierte Daten ermöglichen damit den Zugriff auf "pseudsortierte" Datensätze. In FoxPro werden, wie in jeder Datenbank, die Datensätze in der Reihenfolge ihres Anfalls erfasst und auch abgespeichert. Sind alle Datensätze zusammengetragen, kann die Datenbank natürlich sortiert werden, ergibt dann aber eine neue Datei. Außerdem - kommen weitere Datensätze hinzu, werden diese automatisch "hinten" angehangen; die Sortierreihenfolge geht also wieder verloren. Indexdateien werden also dann angewandt, wenn Datenbanken laufend verändert werden, wobei die Pflege der Indexdateien automatisch mitläuft (wenn Sie diese Funktion nicht ausschalten). Konstante Datenbanken sollte man sortieren und dann sortiert auf Disc ablegen.
Ein weiteres Kriterium der Anwendung von Indexdateien besteht in der Herstellung relationaler Bezüge zwischen mehreren Dateien eines Datenbanktypes (z. B. FoxPro). Dann hat der Anwender die Möglichkeit, seine Arbeit an Datenbeständen mit mehreren Dateien gleichzeitig vorzunehmen; Voraussetzung ist nur, dass mindestens eine Indexdatei besteht und das alle "relational" verknüpften Datenbankdateien ein gemeinsames Feld haben (z. B. die Kundennummer).
Zum schnellen Merken:

  • Indexdateien verwalten sozusagen in einer anderen Datei (nämlich der Indexdatei!) einen Zeiger, wo der jeweilige Datensatz in der sortierten Reihenfolge steht
  • Indizies werden automatisch bei Veränderungen in der Hauptdatei mit geändert
  • verschiedene Operationen sind nur über indizierte Datenbankdateien möglich
  • eine Wirkung der Indizierung wird sofort nach ausgeführter Funktion deutlich - die Datenbank wird nach einem, von Ihnen frei wählbaren Kriterium, sortiert (evtl. auch nach mehreren)
  • Funktionen wie Sortieren (wenn Ihre .DBF-Datei noch weitere Dateien (.FPT, .TBK usw.) enthält), Setzen relationaler Beziehungen zwischen mehreren Dateien, werden erst durch Indizierung möglich
  • da es verschiedene Arten der Indizierung gibt, entstehen auch verschiedene Indexdateien - werden Mehrfachindex-Dateien angelegt und der Schlüssel auf alle Datenfelder gelegt (was nicht ungewöhnlich ist!!!), enteht in der .IDX-Datei ein größerer Datenbestand als in der Original .DBF-Datei - nämlich Original und Index

Indexverwaltung in FoxPro


3. Einfacher und komplexer Index history menue scroll up

Sortierungen werden bei indizierten Datenbanken über eben diesen wahrgenommen. Der Index wird dabei als Speicher für die Satznummer verwandt, er gibt also an, mit welcher Satznummer ein Datensatz innerhalb der

Indexverwaltung in FoxPro


zur Hauptseite
© Samuel-von-Pufendorf-Gymnasium Flöha © Frank Rost im Mai 1996

... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus (das haben wir schon den Salat - und von dem weiß ich!) nicht mehr teilzunehemn ;-)

„Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“

Diddi Hallervorden, dt. Komiker und Kabarettist

Diese Seite wurde ohne Zusatz irgendwelcher Konversationsstoffe erstellt ;-)