SQL ET POSTGRE 3.4 : Les clés primaires et étrangères
Dans cette vidéo, nous abordons deux concepts incontournables de la modélisation relationnelle : la clé primaire et la clé étrangère. La clé primaire est une colonne qui identifie de manière unique chaque ligne d'une table. Ses valeurs sont obligatoirement uniques, ne peuvent pas être NULL, et il ne peut y en avoir qu'une seule par table. Une clé primaire n'est pas obligatoire, mais en avoir une est une excellente pratique fortement recommandée.
Choisir la bonne colonne comme clé primaire
Prenons une table propriétaires avec 5 colonnes : id, nom, prenom, age, ville. Quelle colonne choisir ? Pas le prenom (plusieurs Marion possibles), ni le nom (plusieurs Dujean), ni l'âge ni la ville (forcément partagés). Seule la colonne id, qui contient des valeurs uniques pour chaque ligne, est appropriée. C'est pour ça qu'on génère typiquement un id auto-incrémenté pour chaque table.
La clé étrangère sert à relier deux tables. C'est une colonne dont les valeurs correspondent à la clé primaire d'une autre table. La table contenant la clé primaire est appelée table de référence ou table parent ; celle contenant la clé étrangère est la table enfant. Une table peut contenir plusieurs clés étrangères, ou n'en avoir aucune.
Exemple : à côté de la table propriétaires, créons une table animaux avec un id en clé primaire, plus les colonnes type_animal, nom, age et proprietaire_id. Cette dernière est la clé étrangère qui pointe vers propriétaires(id). Si la ligne « Moustache » a proprietaire_id = 3, et qu'on retrouve Audrey Richard (à Lille) avec id = 3 dans la table propriétaires, on sait qu'Audrey possède Moustache. C'est ainsi qu'on relie les données dans une base relationnelle — un concept que nous exploiterons en profondeur dans la suite du cours.
En résumé
Cette leçon explique deux concepts fondamentaux des bases de données relationnelles : les clés primaires et étrangères. Les clés primaires identifient de manière unique chaque ligne et doivent contenir des valeurs uniques et non nulles. Les clés étrangères permettent de relier deux tables ensemble en référençant la clé primaire d'une autre table, créant ainsi des relations entre les données. Illustré via des exemples avec les tables propriétaires et animaux.
Points clés
- Une clé primaire identifie chaque ligne de façon unique dans une table et doit contenir des valeurs uniques et non nulles
- Une table ne peut avoir qu'une seule clé primaire, mais c'est une pratique recommandée d'en avoir une
- Une clé étrangère relie deux tables en référençant la clé primaire d'une autre table, créant une relation de données
- La table contenant la clé primaire est appelée table parent, celle contenant la clé étrangère est la table enfant
- Une table peut avoir plusieurs clés étrangères pour relier plusieurs autres tables
Questions fréquentes
Pourquoi utiliser une clé primaire ?
La clé primaire garantit l'unicité des données et permet d'identifier rapidement une ligne spécifique dans une table. Bien que non obligatoire, c'est une bonne pratique très recommandée.
Quelle est la différence entre une clé primaire et une clé étrangère ?
La clé primaire identifie de manière unique une ligne dans sa propre table, tandis que la clé étrangère relie cette table à une autre table en référençant la clé primaire d'une table parent.
Combien de clés primaires et étrangères une table peut-elle avoir ?
Une table ne peut avoir qu'une seule clé primaire, mais elle peut contenir plusieurs clés étrangères pour relier plusieurs autres tables.