Relations un-à-plusieurs dans une base de données

Image illustrant : Relations un-à-plusieurs dans une base de données
  1. Accueil
  2. Tutoriels
  3. Internet & Réseaux
  4. Relations un-à-plusieurs dans une base de données

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.

Partager Tutoriel

Mots clés dans : Relations un-à-plusieurs dans une base de données

base données

Autres Tutoriels sur (base, données) ...