Databases Reference
In-Depth Information
Wir führen Indexe hier auf, da sie ein wichtiges Instrument bei der Gestaltung von
Datenbankanwendungen sind und ihre Definition in vielen Fällen zugleich mit der
Definition der Tabellen erfolgt.
Die Syntax der CREATE INDEX -Anweisung ist nicht Gegenstand des SQL-Standards.
Dennoch ähneln sich die verschiedenen SQL-Implementationen in diesem Punkt.
Die Syntax bei ORACLE, Sybase oder DB2 lautet beispielsweise:
CREATE [UNIQUE] INDEX index_name
ON tabellenname (spaltenliste) [ASC | DESC]
Der Zusatz UNIQUE bewirkt, dass für sämtliche Zeilen der Tabelle die Kombination
der Werte der Indexspalten verschieden sein muss. Damit konnten in der Vergan-
genheit auch solche DBMS indirekt das Primärschlüsselkonzept unterstützen, bei
denen die PRIMARY KEY- und die UNIQUE-Klausel in der CREATE TABLE-
Anweisung (seit 1989 Bestandteil des SQL-Standards) noch nicht verfügbar waren.
Die Angabe von ASC bzw. DESC bewirkt die aufsteigende bzw. absteigende Sortie-
rung des Index und ist nur wichtig für sortierte Ausgaben von Daten, in denen das
Sortierkriterium mit den Spalten eines Index beginnt.
Zum Beispiel wird mit folgender Anweisung ein aufsteigend sortierter, eindeuti-
ger Index über die Spalte kunden_nr in der Kundentabelle definiert:
CREATE UNIQUE INDEX ix_kunde ON kunde (kunden_nr);
Zu beachten ist, dass Indexe nicht nur die Datenbank schneller machen. Wenn das
DBMS einerseits Abfragen beschleunigt bearbeitet, wird es bei Einfüge- und Ände-
rungsoperationen meist langsamer. Aber auch Abfragen können unter Umständen
durch Indexe verlangsamt werden - ein weites Feld für Experimente! 24
4.3.9 Übungsaufgaben
Aufgabe 4.1
In einer Datenbank sind die Tabellen angestellte(abtnr, ...) und
abteilung(abtnr, ...) enthalten. In der Anweisung CREATE TABLE angestellte fin-
det sich die Klausel:
FOREIGN KEY abteilung
REFERENCES abteilung(abtnr)
ON UPDATE CASCADE
In abteilungen wird nun ein Primärschlüsselwert geändert, der als Fremdschlüs-
selwert referenziert wird. Die Nummer einer Abteilung, zu der Angestellte gehö-
ren, wird also geändert und die vorherige Abteilungsnummer existiert danach
nicht mehr.
24 Siehe hierzu den Aufsatz: »Kriterien für die Anlage eines Index« [Unte93a].
 
Search WWH ::




Custom Search