Relation un-à-plusieurs dans la base de données
Une relation un-à-plusieurs se produit dans une base de données 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.
La 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.
Eric Isaacson/Getty Images
Un exemple de relation un-à-plusieurs
Considérez la relation entre les enseignants et les classes qu’ils enseignent. Un enseignant peut enseigner plusieurs cours, mais les cours n’auront pas la même relation avec l’enseignant.
Par conséquent, pour chaque enregistrement de la table Enseignants, il peut y avoir plusieurs enregistrements dans la table Cours. Cet exemple illustre une relation un-à-plusieurs : un enseignant et plusieurs cours.
Pourquoi il est important d’avoir une relation un à plusieurs
Pour représenter une relation un-à-plusieurs, vous avez besoin d’au moins deux tables. Voyons pourquoi.
Adhérer à la conception du premier paradigme
Peut-être que nous créons un tableau où nous voulons enregistrer le nom et les cours enseignés. Nous pouvons concevoir un enseignant et un programme comme suit :
ID_enseignant | le nom de l’enseignant | cours |
---|---|---|
professeur_001 | Carmen | la biologie |
professeur_002 | Véronique | math |
professeur_003 | George | Anglais |
Et si Carmen enseigne deux cours ou plus ? Il existe deux options pour cette conception. Nous pouvons l’ajouter au dossier existant de Carmen comme suit :
ID_enseignant | prof_Nom | cours |
---|---|---|
professeur_001 | Carmen | biologie, mathématiques |
professeur_002 | Véronique | math |
professeur_003 | George | Anglais |
Cependant, la conception ci-dessus est inflexible et peut entraîner des problèmes lorsque vous insérez, modifiez ou supprimez des données ultérieurement. Cela rend la recherche de données difficile.
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.
deuxièmes règles de forme normale
Une autre option de conception pourrait être d’ajouter un deuxième enregistrement pour Carmen :
prof_IDENTIFIANT | prof_Nom | cours |
---|---|---|
professeur_001 | Carmen | la biologie |
professeur_001 | Carmen | math |
professeur_002 | Véronique | math |
professeur_003 | George | Anglais |
Cette approche suit 1NF, mais reste une mauvaise conception de base de données car elle introduit de la redondance et peut gonfler inutilement de grandes bases de données. De plus, les données peuvent devenir incohérentes.
Par exemple, que se passe-t-il si le nom de Carmen change ? La personne qui traite les données peut mettre à jour son nom dans un enregistrement et ne pas être en mesure de le mettre à jour dans le second.
Cette conception enfreint la norme Second Normal Form (2NF), qui suit 1NF et doit également éviter la redondance de plusieurs enregistrements. Les règles 2NF le font en divisant des sous-ensembles de données en plusieurs tables et en créant des relations entre elles.
Comment concevoir une base de données avec une relation un-à-plusieurs
Pour implémenter une relation un-à-plusieurs dans les tables Enseignants et Cours, divisez les tables en deux et liez-les à l’aide de clés étrangères.
Ici, nous supprimons la colonne Cours du tableau Enseignants :
prof_IDENTIFIANT | prof_Nom |
---|---|
professeur_001 | Carmen |
professeur_002 | Véronique |
professeur_003 | George |
Voici l’horaire des cours. Notez que sa clé étrangère Teacher_ID relie les cours aux enseignants dans la table Teachers :
Course_ID | nom du cours | ID_enseignant |
---|---|---|
Cours_001 | la biologie | professeur_001 |
Cours_002 | math | professeur_001 |
Cours_003 | Anglais | professeur_003 |
Nous avons établi une relation entre les tables Teachers et Courses à l’aide de clés étrangères. Cet arrangement nous dit que Carmen enseigne la biologie et les mathématiques, tandis que Jorge enseigne l’anglais.
Nous pouvons voir comment cette conception évite toute redondance possible, permet aux enseignants individuels d’enseigner plusieurs cours et permet une relation un-à-plusieurs.
Merci de nous en informer!
Dites-nous pourquoi !
D’autres détails ne sont pas assez difficiles à comprendre
votre vie privée
ledigitalpost et nos partenaires tiers utilisent des cookies et traitent des données personnelles (telles que des identifiants uniques) sur la base de votre consentement pour stocker et/ou accéder à des informations sur votre appareil, afficher des publicités personnalisées et pour la mesure du contenu, les informations sur l’audience et le développement de produits. Pour modifier ou retirer vos choix de consentement à ledigitalpost.com, y compris votre droit de vous opposer à une utilisation pour des intérêts légitimes, veuillez cliquer ci-dessous. Vous pouvez mettre à jour vos paramètres à tout moment via le lien « EU Privacy » en bas de n’importe quelle page. Ces choix seront signalés à nos partenaires dans le monde entier et n’affecteront pas les données de navigation.Liste des partenaires (fournisseurs)
Nous et nos partenaires traitons les données pour :
Analysez activement les caractéristiques de l’appareil pour l’identification. Utilisez des données de géolocalisation précises. Stocker et/ou accéder aux informations sur l’appareil. Choisissez Contenu personnalisé. Créez des profils de contenu personnalisés. Mesurez les performances des annonces. Choisissez Annonces de base. Créez des profils publicitaires personnalisés. Choisissez Annonces personnalisées. Appliquer des études de marché pour générer des informations sur l’audience. Mesurez les performances du contenu. Développer et améliorer les produits.Liste des partenaires (fournisseurs)