<< >> Up Title Contents Index

Erzeugung eines Indexes

Da in einer Tabelle alle Spalten gleich behandelt werden, ist jede als Suchkriterium benutzbar. Das bedeutet aber nicht, daß auch dieselbe Arbeitseffizienz vorliegt.

Wenn eine Spalte bevorzugt für Bedingungen beim Suchen und bei Änderungen benutzt wird, empfiehlt es sich, dafür eine Indexdatei anzulegen. Sie hilft, die Zeilen einer Tabelle schneller zu finden. Bei einer Abfrage versucht das System, einen oder auch mehrere Indizes zur Laufzeitoptimierung zu verwenden.

Ein einspaltiger Index auf die Spalte 'nachname' der Kundentabelle soll angelegt werden. Es stehen dafür zwei syntaktische Varianten zur Verfügung. Im ersten Fall wird ein benannter Index mit der Bezeichnung 'nachname_idx' kreiert; im zweiten Fall wird der unbenannte Index nur über den Tabellen- sowie Spaltennamen identifiziert.

CREATE INDEX nachname_idx on kunde (nachname)

CREATE INDEX kunde.nachname

Ein Index kann sich auf mehrere Spalten beziehen; er wird dann als multipler Index bezeichnet und muß mit einem Namen versehen werden.

CREATE INDEX name_idx on kunde (nachname, vorname)

Soll ein Index erzeugt werden, der ähnlich dem Schlüssel (siehe Kap. 9) eine Eindeutigkeit gewährleistet, ist dies mit dem Wort UNIQUE zu kennzeichnen.

Die Definition eines UNIQUE-Indexes kann gleichzeitig mit der Tabellendefinition erfolgen. Obwohl für den Nachnamen die Forderung nach Eindeutigkeit zu restriktiv wäre, sähe das für die beiden obigen Beispiele prinzipiell folgendermaßen aus:

CREATE TABLE kunde (knr FIXED (4) ...
                    anrede
                    nachname CHAR (7) UNIQUE,
                    vorname ...
                    )

CREATE TABLE kunde (knr FIXED (4) ...
                    anrede
                    nachname
                    vorname ...

                    UNIQUE (nachname,vorname)
                    )

Die Datenbank generiert für den zweiten Fall einen eigenen Namen INDEX01.


<< >> Up Title Contents Index