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.
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ü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 Indizes-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 | |||||||
|
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 | ||||||||
|