Clé étrangère SQL

Clé étrangère SQL

«Une clé étrangère est une ou plusieurs colonnes dans une table d'enfants qui fait référence à une clé primaire d'une table parentale. Les clés étrangères et primaires sont les mêmes valeurs, bien que certaines puissent se répéter dans le tableau des enfants. La table parent est également appelée le tableau de référence. La clé étrangère de la table des enfants fait référence à la clé primaire dans le tableau référencé (tableau parent). C'est-à-dire que chaque valeur de clé étrangère dans le tableau enfant est la même qu'une valeur de clé primaire dans le tableau parent. Il peut y avoir quelques répétitions de valeurs de clé étrangère dans le tableau des enfants. Pourtant, chaque valeur de clé étrangère dans le tableau des enfants est une clé principale dans le tableau référencé. Le lien entre les deux tables est la clé étrangère.

Si les deux tables sont bien conçues, la relation de clé étrangère élimine la dépendance transitive. Voir l'explication de la dépendance transitive ci-dessous. Cet article explique les clés étrangères en relation avec la dépendance transitive et la base de données relationnelle."

Illustration

Considérez un tableau de vente dans ce que l'on appelle la deuxième forme normale. Dans le tableau, les employés vendent à des clients individuels connus (personnes). Le tableau est le suivant:

Table de vente


Dans la première rangée, un client de CustomerId 1, pour une boutique, en personne de Peter Smith, avec le numéro de téléphone 444-4444, adresse «1, Road1, Towna», City Clifton, de l'État du New Jersey, Code postal NJ 10265, est entré dans la boutique et a acheté des produits (non indiqués). Ce client a été servi par l'employé (vendeur), Jacob Jones. Cette vente a l'identifiant 1. La colonne SaleID est la clé principale de ce tableau. Ce tableau est actuellement dans ce qui est connu comme la deuxième forme normale. Les autres lignes sont expliquées de la même manière.

Dépendance transitive

Remarque: une colonne peut être appelée un attribut. Dans chaque ligne, le SaleID dépend des attributs: datesold, clientId, Customername, téléphone, adresse, ville, région, code postal, pays et employé. C'est bon. Le CustomerId dépend des attributs: nom de personnalité, téléphone, adresse, ville, région, code postal et pays. Ces dépendances du CustomerID ne déterminent pas le Saleid ou Datesold ou Employée. Si le client de ID 1 venait à la boutique une semaine plus tard, il aurait rencontré un employé différent à une date différente, ce qui signifierait un SaleID différent.

Donc, ces dépendants du client doivent être retirés de cette grande table, pour former une table plus petite différente. Une copie du CustomerId reste dans le tableau d'origine car le SaleID dépend du clientId. La nouvelle table de vente est maintenant appelée la table des enfants. Une copie du CustomerId va avec les dépendants car il dépend des dépendances. Les deux nouvelles tables sont:

Table des clients

Table de vente


Le tableau des clients est maintenant un parent ou un tableau de référence. Il a les noms des clients et leurs informations d'identification. Le CustomerId identifie chacune de ses lignes. Il est plus court que la table de vente d'origine par 6 lignes. La répétition (redondance) a été supprimée dans le tableau des clients. Le tableau des clients est maintenant dans ce que l'on appelle la troisième forme normale. Si un nom approprié ne pouvait pas être trouvé pour la table du client, alors quelque chose a mal tourné avec le raisonnement.

Le tableau des ventes reste tel qu'il était, mais manquant de colonnes. C'est aussi dans ce qu'on appelle la troisième forme normale. Le SaleID identifie toujours les mêmes lignes mais avec certaines cellules supprimées.

Remarque: Dans le tableau des clients, CustomerId est la clé principale. Dans le nouveau tableau des ventes, CustomerId est une clé étrangère. Il relie les deux nouvelles tables. Cependant, dans le tableau des ventes, cela ne dépend pas du SaleID; Le Saleid en dépend.

La dépendance transitive se produit lorsqu'un attribut non primaire dépend d'un autre attribut ou attribut non prison. En divisant la table d'origine en deux tables, une dépendance transitive est supprimée.

La notation du tableau pour le tableau d'origine est:

Ventes (SaleID, Datesold, CustomerId, CustomName, Téléphone, adresse, ville, région, code postal, pays, employé)


La notation du tableau pour les deux nouvelles tables est:

Clients (CustomerId, CustomName, téléphone, adresse, ville, région, code postal, pays)


et

Ventes (SaleID, Datesold, CustomerID, Employé)


Chaque clé primaire a un seul soulignement. La clé étrangère, Customy.

Conclusion

Une clé étrangère est une ou plusieurs colonnes dans une table d'enfants qui fait référence à une clé primaire d'une table parentale. Les clés étrangères et primaires sont les mêmes valeurs, bien que certains puissent se répéter chez l'enfant
tableau. La table parent est également appelée le tableau de référence. La clé étrangère de la table des enfants fait référence à la clé primaire dans le tableau référencé (tableau parent). C'est-à-dire que chaque valeur de clé étrangère dans le tableau enfant est la même qu'une valeur de clé primaire dans le tableau parent. Il peut y avoir quelques répétitions de valeurs de clé étrangère dans le tableau des enfants. Pourtant, chaque valeur de clé étrangère dans le tableau des enfants se produit comme clé principale dans le tableau référencé. Le lien entre les deux tables est la clé étrangère. La table des enfants est également appelée le tableau référencé.