Schlüssel

Schauen wir unsere Tabelle tblOrte genauer an: Wäre IDOrt nicht vom Typ Autowert, sondern Zahl, könnte die gleiche Zahl mehrfach vorkommen! Und in txtOrt könnte man mehrfach die gleiche Stadt eintragen.

Schlüssel Hier kommen Schlüssel (auch Indizes genannt) ins Spiel: So, wie ein Hausschlüssel nur bei einem exakt passenden Schloss greift, so erzwingt der Schlüssel eines Datensatzes in einer Datenbanktabelle eine exakte „Bezeichnung“ des Datensatzes. Mit Schlüsseln lässt sich auch einstellen, ob Werte in einem Feld eindeutig sein müssen. Als Nebeneffekt wird ein Indexfeld schneller durchsucht und sortiert als ein nicht indiziertes Feld. Wir brauchen also für unsere Ländertabelle einen eindeutigen Index für das Feld IDLand und einen weiteren für txtLand. Der zweite Index verhindert, dass z. B. „Bayern“ mehrfach eingegeben werden kann.

tblLänder enthält in IDLand Werte, auf die wir in tblOrte verweisen. Solch einen Index nennt man den PrimärschlüsselPrimärschlüssel der Tabelle. Jede Tabelle sollte einen Primärschlüssel haben, der eindeutig einen bestimmten Datensatz bezeichnet. In tblOrte ist dies IDOrt. Das Feld lngLand in tblOrte enthält dagegen nur Werte des Primärschlüssels aus tblLänder. Deswegen nennt man dies einen Fremdschlüssel.

Der IndizesIndizes-Button in der Entwurfsansicht einer Tabelle öffnet das Index-Fenster, in dem man Schlüssel verwalten kann:

Indizes: tblLänder
  Indexname Feldname Sortierreihenfolge
PrimaryKey IDLand Aufsteigend
  NamensIndex   txtLand Aufsteigend
Indexeigenschaften
PrimärschlüsselJa
EindeutigJa
Nullwerte ignorieren  Nein  

Es sind auch zusammengesetzte Schlüssel möglich. Das sind Schlüssel, die sich über mehrere Felder erstrecken. Dazu wird ein Index auf das erste Feld erstellt, und in der nächsten Zeile des Index-Fensters wird in der Spalte Feldname das zweite Feld ausgewählt, ohne die Spalte mit dem Indexnamen auszufüllen. Das ist für unsere Tabelle tblOrte sinnvoll, denn sonst könnte man nicht einfach „Frankfurt“ eintragen, sondern müsste im Text zwischen „Frankfurt am Main“ und „Frankfurt an der Oder“ unterscheiden. Mit einem zusammengesetzten Index kann man dagegen mehrere Orte mit gleichem Namen eingeben, solange sie sich in verschiedenen Bundesländern befinden.

Indizes: tblOrte
  Indexname Feldname Sortierreihenfolge
PrimaryKey IDOrt Aufsteigend
  NamensIndex   txtOrt Aufsteigend
    lngLand Aufsteigend
Indexeigenschaften
PrimärschlüsselJa
EindeutigJa
Nullwerte ignorieren  Nein