Mit Fremdschlüsseln können Datenbankadministratoren auf einfache Weise die verschiedenen Verbindungen identifizieren, die in einem SQL-Datenbankverwaltungssystem vorhanden sind.
SQL führt mathematische Operationen an Daten in einem Datenbankverwaltungssystem aus. Diese Datenbanken enthalten verschiedene Tabellen, in denen jeweils Daten für eine bestimmte Entität gespeichert sind. Wenn Sie über eine Autovermietungsdatenbank verfügen, handelt es sich bei einer Entität (oder Tabelle) in dieser Datenbank um Kunden (die alle persönlichen Daten jedes Kunden speichern).
Diese Datenbanktabellen enthalten Zeilen und Spalten, wobei jede Zeile einen Datensatz enthält und jede Spalte attributspezifische Daten enthält.
In einem Datenbankverwaltungssystem sollte jeder Datensatz (oder jede Zeile) eindeutig sein.
Primärschlüssel
Obwohl festgelegt ist, dass jeder Datensatz in einer Tabelle unterschiedlich sein sollte, ist dies nicht immer der Fall. Fahren Sie mit dem Beispiel der Autovermietungsdatenbank fort, wenn die Datenbank jeweils zwei Kunden enthält Mit dem Namen "John Brown" könnte von einem John Brown erwartet werden, dass er einen Mercedes-Benz zurückgibt, den er nicht hatte Miete.
Durch das Erstellen eines Primärschlüssels wird dieses Risiko verringert. In einem SQL-Datenbankverwaltungssystem ist ein Primärschlüssel eine eindeutige Kennung, die einen Datensatz von einem anderen unterscheidet.
Daher sollte jeder Datensatz in einem SQL-Datenbankverwaltungssystem einen Primärschlüssel haben.
Verwenden von Primärschlüsseln in einer Datenbank
Um Primärschlüssel mithilfe von SQL in ein Datenbankverwaltungssystem aufzunehmen, können Sie sie beim Erstellen einer neuen Tabelle einfach als normales Attribut hinzufügen. Die Kundentabelle enthält also vier Attribute (oder Spalten):
- CarOwnerID (in der der Primärschlüssel gespeichert wird)
- Vorname
- Nachname
- Telefonnummer
Verbunden: So erstellen Sie eine Tabelle in SQL
Jetzt hat jeder Kundendatensatz, der in die Datenbank eingeht, eine eindeutige Identifikationsnummer sowie einen Vor- und Nachnamen sowie eine Telefonnummer. Die Telefonnummer ist nicht eindeutig genug, um ein Primärschlüssel zu sein, da eine Person, obwohl sie jeweils nur für eine Person eindeutig ist, ihre Nummer leicht ändern kann, was bedeutet, dass sie jetzt einer anderen Person gehört.
Ein Datensatz mit einem Primärschlüsselbeispiel
/ * erstellt einen neuen Datensatz in der Kundentabelle * /
IN Kundenwerte EINFÜGEN
('0004',
'John',
'Braun',
'111-999-5555');
Der obige SQL-Code fügt dem bereits vorhandenen einen neuen Datensatz hinzu Kunden Tabelle. Die folgende Tabelle zeigt die neue Kundentabelle mit den beiden John Brown-Datensätzen.
Der Fremdschlüssel
Jetzt haben Sie Primärschlüssel, die einen Autovermieter eindeutig von einem anderen unterscheiden. Das einzige Problem ist, dass es in der Datenbank keine echte Verbindung zwischen jedem John Brown und dem Auto gibt, das er mietet.
Daher besteht weiterhin die Möglichkeit, einen Fehler zu machen. Hier kommen Fremdschlüssel ins Spiel. Die Verwendung eines Primärschlüssels zur Lösung des Problems der Mehrdeutigkeit des Eigentums ist nur möglich, wenn der Primärschlüssel gleichzeitig als Fremdschlüssel fungiert.
Was ist ein Fremdschlüssel?
In einem SQL-Datenbankverwaltungssystem ist ein Fremdschlüssel ein eindeutiger Bezeichner oder eine Kombination eindeutiger Bezeichner, die zwei oder mehr Tabellen in einer Datenbank verbinden.
Von den vier existierenden SQL-Datenbankverwaltungssystemen ist das relationale Datenbankverwaltungssystem das beliebteste. Wenn Sie entscheiden, welche Tabelle in einer relationalen Datenbank einen Fremdschlüssel haben soll, sollten Sie zuerst identifizieren, welche Tabelle das Subjekt und welches das Objekt in ihrer Beziehung ist.
Wenn Sie zur Autovermietungsdatenbank zurückkehren, um jeden Kunden mit dem richtigen Auto zu verbinden, müssen Sie verstehen, dass ein Kunde (das Subjekt) ein Auto (das Objekt) mietet. Daher sollte sich der Fremdschlüssel in der Autotabelle befinden.
Der SQL-Code, der eine Tabelle mit einem Fremdschlüssel generiert, unterscheidet sich geringfügig von der Norm.
Erstellen einer Tabelle mit einem Fremdschlüsselbeispiel
/ * erstellt eine Neuwagen-Tabelle in der Autovermietungsdatenbank * /
TABELLE ERSTELLEN Autos
(
LicenseNumber varchar (30) NICHT NULL PRIMARY KEY,
CarType varchar (30) NICHT NULL,
CustomerID varchar (30) AUSLÄNDISCHE SCHLÜSSELREFERENZEN Kunden (CustomerID)
);
Wie Sie im obigen Code sehen können, muss ein Fremdschlüssel explizit als solcher identifiziert werden, zusammen mit einem Verweis auf den Primärschlüssel, der mit der neuen Tabelle verbunden wird.
Verbunden: Das Essential SQL Commands Cheat Sheet für Anfänger
Um der neuen Tabelle einen Datensatz hinzuzufügen, müssen Sie sicherstellen, dass der Wert im Fremdschlüsselfeld mit dem Wert im Primärschlüsselfeld der Originaltabelle übereinstimmt.
Hinzufügen eines Datensatzes mit einem Fremdschlüsselbeispiel
/ * erstellt einen neuen Datensatz in der Autotabelle * /
INSERT IN Cars VALUES
('100012',
'Mercedes Benz',
'0004');
Der obige Code erstellt einen neuen Datensatz im neuen Autos Tabelle, die das folgende Ergebnis ergibt.
Autotisch
Aus der obigen Tabelle können Sie den richtigen John Brown, der einen Mercedes-Benz mietet, anhand des Fremdschlüssels in der Aufzeichnung identifizieren.
Fremdschlüssel vorschieben
Es gibt zwei weitere Möglichkeiten, einen Fremdschlüssel in einer Datenbank zu verwenden.
Wenn Sie auf die obige Definition eines Fremdschlüssels zurückblicken, werden Sie feststellen, dass ein Fremdschlüssel ein eindeutiger Bezeichner oder eine Kombination eindeutiger Bezeichner sein kann.
Wenn Sie zum Beispiel der Autovermietungsdatenbank zurückkehren, werden Sie feststellen, dass das Erstellen eines neuen Datensatzes (desselben Autos) jedes Mal, wenn ein Kunde dieses Auto mietet, den Zweck des Autos Tabelle. Wenn die Autos zum Verkauf stehen und einmal an einen einzelnen Kunden verkauft werden, ist die vorhandene Datenbank perfekt. Da es sich bei den Autos jedoch um Mietwagen handelt, gibt es eine bessere Möglichkeit, diese Daten darzustellen.
Zusammengesetzte Schlüssel
Ein zusammengesetzter Schlüssel hat zwei oder mehr eindeutige Bezeichner. In einer relationalen Datenbank gibt es Fälle, in denen die Verwendung eines einzelnen Fremdschlüssels die in dieser Datenbank vorhandenen Beziehungen nicht ausreichend darstellt.
Im Beispiel für eine Autovermietung besteht der praktischste Ansatz darin, eine neue Tabelle zu erstellen, in der die Mietdetails gespeichert sind. Damit die Informationen in der Autovermietungstabelle nützlich sind, muss sie sowohl mit der Auto- als auch mit der Kundentabelle verbunden sein.
Erstellen einer Tabelle mit zusammengesetzten Fremdschlüsseln
/ * erstellt eine CarRental-Tabelle in der Autovermietungsdatenbank * /
TABELLE ERSTELLEN CarRental
(
DateRented DATE NOT NULL,
LicenseNumber varchar (30) NICHT NULL AUSLÄNDISCHE SCHLÜSSELREFERENZEN Autos (LicenseNumber),
CustomerID varchar (30) NICHT NULL AUSLÄNDISCHE SCHLÜSSELREFERENZEN Kunden (CustomerID),
PRIMARY KEY (DateRented, LicenseNumber, CustomerID)
);
Der obige Code zeigt einen wichtigen Punkt. Obwohl eine Tabelle in einer SQL-Datenbank mehr als einen Fremdschlüssel haben kann, kann sie nur einen einzigen Primärschlüssel haben. Dies liegt daran, dass es nur eine eindeutige Möglichkeit geben sollte, einen Datensatz zu identifizieren.
Es ist erforderlich, alle drei Attribute in der Tabelle zu kombinieren, um einen eindeutigen Schlüssel zu erhalten. Ein Kunde kann mehr als ein Auto am selben Tag mieten (also Kundennummer und DateRented ist keine gute Kombination) mehr als ein Kunde kann am selben Tag dasselbe Auto mieten (also Lizenznummer und DateRented ist keine gute Kombination).
Die Erstellung eines zusammengesetzten Schlüssels, der angibt, welcher Kunde, welches Auto und an welchem Tag, ist jedoch ein hervorragender eindeutiger Schlüssel. Dieser eindeutige Schlüssel repräsentiert sowohl einen zusammengesetzten Fremdschlüssel als auch einen zusammengesetzten Primärschlüssel.
Ausländische Primärschlüssel
Oh ja, fremde Primärschlüssel werden beendet. Obwohl es keinen offiziellen Namen dafür gibt, kann ein Fremdschlüssel auch ein Primärschlüssel in derselben Tabelle sein. Dies geschieht, wenn Sie eine neue Tabelle erstellen, die spezielle Daten zu einer vorhandenen Entität enthält (oder in einer anderen Tabelle aufzeichnet).
Angenommen, Fred (der bei der Autovermietung arbeitet) befindet sich in der Datenbank des Unternehmens unter der Mitarbeitertabelle. Nach einigen Jahren wird er Supervisor und wird in die Supervisor-Tabelle aufgenommen.
Fred ist immer noch ein Angestellter und wird immer noch die gleiche ID-Nummer haben. Die Mitarbeiter-ID von Fred befindet sich nun in der Supervisor-Tabelle als Fremdschlüssel, der auch als Primärschlüssel verwendet wird Geben Sie diese Tabelle ein (da es keinen Sinn macht, eine neue ID-Nummer für Fred zu erstellen, jetzt, wo er Supervisor ist).
Jetzt können Sie Fremdschlüssel in SQL-Datenbanken identifizieren
Fremdschlüssel verbinden verschiedene Tabellen innerhalb einer SQL-Datenbank. In diesem Artikel können Sie sehen, was ein Fremdschlüssel ist, wie er funktioniert und warum es wichtig ist, ihn in einer Datenbank zu haben. Sie verstehen auch die grundlegenden und noch komplexeren Formen von Fremdschlüsseln.
Wenn Sie der Meinung sind, dass Fremdschlüssel interessant sind, haben Sie einen Feldtag, an dem Sie die Projekt- und Auswahlvorgänge zum Abfragen Ihrer SQL-Datenbanken verwenden.
Machen Sie sich mit relationalen SQL-Datenbanken vertraut, indem Sie die Projekt- und Auswahlvorgänge anhand dieser Beispiele verstehen.
Weiter lesen
- Programmierung
- Programmierung
- SQL
- Datenbank
Kadeisha Kean ist ein Full-Stack-Softwareentwickler und technischer / technologischer Redakteur. Sie hat die ausgeprägte Fähigkeit, einige der komplexesten technologischen Konzepte zu vereinfachen. Herstellung von Material, das von jedem Technologie-Neuling leicht verstanden werden kann. Sie schreibt leidenschaftlich gern, entwickelt interessante Software und bereist die Welt (durch Dokumentarfilme).
Abonnieren Sie unseren Newsletter
Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!
Noch ein Schritt…!
Bitte bestätigen Sie Ihre E-Mail-Adresse in der E-Mail, die wir Ihnen gerade gesendet haben.