Relations un à plusieurs dans une base de données

Table des matières:

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

Une relation un-à-plusieurs dans une base de données se produit lorsque chaque enregistrement de la table A peut avoir plusieurs enregistrements liés dans la table B, mais 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.

Les bases de données peuvent également implémenter une relation un-à-un et une relation plusieurs-à-plusieurs.

Image
Image

Exemple de relation un-à-plusieurs

Considérez la relation entre un enseignant et les cours qu'il enseigne. Un enseignant peut enseigner plusieurs classes, mais le cours n'aura pas la même relation avec l'enseignant.

Par conséquent, pour chaque enregistrement dans une table Enseignants, il peut y avoir plusieurs enregistrements dans la table Cours. Cet exemple illustre 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.

Adhésion à la première conception de forme normale

Peut-être avons-nous créé un tableau dans lequel nous voulons enregistrer le nom et les cours enseignés. Nous pourrions concevoir un tableau des enseignants et des cours comme celui-ci:

Teacher_ID Nom_du_professeur Cours
Teacher_001 Carmen Biologie
Teacher_002 Véronique Mathématiques
Teacher_003 Jorge Anglais

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

Teacher_ID Professeur_Nom Cours
Teacher_001 Carmen Biologie, Mathématiques
Teacher_002 Véronique Mathématiques
Teacher_003 Jorge Anglais

Cependant, la conception ci-dessus n'est pas flexible et peut entraîner des problèmes ultérieurement lorsque vous insérez, modifiez ou supprimez des données. Cela rend difficile la recherche de données.

Cette conception viole également le premier principe de normalisation de la base de données, First Normal Form (1NF), qui stipule que chaque cellule du tableau doit contenir une seule donnée discrète.

La deuxième règle de la forme normale

Une autre alternative de conception pourrait être d'ajouter un deuxième enregistrement pour Carmen:

Professeur_ID Professeur_Nom Cours
Teacher_001 Carmen Biologie
Teacher_001 Carmen Mathématiques
Teacher_002 Véronique Mathématiques
Teacher_003 Jorge Anglais

Cette approche adhère à 1NF mais reste une conception de base de données médiocre car elle introduit de la redondance et pourrait gonfler inutilement une grande base de données. Plus important encore, les données pourraient devenir incohérentes.

Par exemple, et si le nom de Carmen changeait ? Quelqu'un travaillant avec les données peut mettre à jour son nom dans un enregistrement et ne pas le mettre à jour dans le second enregistrement.

Cette conception enfreint la norme Second Normal Form (2NF), qui adhère à 1NF et doit également éviter les redondances de plusieurs enregistrements. La règle 2NF y parvient en séparant des sous-ensembles de données en plusieurs tables et en créant une relation entre elles.

Comment concevoir une base de données avec des relations un-à-plusieurs

Pour implémenter une relation un-à-plusieurs dans la table Enseignants et Cours, divisez les tables en deux et liez-les à l'aide d'une clé étrangère.

Ici, nous avons supprimé la colonne Cours dans le tableau Enseignants:

Professeur_ID Professeur_Nom
Teacher_001 Carmen
Teacher_002 Véronique
Teacher_003 Jorge

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

Course_ID Course_Name Teacher_ID
Cours_001 Biologie Teacher_001
Cours_002 Mathématiques Teacher_001
Cours_003 Anglais Teacher_003

Nous avons développé une relation entre les tables Enseignants et Cours à l'aide d'une clé étrangère. Cet arrangement nous dit que Carmen enseigne à la fois la biologie et les mathématiques 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.

Conseillé: