Schlüsselsysteme und Indizierung
Ein Schlüssel ist ein Attribut oder ein Kombination aus Attributen um einen Tupel (also einen Datensatz) eindeutig identifizieren zu können. Gibt es mehrere Attributkombinationen, die als potentieller Schlüssel in Frage kommen, werden Diese als Schlüsselkandidaten bezeichnet. Mehr Infos zu Datenbank Schlüsselsystemen erfährst du hier.
Um einzelne Datensätze exakt ansprechen zu können, müssen Sie durch einen einmaligen Wert identifizierbar sein. Dies wird mit dem Primärschlüssel realisiert.
Primärschlüssel (eng. primary key)
Zu beachten sind folgende Grundsätze:
- Der Primärschlüssel ist eindeutig. Ein Datensatz muss daher nach Angabe des Schlüsselmerkmals eindeutig bestimmbar sein.
- Der Schlüssel sollte sich aus so wenigen Attributen wie möglich zusammensetzen. Er sollte daher minimal sein.
Ein Primärschlüssel kann ein realer Wert sein, zum Beispiel die ISBN-Nummer eines Buches, oder ein fiktiver Wert. In letzterem Fall nimmt man meistens eine fortlaufende Nummer: ID, Artikelnummer usw. Reale Werte werden auch als Embedded Key bezeichnet, wobei Schlüssel mit fiktiven Werten Not Embedded Key genannt werden.
Ein weiterer Faktor ist die Atributsanzahl des Primärschlüssels. Besteht er nur aus einer Nummer handelt es sich um einen Simple Key, sind jedoch mehrere Spalten zu einem Schlüssel zusammengefasst wird dies als Composed Key (Verbundsschlüssel) bezeichnet.
Zusammenfassung
| Embedded (eingebetteter) Key | z.B. ISBN-Nummer | |
| Not Embedded Key | z.B. Artikelnummer, ID | |
| Simple Key | einfach, besteht aus einer Spalte | |
| Composed Key | Verbundschlüssel, besteht aus mehreren Spalten |
Fremdschlüssel (eng. foreign key)
Der Fremdschlüssel ist im Gegensatz zum Primärschlüssel nicht einmalig. Er wird benötigt um den Bezug von einem Datensatz zu einem weiteren Datensatz in einer anderen Tabelle herzustellen. Die wichtigste Regel lautet: Jeder Fremdschlüssel ist Primärschlüssel in anderer Tabelle. Wird dies eingehalten, so ist die referentielle Integrität erreicht.
Ein Fremdschlüssel kann eindeutig oder aber auch mehrdeutig sein.
Index (Sekundarschlüssel)
Ein weiterer Vorteil von Schlüsselfeldern ist die schnellere Auffindbarkeit des Datensatzes bei Suchläufen. Eine Suche nach der Personalnummer “112″ ist daher wesentlich schneller als eine Suche nach “Herr Lukoschek”. Um die Suchanfrage bei Nichtschlüsselfeldern zu beschleunigen gibt es die Möglichkeit einen Index anzulegen. Die indizierten Felder werden Datenbankintern in einer Indextabelle sortiert und ermöglichen das schnellere Auffinden. Ein Nachteil dieser Methode ist die verlangsamte Dateneingabe, da für jeden neuen Datensatz die entsprechenden Werte in die Indextabelle geschrieben werden müssen.