Contents
Ein Primärschlüssel ist eine spezielle Tabellenspalte einer relationalen Datenbank (oder eine Kombination von Spalten), die dazu bestimmt ist, jeden Tabellendatensatz eindeutig zu identifizieren. Es handelt sich um eine eindeutige Kennung, wie z. B. eine Führerscheinnummer, eine Telefonnummer (einschließlich Vorwahl) oder eine Fahrgestellnummer (FIN). Eine relationale Datenbank muss immer nur einen Primärschlüssel haben. Primärschlüssel erscheinen normalerweise als Spalten in relationalen Datenbanktabellen.
Die Hauptmerkmale eines Primärschlüssels sind:
Ein Primärschlüssel kann ein oder mehrere Felder verwenden, die bereits im zugrunde liegenden Datenmodell vorhanden sind, oder es kann ein spezielles zusätzliches Feld als Primärschlüssel erstellt werden.
Beispiel
In einer Geschäftsbank muss beispielsweise eine Datenbank alle Daten enthalten, die von einer Geschäftsbank gespeichert werden. Zwei der Datenbanktabellen sind der CUSTOMER_MASTER, der grundlegende und statische Kundendaten (Name, Geburtsdatum, Adresse, Sozialversicherungsnummer etc.) speichert und der ACCOUNTS_MASTER, der verschiedene Bankkontodaten (Kontoerstellungsdatum, Kontoart, Auszahlungslimits oder entsprechende Kontoinformationen usw.).
Um Kunden eindeutig zu identifizieren, wird eine Spalte oder eine Kombination von Spalten ausgewählt, um sicherzustellen, dass zwei Kunden niemals denselben eindeutigen Wert haben. Dadurch werden bestimmte Spalten sofort eliminiert, zB Nachname und Geburtsdatum.
Ein guter Primärschlüsselkandidat ist die Spalte, die für die Aufnahme von Sozialversicherungsnummern bestimmt ist. Einige Kontoinhaber haben jedoch möglicherweise keine Sozialversicherungsnummern, sodass die Kandidatur dieser Spalte entfällt.
Die nächste logische Option besteht darin, eine Kombination von Spalten zu verwenden, z. B. das Hinzufügen des Nachnamens zum Geburtsdatum der E-Mail-Adresse, was zu einem langen und umständlichen Primärschlüssel führt.
Am besten erstellen Sie einen separaten Primärschlüssel in einer neuen Spalte namens CUSTOMER_ID. Anschließend generiert die Datenbank jedes Mal, wenn ein Kunde hinzugefügt wird, automatisch eine eindeutige Nummer, die eine eindeutige Identifizierung garantiert.
Die Wahl eines Primärschlüssels in einer relationalen Datenbank hängt oft von den Vorlieben des Administrators ab. Es ist möglich, den Primärschlüssel für eine bestimmte Datenbank zu ändern, wenn sich die spezifischen Bedürfnisse der Benutzer ändern. Beispielsweise können die Personen in einer Stadt in einer Anwendung eindeutig anhand ihrer Führerscheinnummern identifiziert werden, in einer anderen Situation kann es jedoch bequemer sein, sie anhand ihrer Telefonnummern zu identifizieren.
Ein Fremdschlüssel ist eine Spalte oder Gruppe von Spalten in einer relationalen Datenbanktabelle, die eine Verknüpfung zwischen Daten in zwei Tabellen bereitstellt. Es fungiert als Querverweis zwischen Tabellen, da es auf den Primärschlüssel einer anderen Tabelle verweist und dadurch eine Verbindung zwischen ihnen herstellt.
Die Mehrzahl der Tabellen in einem relationalen Datenbanksystem folgt dem Fremdschlüsselkonzept. In komplexen Datenbanken und Data Warehouses müssen Daten in einer Domäne über mehrere Tabellen hinweg hinzugefügt werden, um so eine Beziehung zwischen ihnen aufrechtzuerhalten. Das Konzept der referentiellen Integrität leitet sich aus der Fremdschlüsseltheorie ab.
Während ein Primärschlüssel für sich allein existieren kann, muss ein Fremdschlüssel immer irgendwo auf einen Primärschlüssel verweisen. Die ursprüngliche Tabelle, die den Primärschlüssel enthält, ist die übergeordnete Tabelle (auch als referenzierte Tabelle bezeichnet). Auf diesen Schlüssel kann von mehreren Fremdschlüsseln aus anderen Tabellen, sogenannten “Kindtabellen”, verwiesen werden.
Für jede Spalte, die als Fremdschlüssel fungiert, sollte ein entsprechender Wert in der verknüpften Tabelle vorhanden sein. Beim Einfügen von Daten und Entfernen von Daten aus der Fremdschlüsselspalte ist besondere Vorsicht geboten, da ein unachtsames Löschen oder Einfügen die Beziehung zwischen den beiden Tabellen zerstören kann.
Einfacher ausgedrückt ist ein Fremdschlüssel ein Satz von Attributen, der auf einen Kandidatenschlüssel verweist. Beispielsweise kann eine Tabelle namens TEAM ein Attribut MEMBER_NAME haben, das ein Fremdschlüssel ist, der auf einen Kandidatenschlüssel, PERSON_NAME, in der Tabelle PERSON verweist. Da MEMBER_NAME ein Fremdschlüssel ist, muss jeder Wert, der als Name eines Mitglieds in TEAM existiert, auch als Name einer Person in der PERSON-Tabelle vorhanden sein; mit anderen Worten, jedes Mitglied eines TEAMs ist auch eine PERSON.
VERGLEICHSGRUNDLAGE | PRIMÄRSCHLÜSSEL | UNBEKANNTER SCHLÜSSEL |
Beschreibung | Eine Primärschlüsseleinschränkung ist eine Spalte, die jede Zeile in der Tabelle der relationalen Datenbankverwaltung eindeutig identifiziert. | Ein Fremdschlüssel ist eine Spalte oder Gruppe von Spalten in einer relationalen Datenbanktabelle, die eine Verknüpfung zwischen Daten in zwei Tabellen bereitstellt. |
Funktion | Es wird verwendet, um jeden Datensatz in der Datenbanktabelle eindeutig zu identifizieren. | Es wird verwendet, um zwei Tabellen miteinander zu verknüpfen. |
Indizierung | Der Primärschlüssel ist ein Clustered-Index und die Daten in der DBMS-Tabelle sind physisch in der Reihenfolge des Clustered-Index organisiert. | Ein Fremdschlüssel kann nicht automatisch einen Index erstellen, geclustert oder nicht geclustert. |
Nullwerte | Der Primärschlüssel akzeptiert niemals Nullwerte. | Ein Fremdschlüssel kann mehrere Nullwerte akzeptieren. |
Natur | Sie können einen einzelnen Primärschlüssel in einer Tabelle haben. | Sie können mehrere Fremdschlüssel in einer Tabelle haben. |
Wertentfernung | Der Wert des Primärschlüssels kann nicht aus der übergeordneten Tabelle entfernt werden. | Der Wert des Fremdschlüsselwerts kann aus der untergeordneten Tabelle entfernt werden. |
Tabelle | Eine Tabelle kann nur einen Primärschlüssel haben. | Eine Tabelle kann mehr als einen Fremdschlüssel haben. |
Definition | Die Primärschlüsseleinschränkung kann für die temporären Tabellen definiert werden. | Für die lokalen oder globalen temporären Tabellen kann keine Fremdschlüsseleinschränkung definiert werden. |
Doppelte Werte | Keine zwei Zeilen können identische Werte für einen Primärschlüssel haben. | Ein Fremdschlüssel kann doppelte Werte enthalten. |
Eltern-Kind-Beziehung | Es kann keine Eltern-Kind-Beziehung in einer Tabelle erstellen. | Es kann eine Eltern-Kind-Beziehung in einer Tabelle erstellen. |
Doppelte Werte | Primary ist ein eindeutiges Schlüsselattribut, es kann keine doppelten Werte in Beziehung speichern. | Doppelte Werte können in der Fremdschlüsselspalte gespeichert werden. |
Streichung | Unter Primärschlüsseln kann ein Wert aus der referenzierenden Tabelle gelöscht werden, indem sichergestellt wird, dass der Wert nicht in der Fremdschlüssel-Referenztabelle vorhanden ist. | Unter Fremdschlüsseln können die Werte ohne Störungen gelöscht werden, da es egal ist, ob der Wert noch in der Primärschlüssel-Referenztabelle vorhanden ist oder nicht. |
Einleitung: Die Begriffe "Freeway" und "Highway" werden oft synonym verwendet, aber es gibt subtile Unterschiede…
Burritos und Enchiladas sind zwei beliebte Gerichte der mexikanischen Küche, die oft miteinander verwechselt werden.…
In der Zellbiologie spielen Replikation und Transkription entscheidende Rollen im genetischen Prozess. Beide sind Mechanismen,…
Osmose und Diffusion sind zwei grundlegende Prozesse, die in der Zellbiologie und Chemie eine entscheidende…
Einleitung: Die Evolution der mobilen Kommunikationstechnologie hat einen bedeutenden Meilenstein erreicht, als 4G (LTE) zu…
Einleitung: JPG und PNG sind zwei gängige Bildformate, die im Internet weit verbreitet sind. Obwohl…