Skip to main content

Relations un à plusieurs dans une base de données

229 SHE DRAGONS (PART 2) - WENDI DENG MURDOCH (Mai 2024)

229 SHE DRAGONS (PART 2) - WENDI DENG MURDOCH (Mai 2024)
Anonim

Une relation un à plusieurs dans une base de données se produit lorsque chaque enregistrement de la table A peut avoir de nombreux enregistrements liés dans la table B, mais que chaque enregistrement de la table B ne peut avoir qu'un seul enregistrement correspondant dans la table 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’ils enseignent. 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 de nombreux enregistrements dans la table Cours. Il s’agit d’une relation un à plusieurs: un enseignant à 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éé une table dans laquelle nous voulions enregistrer le nom et les cours enseignés. Nous pourrions le concevoir comme ceci:

Enseignants et cours
Teacher_IDNom de l'enseignantCours
Enseignant_001CarmenLa biologie
Enseignant_002VéroniqueMath
Enseignant_003JorgeAnglais

Et si Carmen enseignait deux cours ou plus? Nous avons deux options avec cette conception. Nous pourrions simplement l'ajouter au disque existant de Carmen, comme ceci:

Enseignants et cours
Teacher_IDProf_PrénomCours
Enseignant_001CarmenBiologie, maths
Enseignant_002VéroniqueMath
Enseignant_003JorgeAnglais

La conception ci-dessus, cependant, est inflexible et peut entraîner des problèmes ultérieurement lors d'une 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, le premier formulaire normal (1NF), qui stipule que chaque cellule de tableau doit contenir une seule donnée discrète.

Une autre alternative pourrait consister simplement à ajouter un deuxième enregistrement pour Carmen:

Enseignants et cours
Prof_IDProf_PrénomCours
Enseignant_001CarmenLa biologie
Enseignant_001CarmenMath
Enseignant_002VéroniqueMath
Enseignant_003JorgeAnglais

Cela respecte la norme 1NF mais la conception de la base de données reste médiocre car elle introduit de la redondance et risque de surcharger inutilement une base de données très volumineuse. 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 la seconde forme normale (2NF), qui adhère à 1NF et doit également éviter les redondances de plusieurs enregistrements en séparant des sous-ensembles de données dans 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:

Enseignants
Prof_IDProf_Prénom
Enseignant_001Carmen
Enseignant_002Véronique
Enseignant_003Jorge

Et voici la table des cours. Notez que sa clé étrangère, Teacher_ID, relie un cours à un enseignant dans la table Enseignants:

Cours
Course_IDNom du coursTeacher_ID
Course_001La biologieEnseignant_001
Course_002MathEnseignant_001
Course_003AnglaisEnseignant_003

Nous avons développé une relation entre la table des professeurs et celle des cours en utilisant une clé étrangère.

Cela nous dit que Carmen enseigne la biologie et les mathématiques et que Jorge enseigne l'anglais.

Nous pouvons voir comment cette conception évite les redondances possibles, 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.