Les clés étrangères permettent aux administrateurs de base de données d'identifier facilement les différentes connexions qui existent dans un système de gestion de base de données SQL.

SQL effectue des opérations mathématiques sur les données dans un système de gestion de base de données. Ces bases de données contiennent différentes tables qui stockent chacune des données sur une entité spécifique. Si vous avez une base de données de location de voitures, une entité (ou table) dans cette base de données sera des clients (qui stockera toutes les données personnelles sur chaque client).

Ces tables de base de données contiennent des lignes et des colonnes, où chaque ligne héberge un enregistrement et chaque colonne contient des données spécifiques à un attribut.

Dans un système de gestion de base de données, chaque enregistrement (ou ligne) doit être unique.

Clés primaires

Bien qu’il soit stipulé que chaque enregistrement d’une table doit être distinct, ce n’est pas toujours le cas. Poursuivant avec l'exemple de base de données de location de voitures, si la base de données contient deux clients qui chacun avoir le nom de «John Brown», on pourrait s'attendre à ce qu'un John Brown rende une Mercedes-Benz qu'il n'a pas location.

La création d'une clé primaire atténuera ce risque. Dans un système de gestion de base de données SQL, une clé primaire est un identifiant unique qui distingue un enregistrement d'un autre.

Par conséquent, chaque enregistrement dans un système de gestion de base de données SQL doit avoir une clé primaire.

Utilisation des clés primaires dans une base de données

Pour inclure des clés primaires dans un système de gestion de base de données à l'aide de SQL, vous pouvez simplement l'ajouter en tant qu'attribut normal lors de la création d'une nouvelle table. Ainsi, la table des clients contiendra quatre attributs (ou colonnes):

  • CarOwnerID (qui stockera la clé primaire)
  • Prénom
  • Nom de famille
  • Numéro de téléphone

En rapport: Comment créer une table en SQL

Désormais, chaque enregistrement client qui entre dans la base de données aura un numéro d'identification unique, ainsi qu'un prénom, un nom et un numéro de téléphone. Le numéro de téléphone n'est pas suffisamment unique pour être une clé primaire, car bien qu'il soit unique pour une personne à la fois, une personne peut facilement changer son numéro, ce qui signifie qu'il appartiendrait désormais à quelqu'un d'autre.

Un enregistrement avec un exemple de clé primaire

/ * crée un nouvel enregistrement dans la table des clients * /
INSÉRER DANS LES VALEURS DES CLIENTS
('0004',
'John',
'Marron',
'111-999-5555');

Le code SQL ci-dessus ajoutera un nouvel enregistrement au fichier préexistant Les clients tableau. Le tableau ci-dessous montre la nouvelle table client avec les deux enregistrements John Brown.

La clé étrangère

Vous disposez désormais de clés primaires qui distinguent de manière unique un locataire de voiture d'un autre. Le seul problème est que, dans la base de données, il n'y a pas de lien réel entre chaque John Brown et la voiture qu'il loue.

Par conséquent, la possibilité de faire une erreur existe toujours. C'est là que les clés étrangères entrent en jeu. L'utilisation d'une clé primaire pour résoudre le problème de l'ambiguïté de propriété n'est possible que si la clé primaire se double d'une clé étrangère.

Qu'est-ce qu'une clé étrangère?

Dans un système de gestion de base de données SQL, une clé étrangère est un identificateur unique ou une combinaison d'identificateurs uniques qui connectent deux ou plusieurs tables dans une base de données.

Des quatre systèmes de gestion de base de données SQL existants, le système de gestion de base de données relationnelle est le plus populaire. Lorsque vous décidez quelle table dans une base de données relationnelle doit avoir une clé étrangère, vous devez d'abord identifier quelle table est le sujet et quel est l'objet dans leur relation.

Pour revenir à la base de données de location de voitures, pour connecter chaque client à la bonne voiture, vous devez comprendre qu'un client (le sujet) loue une voiture (l'objet). Par conséquent, la clé étrangère doit figurer dans la table cars.

Le code SQL qui génère une table avec une clé étrangère est légèrement différent de la norme.

Création d'une table avec un exemple de clé étrangère

/ * crée une nouvelle table de voitures dans la base de données de location de voitures * /
CRÉER DES VOITURES DE TABLE
(
LicenseNumber varchar (30) NOT NULL PRIMARY KEY,
CarType varchar (30) NON NULL,
CustomerID varchar (30) RÉFÉRENCES DE CLÉS ÉTRANGÈRES Clients (CustomerID)
);

Comme vous pouvez le voir dans le code ci-dessus, une clé étrangère doit être explicitement identifiée en tant que telle, avec une référence à la clé primaire qui est connectée à la nouvelle table.

En rapport: Aide-mémoire sur les commandes SQL essentielles pour les débutants

Pour ajouter un enregistrement à la nouvelle table, vous devez vous assurer que la valeur du champ de clé étrangère correspond à la valeur du champ de clé primaire de la table d'origine.

Ajout d'un enregistrement avec un exemple de clé étrangère

/ * crée un nouvel enregistrement dans le tableau des voitures * /
INSÉRER DANS LES VALEURS DES VOITURES
('100012',
«Mercedes-Benz»,
'0004');

