Qu’est-ce qu’une relation de base de données ?
Une relation est établie entre deux tables de base de données lorsqu’une table utilise une clé étrangère qui fait référence à la clé primaire d’une autre table. C’est le concept de base derrière le terme base de données relationnelle.
Comment les clés étrangères créent des relations
Une clé primaire identifie de manière unique chaque enregistrement dans une table. Il s’agit d’une clé candidate, généralement la première colonne d’une table, qui peut être automatiquement générée par la base de données pour s’assurer qu’elle est unique. Une clé étrangère est une autre clé candidate (pas une clé primaire) utilisée pour lier un enregistrement aux données d’une autre table.
Par exemple, considérons ces deux tableaux, qui déterminent quel enseignant enseigne quel cours. Ici, la clé primaire de la table Courses est Course_ID. Sa clé étrangère est Teacher_ID :
Course_ID | nom du cours | ID_enseignant |
---|---|---|
Cours_001 | la biologie | professeur_001 |
Cours_002 | math | professeur_002 |
Cours_003 | Anglais | professeur_003 |
Vous pouvez voir que la clé étrangère dans Courses correspond à la clé primaire dans Teachers :
ID_enseignant | le nom de l’enseignant |
---|---|
professeur_001 | Carmen |
professeur_002 | Véronique |
professeur_003 | George |
Nous pouvons dire que la clé étrangère Teacher_ID permet d’établir la relation entre les tables Courses et Teachers.
Lueur/Getty Images
Types de relations de base de données
À l’aide de clés étrangères ou d’autres clés candidates, vous pouvez implémenter trois types de relations entre les tables :
tête-à-tête
Ce type de relation n’autorise qu’un seul enregistrement de chaque côté de la relation. Une clé primaire n’est liée qu’à un seul enregistrement (ou aucun) dans une autre table. Par exemple, dans un mariage, chaque conjoint n’a qu’un seul conjoint. Cette relation peut être implémentée dans une seule table, donc aucune clé étrangère n’est utilisée.
un à plusieurs
Une relation un-à-plusieurs permet à un seul enregistrement d’une table d’être associé à plusieurs enregistrements d’une autre table. Considérez une entreprise avec une base de données contenant des tables de clients et de commandes.
Un client peut acheter plusieurs commandes, mais une commande ne peut pas être associée à plusieurs clients. Par conséquent, la table Orders contiendra une clé étrangère qui correspond à la clé primaire de la table Customers et la table Customers n’aura aucune clé étrangère pointant vers la table Orders.
plusieurs à plusieurs
Il s’agit d’une relation complexe dans laquelle de nombreux enregistrements d’une table peuvent être liés à de nombreux enregistrements d’une autre table. Par exemple, notre entreprise peut avoir besoin des tables Clients et Commandes, et éventuellement de la table Produits également.
Encore une fois, la relation entre les tables Customers et Orders est un-à-plusieurs, mais tenez compte de la relation entre les tables Orders et Products. Une commande peut contenir plusieurs produits et un produit peut être lié à plusieurs commandes car plusieurs clients peuvent soumettre des commandes contenant certains des mêmes produits. Cette relation nécessite au moins trois tables.
Pourquoi les relations de base de données sont-elles importantes ?
L’établissement de relations cohérentes entre les tables de base de données permet de garantir l’intégrité des données et facilite la normalisation de la base de données. Par exemple, si nous ne lions aucune des tables via des clés étrangères, mais combinons à la place les données des tables Courses et Teachers, comme ceci :
ID_enseignant | le nom de l’enseignant | cours |
---|---|---|
professeur_001 | Carmen | biologie, mathématiques |
professeur_002 | Véronique | math |
professeur_003 | George | Anglais |
Cette conception est inflexible et viole le premier principe de normalisation de la base de données, la première forme normale, qui stipule que chaque cellule du tableau doit contenir une seule donnée discrète.
Ou nous décidons d’ajouter un deuxième enregistrement pour Carmen pour appliquer 1NF :
ID_enseignant | le nom de l’enseignant | cours |
---|---|---|
professeur_001 | Carmen | la biologie |
professeur_001 | Carmen | math |
professeur_002 | Véronique | math |
professeur_003 | George | Anglais |
Il s’agit toujours d’une conception faible, introduisant une duplication inutile et des exceptions dites d’insertion de données, ce qui signifie qu’elle peut entraîner des incohérences de données. Par exemple, si un enseignant a plusieurs enregistrements, que se passe-t-il si certaines données doivent être modifiées, mais que la personne effectuant la modification des données ne sait pas qu’il existe plusieurs enregistrements ? Le tableau contiendrait alors différentes données pour la même personne sans aucun moyen clair de l’identifier ou de l’éviter.
La division de cette table en deux tables, Enseignant et Cours, crée des relations appropriées entre les données, contribuant ainsi à assurer la cohérence et l’exactitude des données.
Merci de nous en informer!
Dites-nous pourquoi !
D’autres détails ne sont pas assez difficiles à comprendre
Lorsque vous visitez ce site Web, il peut stocker ou récupérer des informations sur votre navigateur, principalement sous la forme de cookies. Les cookies collectent des informations sur vos préférences et votre appareil, qui sont utilisées pour faire fonctionner le site Web comme vous le souhaitez, comprendre comment vous interagissez avec le site Web et afficher des publicités adaptées à vos intérêts. Vous pouvez en savoir plus et modifier nos paramètres par défaut via les paramètres des cookies.
Paramètres des cookiesRejeter tout accepter les cookies