🚀 Bist Du bereit für eine Karriere im Bereich Data? Finde es in nur 60 Sekunden heraus!

Fremdschlüssel SQL : Ein wichtiges Schutzsystem

-
3
 Minuten Lesezeit
-
sql key

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 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:

MySQL Relationale Datenbanksoftware
SQL Tutorial
Apache Cassandra noSQL BDD
SQL Joins
SQL Count Tutorial
SQL Datei öffnen

Welchen Nutzen hat ein Fremdschlüssel SQL ?

Angenommen, du verwaltest eine Tabelle Artikel, in der es eine Spalte namens Kategorie gibt. 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 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.

Ein praktisches Beispiel

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

KUNDEN-Tabelle

Id_Client Nachname
Vorname
Alter
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_Bestellung
Date_Bestellung
Id_Kunde
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 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.

Fremdschlüssel SQL sind dennoch zu empfehlen

Trotz der Nachteile, die die Verwendung von Fremdschlüsseln mit sich bringen kann, ist die Verwendung von Fremdschlüsseln für diejenigen, die SQL-Datenbanksysteme entwerfen, 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 ä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.