Du hast Fragen? Wir haben Antworten! - Bald findet unser nächster Tag der offenen Tür statt!

Logo site

Fremdschlüssel SQL: Ein unentbehrliches Verteidigungssystem

-
3
 Minuten Lesezeit
-
fremdschluessel

Fremdschlüssel SQL: Wer ein SQL-Datenbankverwaltungssystem entwirft, tut gut daran, das Fremdschlüsselsystem zu kennen und zu implementieren. Langfristig wird er davon profitieren.

Ein Fremdschlüssel SQL ist eine Spalte (oder mehrere Spalten) in einer Datenbank, die mit der Spalte Primärschlüssel in einer anderen Tabelle verknüpft ist. Der Primärschlüssel ist eine einfache Kennung. Die nützlichen – und veränderbaren – Informationen sind in der Fremdtabelle enthalten.

 

💡Auch interessant:

SQL Count Tutorial
SQL Datei öffnen
SQL vs. NOSQL
noSQL nicht relationale Datenbanken
Alles über SQL
Insert INTO SQL

Welchen Nutzen hat ein Fremdschlüssel SQL?

Welchen Zweck hat ein Fremdschlüssel SQL? Für jeden Artikel muss diese Kategorie einzeln ausgefüllt werden.

Als Beispiel könnten wir die Kategorie „Metallprodukt“ haben. Über Nacht ändert sich die Gesetzgebung und die Kategorie wird zu „Metallprodukt“.

Was ist zu tun? Muss ich jetzt alle Zeilen ändern, in denen die Kategorie „Metallprodukt“ vorkommt? Leider ja. Wenn die Artikeltabelle Zehntausende von Einträgen umfasst, ist das ein sehr langwieriger Prozess.

Um solche Situationen zu vermeiden, wurde der Begriff des SQL Fremdschlüssels definiert. In dem oben beschriebenen Fall besteht die Idee darin, eine separate Tabelle mit dem Namen Kategorie zu erstellen, in der wir als Primärschlüssel eine Kennung (eine Nummer für jede Kategorie) haben, die mit der entsprechenden Beschreibung verknüpft ist.

In der Tabelle Artikel kann dann für jedes Produkt, das im Katalog angeboten wird, die entsprechende ID aus der Tabelle Kategorien angegeben werden. Es ist dann möglich, die Liste jedes Artikels auszudrucken und gleichzeitig (durch einen Join) die entsprechende Kategorie anzuzeigen.

Wie wir sehen können, ist die Situation der Kategorie, die ihren Namen ändert, hier gelöst.

Eltern- und Tochtertabelle

Eine Tabelle, die von einer anderen Tabelle referenziert wird, wird als „übergeordnete Tabelle“ bezeichnet. Dies wäre in diesem Fall die Tabelle Kategorien.

Und eine „Tochtertabelle“ ist eine Tabelle, die auf eine externe Tabelle verweist – hier wäre das die Tabelle Artikel.

Ein praktisches Beispiel

Hier ist ein weiteres Beispiel für die Verwendung eines Fremdschlüssels in einem expliziteren Fall.

KUNDEN Tabelle

Id_Client Nom
Prénom
Âge
1 Martin
Germaine
32
2
Culprit
Thomas
22
3
Albanez
Francis
40
4
De Jonquière
Martine
33

KUNDEN ist hier die Tabelle „Verwandte“. Wenn die Kundin Nr. 4, Martine de Jonquière, sich scheiden lassen würde und morgen wieder ihren Mädchennamen (Heras) annehmen würde, würde es genügen, diese Information in der Tabelle „Verwandte“ zu ändern.

BESTELL Tabelle

Id_Commande
Date_Commande
Id_Client
1
11/04/2023
4
2
10/05/2023
3
3
12/05/2023
4
4
26/05/2023
4
5
16/06/2023
1

In diesem Beispiel finden wir die Spalte „Kunden_Id“ in der Tabelle BESTELLUNGEN (die die „Tochter“-Tabelle ist). Sie zeigt auf die Spalte „Kunden_Id“ in der Tabelle KUNDEN. So könnten wir hier durch einen Join herausfinden, dass Martine de Jonquières dreimal bestellt hat: einmal im April und zweimal im Juni.

In der Tabelle KUNDEN ist die Spalte KUNDEN_ID der Primärschlüssel.

In der Tabelle BESTELLUNGEN ist die Spalte KUNDEN_ID der Fremdschlüssel.

Vorteile von Fremdschlüsseln

Referentielle Integrität

Der Hauptvorteil, der mit der Verwendung von SQL  Fremdschlüsseln verbunden ist, ist die referentielle Integrität: Keine Zeile in der Tochtertabelle ist vollständig und gültig, solange es keinen entsprechenden Datensatz in der Elterntabelle gibt.

Kohärenz der Informationen

Alle Tabellen, die auf den Fremdschlüssel verweisen, stellen sicher, dass sie konsistente und aktuelle Daten ausgeben können. Zur Erinnerung: Wenn Martine de Jonquières ihren Namen ändert, wird diese Änderung von allen Tabellen aus sichtbar, die auf ihren Identifikator verweisen.

Nachteile von Fremdschlüsseln

Verringerte Verarbeitungsgeschwindigkeit

Es ist offensichtlich, dass der Fremdschlüssel eine längere Computerverarbeitungszeit erfordert. Jedes Mal, wenn du eine neue Zeile in eine Tabelle wie BESTELLUNGEN einfügst, musst du überprüfen, ob die entsprechende Kunden-ID in der Tabelle KUNDEN vorhanden ist.

Komplexität

Der Verweis auf die Kunden-ID Nr. 4 kann komplexer sein, als einfach nur den Namen Martine de Jonquières anzugeben. Daher ist das Lesen einer Datenbank wie die der BESTELLUNGEN auf den ersten Blick nicht ganz einfach.

Eine empfohlene Nutzung

Trotz der Nachteile, die ihre Verwendung mit sich bringt, ist die Verwendung von Fremdschlüsseln für diejenigen, die mit der Entwicklung von SQL-Datenbanksystemen betraut sind, sehr zu empfehlen. Auf lange Sicht wird er davon profitieren.

Einfach ausgedrückt könnte man sagen, dass es wichtig ist, Fremdschlüssel immer dann zu verwenden, wenn man es mit einem Datentyp zu tun hat, der sich im Laufe der Zeit verändern kann. Die hier behandelten Beispiele zeigen deutlich, was man damit erreichen kann. Daher ist es von entscheidender Bedeutung, Fremdschlüssel bereits beim Entwurf einer SQL-Datenbank zu definieren.

DataScientest News

Melde Dich jetzt für unseren Newsletter an, um unsere Guides, Tutorials und die neuesten Entwicklungen im Bereich Data Science direkt per E-Mail zu erhalten.

Möchtest Du informiert bleiben?

Schreib uns Deine E-Mail-Adresse, damit wir Dir die neuesten Artikel zum Zeitpunkt der Veröffentlichung zusenden können!
icon newsletter

DataNews

Starte Deine Karriere im Bereich Data: Erhalte regelmäßig Insiderwissen und wertvolle Karrieretipps in Deinem Posteingang.