SQL Fremdschlüssel

SQL Fremdschlüssel

„Ein Fremdschlüssel ist eine oder mehrere Spalten in einer untergeordneten Tabelle, die sich auf einen Primärschlüssel einer übergeordneten Tabelle bezieht. Die Fremd- und Primärschlüssel sind die gleichen Werte, obwohl einige in der Kindertabelle wiederholt werden können. Die übergeordnete Tabelle wird auch als Referenztabelle bezeichnet. Der Fremdschlüssel in der untergeordneten Tabelle verweist auf den Primärschlüssel in der Referenzentabelle (übergeordnete Tabelle). Das heißt, jeder Fremdschlüsselwert in der untergeordneten Tabelle entspricht einem Primärschlüsselwert in der übergeordneten Tabelle. Es kann einige Wiederholungen von Fremdschlüsselwerten in der Kindertabelle geben. Trotzdem ist jeder Fremdschlüsselwert in der Kindertabelle ein Hauptschlüssel in der Referenzentabelle. Die Verbindung zwischen beiden Tabellen ist der fremde Schlüssel.

Wenn beide Tabellen gut gestaltet sind, beseitigt die ausländische Schlüsselbeziehung die transitive Abhängigkeit. Siehe die Erläuterung der transitiven Abhängigkeit unten. Dieser Artikel erklärt Fremdschlüssel in Bezug auf transitive Abhängigkeit und relationale Datenbank.”

Illustration

Betrachten Sie eine Verkaufstabelle in der sogenannten zweiten Normalform. Im Tisch verkaufen Mitarbeiter an bekannte einzelne Kunden (Personen). Die Tabelle lautet wie folgt:

Verkaufstabelle


In der ersten Reihe, ein Kunde mit Customerid 1, für ein Geschäft in der Person von Peter Smith mit Telefonnummer 444-4444, Adresse „1, Road1, Towna“, City Clifton, des State New Jersey, Postleitzahl NJ 10265, kam in den Laden und kaufte Produkte (nicht angegeben). Dieser Kunde wurde vom Mitarbeiter (Verkäufer) Jacob Jones bedient. Dieser Verkauf hat ID 1. Die SaleId -Spalte ist der Hauptschlüssel für diese Tabelle. Diese Tabelle befindet sich derzeit in der so genannten zweiten Normalform. Der Rest der anderen Zeilen wird ähnlich erklärt.

Transitive Abhängigkeit

Hinweis: Eine Spalte kann als Attribut bezeichnet werden. In jeder Reihe hängt das SaleId von den Attributen ab: DateSold, CustomerID, Customername, Telefon, Adresse, Stadt, Region, Postalcode, Land und Mitarbeiter. Das ist gut. Die CustomerID hängt von den Attributen ab: Customername, Telefon, Adresse, Stadt, Region, Postalcode und Land. Diese Abhängigen der CustomerID bestimmen weder das SaleId noch den Datesold oder den Mitarbeiter. Wenn der Kunde von ID 1 eine Woche später in den Laden kommen würde, hätte er einen anderen Mitarbeiter zu einem anderen Zeitpunkt getroffen, was ein anderes SaleId bedeuten würde.

Daher müssen diese Abhängigkeiten des Kunden aus diesem großen Tisch herausgezogen werden, um einen anderen kleineren Tisch zu bilden. Eine Kopie des CustomerID bleibt im Originaltisch, da der SaleId vom CustomerID abhängt. Die neue Verkaufstabelle wird jetzt als Kindertisch bezeichnet. Eine Kopie der CustomerID geht mit den Abhängigen aus, da dies von den Abhängigen abhängt. Die beiden neuen Tische sind:

Kunden Tabelle

Verkaufstabelle


Die Kundentabelle ist jetzt eine Eltern- oder Referenztabelle. Es hat die Kundennamen und ihre Anmeldeinformationen. Die CustomerID identifiziert jede seiner Zeilen. Es ist kürzer als der ursprüngliche Verkaufstabelle um 6 Zeilen. Die Wiederholung (Redundanz) wurde in der Kundentisch entfernt. Die Kundentabelle befindet sich jetzt in der sogenannten dritten normalen Form. Wenn ein geeigneter Name für den Tisch des Kunden nicht gefunden werden konnte, ist mit den Argumentation etwas schief gelaufen.

Die Verkaufstabelle bleibt so, wie es war, aber es fehlen einige Säulen. Auch es befindet sich jetzt in der sogenannten dritten normalen Form. Der SaleId identifiziert immer noch die gleichen Zeilen, aber einige Zellen entfernt.

Hinweis: In der Kundentabelle ist CustomerID der Hauptschlüssel. In der neuen Verkaufstabelle ist CustomerID ein ausländischer Schlüssel. Es verknüpft beide neuen Tabellen. In der Verkaufstabelle hängt es jedoch nicht vom SaleId ab. Der SaleId hängt davon ab.

Transitive Abhängigkeit tritt auf, wenn ein Nicht-Prime-Attribut von einem anderen Nicht-Primat-Attribut oder -attribut abhängt. Durch die Aufteilung der ursprünglichen Tabelle in zwei Tabellen wird eine transitive Abhängigkeit entfernt.

Die Tabellennotation für die ursprüngliche Tabelle lautet:

Verkauf (SaleId, Datesold, CustomerId, Customername, Telefon, Adresse, Stadt, Region, Postalcode, Land, Mitarbeiter)


Die Tischnotation für die beiden neuen Tabellen lautet:

Kunden (Customerid, Customername, Telefon, Adresse, Stadt, Region, Postalcode, Land)


Und

Umsatz (SaleId, Datesold, CustomerID, Mitarbeiter)


Jeder Primärschlüssel hat eine einzige Unterstreichung. Der ausländische Schlüssel, CustomerID, im Verkaufstabelle hat einen DASH unterstreicht.

Abschluss

Ein Fremdschlüssel ist eine oder mehrere Spalten in einer untergeordneten Tabelle, die sich auf einen Primärschlüssel einer übergeordneten Tabelle bezieht. Die Fremd- und Primärschlüssel sind die gleichen Werte, obwohl sich einige im Kind wiederholen können
Tisch. Die übergeordnete Tabelle wird auch als Referenztabelle bezeichnet. Der Fremdschlüssel in der untergeordneten Tabelle verweist auf den Primärschlüssel in der Referenzentabelle (übergeordnete Tabelle). Das heißt, jeder Fremdschlüsselwert in der untergeordneten Tabelle entspricht einem Primärschlüsselwert in der übergeordneten Tabelle. Es kann einige Wiederholungen von Fremdschlüsselwerten in der Kindertabelle geben. Trotzdem erfolgt jeder Fremdschlüsselwert in der untergeordneten Tabelle als Hauptschlüssel in der Referenzentabelle. Die Verbindung zwischen beiden Tabellen ist der fremde Schlüssel. Die untergeordnete Tabelle wird auch als Referenzentabelle bezeichnet.