Unterschied zwischen Primärschlüssel und Fremdschlüssel
Hauptunterschiede zwischen Primärschlüssel und Fremdschlüssel
- Eine Primärschlüsseleinschränkung ist eine Spalte, die jede Zeile in der Tabelle des relationalen Datenbankverwaltungssystems eindeutig identifiziert, während ein Fremdschlüssel eine Spalte ist, die eine Beziehung zwischen zwei Tabellen erstellt.
- Der Primärschlüssel akzeptiert niemals Nullwerte, während der Fremdschlüssel mehrere Nullwerte akzeptieren kann.
- Eine Tabelle kann nur einen einzigen Primärschlüssel enthalten, während eine Tabelle mehrere Fremdschlüssel enthalten kann.
- Der Wert des Primärschlüssels kann nicht aus der übergeordneten Tabelle entfernt werden, wohingegen der Wert des Fremdschlüssels aus der untergeordneten Tabelle entfernt werden kann.
- Keine zwei Zeilen können identische Werte für einen Primärschlüssel haben; Andererseits kann ein Fremdschlüssel doppelte Werte enthalten.
- Es gibt keine Einschränkung beim Einfügen der Werte in die Tabellenspalte, während gleichzeitig ein beliebiger Wert in die Fremdschlüsseltabelle eingefügt wird. Stellen Sie sicher, dass der Wert in einer Spalte eines Primärschlüssels vorhanden ist.
Hier habe ich den Unterschied zwischen Primärschlüssel und Fremdschlüssel analysiert und werde deren Vor- und Nachteile umfassend bewerten.
Was ist Primärschlüssel?
Eine Primärschlüsseleinschränkung ist eine Spalte oder eine Gruppe von Spalten, die jede Zeile in der Tabelle des relationalen Datenbankverwaltungssystems eindeutig identifiziert. Es darf kein Duplikat sein, d. h. derselbe Wert sollte nicht mehr als einmal in der Tabelle vorkommen.
Eine Tabelle kann nicht mehr als einen Primärschlüssel haben. Der Primärschlüssel kann auf Spalten- oder Tabellenebene definiert werden. Wenn Sie einen zusammengesetzten Primärschlüssel erstellen, sollte dieser auf Tabellenebene definiert werden.
Beispiel eines Primärschlüssels
Syntax:
Nachfolgend finden Sie die Syntax des Primärschlüssels:
CREATE TABLE <Table-Name> ( Column1 datatype, Column2 datatype, PRIMARY KEY (Column-Name) . );
Hier
- Table_Name ist der Name der Tabelle, die Sie erstellen müssen.
- Column_Name ist der Name der Spalte mit dem Primärschlüssel.
Beispiel:
StudID | Rolle Nr | Vorname | Nachname | |
---|---|---|---|---|
1 | 11 | Tom | PREIS | abc@googlemail.com |
2 | 12 | Nick | Wright | xyz@googlemail.com |
3 | 13 | Dana | Nathan | mno@yahoo.com |
Im obigen Beispiel haben wir eine Studententabelle mit Spalten wie StudID, Matrikelnummer, Vorname, Nachname und E-Mail erstellt. StudID wurde als Primärschlüssel gewählt, da es andere Zeilen in der Tabelle eindeutig identifizieren kann.
Warum Primärschlüssel verwenden?
Im Laufe meiner jahrelangen Arbeit mit Datenbanksystemen sind mir die folgenden Nachteile und Vorteile bei der Verwendung eines Primärschlüssels aufgefallen:
- Das Hauptziel des Primärschlüssels besteht darin, jeden einzelnen Datensatz in der Datenbanktabelle zu identifizieren.
- Sie können einen Primärschlüssel verwenden, wenn Sie nicht zulassen, dass jemand Nullwerte eingibt.
- Wenn Sie Datensätze löschen oder aktualisieren, wird die von Ihnen angegebene Aktion durchgeführt, um die Datenintegrität sicherzustellen.
- Führen Sie den Einschränkungsvorgang aus, um den Lösch- oder Aktualisierungsvorgang für die übergeordnete Tabelle abzulehnen.
- Wenn Sie eine DBMS-Tabelle physisch organisieren, werden die Daten in einer Folge von gruppierten Indizes organisiert.
Was ist ein Fremdschlüssel?
Ein Fremdschlüssel ist eine Spalte, die eine Beziehung zwischen zwei Tabellen herstellt. Der Zweck des Fremdschlüssels besteht darin, die Datenintegrität aufrechtzuerhalten und die Navigation zwischen zwei verschiedenen Instanzen einer Entität zu ermöglichen. Es fungiert als Querverweis zwischen zwei Tabellen, da es auf den Primärschlüssel einer anderen Tabelle verweist. Jede Beziehung in der Datenbank sollte durch einen Fremdschlüssel unterstützt werden.
Beispiel für einen Fremdschlüssel
Syntax:
Nachfolgend finden Sie die Syntax des Fremdschlüssels:
CREATE TABLE <Table Name>( column1 datatype, column2 datatype, constraint (name of constraint) FOREIGN KEY [column1, column2...] REFERENCES [primary key table name] (List of primary key table column) ...);
Hier
- Der Parameter Tabellenname gibt den Namen der Tabelle an, die Sie erstellen möchten.
- Die Parameter Spalte1, Spalte2… stellen die Spalten dar, die der Tabelle hinzugefügt werden müssen.
- Eine Einschränkung bezeichnet den Namen der Einschränkung, die Sie erstellen.
- Referenzen geben eine Tabelle mit dem Primärschlüssel an.
Beispiel:
Abteilungscode | Abteilungsname |
---|---|
001 | Forschung |
002 | Englisch |
005 | Computer |
Lehrer-ID | Fname | Lname |
---|---|---|
B002 | Christian | Warner |
B017 | Sara | Andreas |
B009 | Mike | Brunton |
Im obigen Beispiel haben wir zwei Tabellen: einen Lehrer und eine Abteilung in einer Schule. Allerdings gibt es keine Möglichkeit zu erkennen, welche Suche in welcher Abteilung funktioniert.
In dieser Tabelle können wir durch Hinzufügen des Fremdschlüssels in Deptcode zum Lehrernamen eine Beziehung zwischen den beiden Tabellen herstellen.
Lehrer-ID | Abteilungscode | Fname | Lname |
---|---|---|---|
B002 | 002 | Christian | Warner |
B017 | 002 | Sara | Andreas |
B009 | 001 | Mike | Brunton |
Dieses Konzept wird auch als referenzielle Integrität bezeichnet.
Warum Fremdschlüssel verwenden?
Nach allem, was ich gesehen habe, sind hier die wichtigen Gründe für die Implementierung von Fremdschlüsseln:
- Mit Fremdschlüsseln können Sie Entitäten mithilfe eines Primärschlüssels aus der übergeordneten Tabelle migrieren.
- A Fremdschlüssel ermöglicht es Ihnen, zwei oder mehr Tabellen miteinander zu verknüpfen.
- Dadurch werden Ihre Datenbankdaten konsistent.
- Ein Fremdschlüssel kann verwendet werden, um eine Spalte oder Spaltenkombination mit dem Primärschlüssel in einer übergeordneten Tabelle abzugleichen.
- Mithilfe der SQL-Fremdschlüsseleinschränkung wird sichergestellt, dass die referenzielle Integrität der übergeordneten Daten mit den Werten in der untergeordneten Tabelle übereinstimmt.
Unterschied zwischen Primärschlüssel und Fremdschlüssel
Lassen Sie mich den wichtigen Unterschied zwischen einem Primärschlüssel und einem Fremdschlüssel erläutern, den ich persönlich erlebt habe:
Vergleichsbasis | Primärschlüssel | Unbekannter Schlüssel |
---|---|---|
Definition | Eine Primärschlüsseleinschränkung ist eine Spalte oder eine Gruppe von Spalten, die jede Zeile in der Tabelle eindeutig identifiziert Relationales Datenbank Management System. | Ein Fremdschlüssel ist eine Spalte, die eine Beziehung zwischen zwei Tabellen herstellt. |
Basic | Es hilft Ihnen, einen Datensatz in der Tabelle eindeutig zu identifizieren. | Es ist ein Feld in der Tabelle, das der Primärschlüssel einer anderen Tabelle ist. |
NULL | Der Primärschlüssel akzeptiert niemals Nullwerte. | Ein Fremdschlüssel kann mehrere Nullwerte akzeptieren. |
Indizierung | Der Primärschlüssel ist ein gruppierter Index, und die Daten in der DBMS-Tabelle sind physisch in der Reihenfolge des gruppierten Indexes organisiert. | Ein Fremdschlüssel kann nicht automatisch einen Index erstellen, weder gruppiert noch nicht gruppiert. |
Zu Zählen | Sie können einen einzelnen Primärschlüssel in einer Tabelle haben. | Eine Tabelle kann mehrere Fremdschlüssel enthalten. |
Streichung | Der Wert des Primärschlüssels kann nicht aus der übergeordneten Tabelle entfernt werden. | Der Wert des Fremdschlüssels kann aus der untergeordneten Tabelle entfernt werden. |
Temporärer Tisch | Sie können den Primärschlüssel implizit in den temporären Tabellen definieren. | Sie können keine Fremdschlüssel für die lokalen oder globalen temporären Tabellen definieren. |
Beziehung | Der Primärschlüssel ist ein gruppierter Index. | Standardmäßig ist es kein gruppierter Index. |
Vervielfältigung | Es dürfen keine zwei Zeilen identische Werte für einen Primärschlüssel haben. | Ein Fremdschlüssel kann doppelte Werte enthalten. |
Einfügen | Es gibt keine Einschränkung beim Einfügen der Werte in die Tabellenspalte. | Stellen Sie beim Einfügen eines Werts in die Fremdschlüsseltabelle sicher, dass der Wert in einer Spalte eines Primärschlüssels vorhanden ist. |
So wählen Sie zwischen einem Primärschlüssel und einem Fremdschlüssel
Wie wir gesehen haben, identifizieren Primärschlüssel Tabelleneinträge eindeutig, und Fremdschlüssel verknüpfen diese Einträge tabellenübergreifend. Dies ist sowohl für die Aufrechterhaltung der Datenintegrität als auch für die Erleichterung eines effizienten Datenabrufs von entscheidender Bedeutung.