Relations entre les tables
Last updated
Last updated
Dans une base de données relationnelle, les relations entre les tables sont au cœur de l'organisation des données. Les relations permettent de structurer et d'associer plusieurs tables entre elles afin de maintenir une intégrité des données et de faciliter les requêtes complexes. Ces relations se basent souvent sur l'utilisation de clés primaires et de clés étrangères pour établir des liens entre les données.
Les types de relations :
Il existe trois types principaux de relations dans les bases de données relationnelles :
Relation un-à-un (1:1) :
Une relation un-à-un signifie qu'à chaque enregistrement d'une table correspond exactement un enregistrement dans une autre table.
Exemple : Si une entreprise possède un employé avec un casier judiciaire, il peut être utile de stocker ces informations dans deux tables séparées : Employes
et Casiers
. Chaque employé ne possède qu'un seul casier, et chaque casier ne correspond qu'à un employé.
Modélisation :
Ici, id_employe
dans la table Casiers
est une clé étrangère qui pointe vers la clé primaire de Employes
.
Relation un-à-plusieurs (1
) :
Une relation un-à-plusieurs signifie qu'un enregistrement dans une table peut être lié à plusieurs enregistrements dans une autre table.
Exemple : Un client peut passer plusieurs commandes. Dans ce cas, un client dans la table Clients
peut être lié à plusieurs enregistrements dans la table Commandes
.
Modélisation :
Dans cet exemple, chaque commande est liée à un client grâce à la clé étrangère id_client
, mais un client peut avoir plusieurs commandes.
Relation plusieurs-à-plusieurs (N
) :
Dans une relation plusieurs-à-plusieurs, plusieurs enregistrements dans une table peuvent être liés à plusieurs enregistrements dans une autre table. Ce type de relation nécessite généralement une table intermédiaire (ou table de jointure) pour gérer les associations.
Exemple : Un étudiant peut suivre plusieurs cours, et un cours peut être suivi par plusieurs étudiants. Cela nécessite une table intermédiaire qui relie les étudiants aux cours.
Modélisation :
La table Etudiant_Cours
gère la relation entre les étudiants et les cours, reliant chaque étudiant à plusieurs cours et chaque cours à plusieurs étudiants.
Clés primaires et clés étrangères
Pour maintenir l'intégrité des données et gérer les relations, il est essentiel d'utiliser les clés primaires et clés étrangères :
Clé primaire (PRIMARY KEY) : Une colonne ou un ensemble de colonnes qui identifie de manière unique chaque enregistrement dans une table. Chaque table doit avoir une clé primaire.
Exemple : Dans la table Clients
, la colonne id_client
est une clé primaire, assurant que chaque client a un identifiant unique.
Clé étrangère (FOREIGN KEY) : Une colonne dans une table qui fait référence à la clé primaire d'une autre table. Elle est utilisée pour établir une relation entre les deux tables.
Exemple : Dans la table Commandes
, la colonne id_client
est une clé étrangère qui fait référence à la colonne id_client
de la table Clients
.
Intégrité référentielle
L'utilisation de clés étrangères garantit l'intégrité référentielle, c'est-à-dire que les relations entre les tables sont cohérentes. Cela permet d'éviter, par exemple, d'insérer une commande pour un client qui n'existe pas dans la table Clients
.
Lorsqu'une clé étrangère est définie, MySQL applique des contraintes pour assurer que les relations sont respectées :
ON DELETE CASCADE : Si un enregistrement dans la table parent est supprimé, les enregistrements correspondants dans la table enfant sont également supprimés.
ON UPDATE CASCADE : Si la clé primaire de la table parent est modifiée, la clé étrangère dans la table enfant est également mise à jour.
Exemple :
Ici, si un client est supprimé de la table Clients
, toutes les commandes associées à ce client seront également supprimées de la table Commandes
.
Cette section sur les relations entre les tables vous offre une vue approfondie sur les types de relations que vous pouvez implémenter dans une base de données MySQL, ainsi que sur la manière de les modéliser avec des clés primaires et étrangères.