Découvrez comment c'est facile de créer rapidement une relation un à plusieurs dans une base de données.
Une relation un-à-plusieurs dans une base de données se produit lorsque chaque enregistrement dans le tableau A peut avoir plusieurs enregistrements liés dans le tableau B, mais chaque enregistrement dans le tableau B peut avoir un seul enregistrement correspondant dans le tableau A. Une relation un-à-plusieurs dans une base de données est la conception de base de données relationnelle la plus courante et est au cœur d'une bonne conception.
Considérez la relation entre un enseignant et les cours qu'il enseigne. Un enseignant peut enseigner plusieurs cours, mais le cours n'aurait pas la même relation avec l'enseignant. Par conséquent, pour chaque enregistrement d'une table Enseignants, il peut y avoir plusieurs enregistrements dans la table Cours. Il s'agit d'une relation un-à-plusieurs: un enseignant pour plusieurs cours.
Pourquoi établir une relation un-à-plusieurs est important
Pour représenter une relation un-à-plusieurs, vous avez besoin d'au moins deux tables. Voyons pourquoi.
Peut-être avons-nous créé un tableau dans lequel nous voulions enregistrer le nom et les cours enseignés. Nous pourrions le concevoir comme ceci:
Enseignant_ID Nom_Enseignant Cours
Enseignant_001 Carmen Biologie
Enseignant_002 Veronica Math
Enseignant_003 Jorge Anglais
Et si Carmen donne deux cours ou plus? Nous avons deux options avec cette conception. Nous pourrions simplement l'ajouter au disque existant de Carmen, comme ceci:
Enseignant_ID Nom_Enseignant Cours
Enseignant_001 Carmen Biologie, Math
Enseignant_002 Veronica Math
Enseignant_003 Jorge Anglais
La conception ci-dessus, cependant, est inflexible et pourrait entraîner des problèmes plus tard lors de la tentative d'insertion, de modification ou de suppression de données. Cela rend difficile la recherche de données. Cette conception viole le premier principe de normalisation de la base de données, First Normal Form (1NF), qui stipule que chaque cellule de tableau doit contenir une seule donnée discrète.
Une autre alternative de conception pourrait être d'ajouter simplement un deuxième enregistrement pour Carmen:
Enseignant_ID Nom_Enseignant Cours
Enseignant_001 Carmen Biologie
Enseignant_001 Carmen Math
Enseignant_002 Veronica Math
Enseignant_003 Jorge Anglais
Cela adhère à 1NF mais reste une conception de base de données médiocre car il introduit une redondance et pourrait alourdir inutilement une très grande base de données. Plus important encore, les données pourraient devenir incohérentes. Par exemple, que se passe-t-il si le nom de Carmen change? Une personne travaillant avec les données peut mettre à jour son nom dans un enregistrement et ne pas le mettre à jour dans le deuxième enregistrement. Cette conception viole le deuxième formulaire normal (2NF), qui adhère à 1NF et doit également éviter les redondances de plusieurs enregistrements en séparant les sous-ensembles de données en plusieurs tables et en créant une relation entre eux.
Comment concevoir une base de données avec des relations un-à-plusieurs
Pour implémenter une relation un-à-plusieurs dans le tableau Enseignants et cours, nous divisons les tableaux en deux et les lions à l'aide d'une clé étrangère.
Ici, nous avons supprimé la colonne Cours du tableau Enseignants:
Enseignant_ID Nom_Enseignant
Enseignant_001 Carmen
Enseignant_002 Veronica
Enseignant_003 Jorge
Et voici le tableau des cours. Notez que sa clé étrangère, Enseignant_ID, relie un cours à un enseignant dans la table d'enseignant :
Cours_ID Nom_Cours Enseignant_ID
Cours_001 Biologie Enseignant_001
Cours_002 Math Enseignant_001
Cours_003 Anglais Enseignant_003
Nous avons développé une relation entre les enseignants et la table Cours à l'aide d'une clé étrangère. Cela nous indique que la biologie et les mathématiques sont enseignées par Carmen et que Jorge enseigne l'anglais.
Nous pouvons voir comment cette conception évite toute redondance possible, permet aux enseignants individuels d'enseigner plusieurs cours et met en œuvre une relation un-à-plusieurs.
Les bases de données peuvent également implémenter une relation un-à-un et une relation plusieurs-à-plusieurs. Regardez aussi comment personnaliser les données des cellules avec la fonction IF d'Excel.