Grundlegende Schlüssel, die die Datenbankverwaltung vereinfachen
Datenbanken verwenden Tabellen, um Informationen zu organisieren. Jede Tabelle besteht aus einer Reihe von Zeilen, von denen jede einem einzelnen Datenbankdatensatz entspricht. Also, wie halten Datenbanken diese Aufzeichnungen aufrecht? Es ist durch die Verwendung von Schlüsseln.
Primärschlüssel
Der erste Schlüsseltyp, den wir besprechen werden, ist der Primärschlüssel. Die Primärschlüssel identifiziert jeden Datensatz in einer Tabelle eindeutig. Jede Datenbanktabelle sollte eine oder mehrere Spalten haben, die als Primärschlüssel bezeichnet werden.
Beispiel für einen Primärschlüssel
Angenommen, wir haben eine Tabelle namens Employees, die Personalinformationen für jeden Mitarbeiter in unserem Unternehmen enthält. Wir müssten einen geeigneten Primärschlüssel auswählen, der jeden Mitarbeiter eindeutig identifiziert. Ihr erster Gedanke könnte sein, den Namen des Mitarbeiters zu verwenden. Dies würde jedoch nicht funktionieren, da es denkbar ist, dass Sie zwei Mitarbeiter mit demselben Namen einstellen. Eine bessere Wahl könnte es sein, die eindeutige Mitarbeiter-ID-Nummer zu verwenden, die jedem Mitarbeiter bei der Einstellung zugewiesen wird.
Einige Organisationen verwenden Sozialversicherungsnummern (oder ähnliche behördliche Kennungen) als Primärschlüssel, da jeder Mitarbeiter bereits eine hat und sie garantiert eindeutig sind. Die Verwendung von Sozialversicherungsnummern zu diesem Zweck ist jedoch aus Datenschutzgründen umstritten.
Wenn Sie für eine Regierungsorganisation arbeiten, ist die Verwendung einer Sozialversicherungsnummer nach dem Privacy Act von 1974 möglicherweise nicht legal. Aus diesem Grund haben die meisten Organisationen auf die Verwendung eindeutiger Kennungen wie Mitarbeiter- oder Studentenausweis umgestellt.
Sobald Sie sich für einen Primärschlüssel entschieden und die Datenbank eingerichtet haben, erzwingt das Datenbankverwaltungssystem die Eindeutigkeit des Schlüssels. Wenn Sie beispielsweise einen Datensatz in eine Tabelle mit einem Primärschlüssel einfügen, der einen vorhandenen Datensatz dupliziert, schlägt das Einfügen fehl.
Die meisten Datenbanken sind auch in der Lage, Primärschlüssel zu generieren. Microsoft Access kann beispielsweise so konfiguriert werden, dass der AutoWert-Datentyp verwendet wird, um jedem Datensatz in der Tabelle eine eindeutige ID zuzuweisen. Dies ist zwar effektiv, aber eine schlechte Entwurfspraxis, da Sie in jedem Datensatz in der Tabelle einen bedeutungslosen Wert haben. Verwenden Sie stattdessen diesen Platz, um etwas Nützliches zu speichern.
Fremde Schlüssel
Eine andere Art von Schlüssel ist der Unbekannter Schlüssel. Der Fremdschlüssel erstellt natürliche Beziehungen zwischen Tabellen. In den meisten Datenbankstrukturen existieren natürliche Beziehungen zwischen Tabellen.
Beispiel für Fremdschlüssel
Wenn Sie zu unserer Mitarbeiterdatenbank zurückkehren, stellen Sie sich vor, dass wir der Datenbank eine Tabelle mit Abteilungsinformationen hinzufügen möchten. Diese neue Tabelle könnte als Abteilungen bezeichnet werden und würde eine große Menge an Informationen über die gesamte Abteilung enthalten.
Wir möchten auch Informationen zu den Mitarbeitern in der Abteilung aufnehmen, aber es wäre überflüssig, dieselben Informationen in zwei Tabellen (Mitarbeiter und Abteilungen) zu haben. Stattdessen würden wir eine Beziehung zwischen den beiden Tabellen erstellen.
Erstellen einer Beziehung zwischen Tabellen
Angenommen, die Tabelle Departments verwendet die Spalte Department Name als Primärschlüssel. Um eine Beziehung zwischen den beiden Tabellen zu erstellen, würden wir der Employees-Tabelle eine neue Spalte namens Department hinzufügen.
Als nächstes geben wir den Namen der Abteilung ein, zu der jeder Mitarbeiter gehört. Dann informieren wir die Datenbankverwaltungssystem dass die Abteilungsspalte in der Employees-Tabelle ein Fremdschlüssel ist, der auf die Departments-Tabelle verweist.
Es gibt keine Eindeutigkeitsbeschränkung für einen Fremdschlüssel, da wir beispielsweise mehr als einen Mitarbeiter haben können, der zu einer einzelnen Abteilung gehört. Ebenso ist es nicht erforderlich, dass ein Eintrag in der Tabelle "Departments" einen entsprechenden Eintrag in der Tabelle "Employees" haben muss, da wir eine Abteilung ohne Mitarbeiter haben könnten.