Le code ci-dessus crée un nouvel enregistrement dans le nouveau Voitures table, produisant le résultat suivant.

Table de voitures

À partir du tableau ci-dessus, vous pouvez identifier le bon John Brown qui loue une Mercedes-Benz par la clé étrangère dans le dossier.

Avancer les clés étrangères

Il existe deux autres façons d'utiliser une clé étrangère dans une base de données.

Si vous regardez en arrière sur la définition d'une clé étrangère ci-dessus, vous constaterez qu'elle dit qu'une clé étrangère peut être un identifiant unique ou une combinaison d'identifiants uniques.

En revenant à l'exemple de la base de données de location de voitures, vous verrez que créer un nouveau record (de la même voiture) chaque fois qu'un client loue cette voiture va à l'encontre de l'objectif de la Voitures tableau. Si les voitures sont à vendre et sont vendues une seule fois à un seul client, la base de données existante est parfaite; mais étant donné que les voitures sont des locations, il existe une meilleure façon de représenter ces données.

Clés composites

Une clé composite a deux identifiants uniques ou plus. Dans une base de données relationnelle, il y aura des cas où l'utilisation d'une seule clé étrangère ne représentera pas suffisamment les relations qui existent dans cette base de données.

Dans l'exemple de location de voiture, l'approche la plus pratique consiste à créer une nouvelle table qui stocke les détails de la location. Pour que les informations du tableau de location de voitures soient utiles, elles doivent se connecter à la fois aux tables des voitures et des clients.

Création d'une table avec des clés étrangères composites

/ * crée une table CarRental dans la base de données de location de voitures * /
CRÉER UNE TABLE Location de voitures
(
Date de location DATE NON NULL,
LicenseNumber varchar (30) NOT NULL FOREIGN KEY REFERENCES Cars (LicenseNumber),
CustomerID varchar (30) NOT NULL FOREIGN KEY REFERENCES Clients (CustomerID),
CLÉ PRIMAIRE (DateRented, LicenseNumber, CustomerID)
);

Le code ci-dessus décrit un point important; bien qu'une table dans une base de données SQL puisse avoir plus d'une clé étrangère, elle ne peut avoir qu'une seule clé primaire. En effet, il ne devrait y avoir qu'une seule manière d'identifier un enregistrement.

Il est nécessaire de combiner les trois attributs de la table pour avoir une clé unique. Un client peut louer plus d'une voiture le même jour (donc N ° de client et Date de location n'est pas une bonne combinaison) plusieurs clients peuvent également louer la même voiture le même jour (donc Numéro de licence et Date de location n'est pas une bonne combinaison).

Cependant, la création d'une clé composite qui indique quel client, quelle voiture et quel jour fait une excellente clé unique. Cette clé unique représente à la fois une clé étrangère composite et une clé primaire composite.

Clés primaires étrangères

Oh oui, les clés primaires étrangères sortent. Bien qu’il n’y ait pas de nom officiel, une clé étrangère peut également être une clé primaire dans la même table. Cela se produit lorsque vous créez une nouvelle table qui contient des données spécialisées sur une entité existante (ou un enregistrement dans une autre table).

Dites que Fred (qui travaille dans la société de location de voitures) figure dans la base de données de l’entreprise sous le tableau des employés. Après quelques années, il devient superviseur et est ajouté à la table des superviseurs.

Fred est toujours un employé et aura toujours le même numéro d'identification. L'identifiant d'employé de Fred est désormais dans la table du superviseur en tant que clé étrangère qui deviendra également une clé primaire entrez cette table (car cela n'a aucun sens de créer un nouveau numéro d'identification pour Fred maintenant qu'il est superviseur).

Vous pouvez désormais identifier les clés étrangères dans les bases de données SQL

Les clés étrangères connectent différentes tables dans une base de données SQL. Dans cet article, vous pouvez voir ce qu'est une clé étrangère, comment elle fonctionne et pourquoi il est important de les avoir dans une base de données. Vous comprenez également les formes de base, et encore plus complexes, des clés étrangères.

Si vous pensez que les clés étrangères sont intéressantes, vous aurez une journée sur le terrain lorsque vous commencerez à utiliser les opérations de projet et de sélection pour interroger vos bases de données SQL.

E-mail
Apprenez à utiliser les opérations de projet et de sélection dans SQL

Familiarisez-vous avec les bases de données relationnelles SQL en comprenant les opérations de projet et de sélection avec ces exemples.

Lire la suite

Rubriques connexes
  • Programmation
  • Programmation
  • SQL
  • base de données
A propos de l'auteur
Kadeisha Kean (14 articles publiés)

Kadeisha Kean est un développeur de logiciels Full-Stack et un rédacteur technique / technologique. Elle a la capacité distincte de simplifier certains des concepts technologiques les plus complexes; produire du matériel facilement compréhensible par tout novice en technologie. Elle est passionnée par l'écriture, le développement de logiciels intéressants et les voyages à travers le monde (à travers des documentaires).

Plus de Kadeisha Kean

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives!

Un pas de plus…!

Veuillez confirmer votre adresse e-mail dans l'e-mail que nous venons de vous envoyer.

.