Dans une base de données relationnelle, une dépendance survient lorsque les informations stockées dans la même table de base de données déterminent de manière unique les autres informations stockées dans la même table. Une dépendance à valeurs multiples se produit lorsque la présence d'une ou plusieurs lignes dans une table implique la présence d'une ou plusieurs autres lignes dans cette même table. En d'autres termes, deux attributs (ou colonnes) d'une table sont indépendants l'un de l'autre, mais les deux dépendent d'un troisième attribut.
Une dépendance à plusieurs valeurs empêche la quatrième forme normale standard de normalisation (4NF). Les bases de données relationnelles suivent cinq formes normales qui représentent des directives pour la conception des enregistrements. Ils évitent les anomalies de mise à jour et les incohérences dans les données. La quatrième forme normale traite des relations plusieurs à un dans une base de données.
Dépendance fonctionnelle vs dépendance à plusieurs valeurs
Pour comprendre une dépendance à valeurs multiples, il est utile de revoir ce qu’est une dépendance fonctionnelle.
Si un attribut X détermine uniquement un attribut Y, Y est fonctionnellement dépendant de X. Ceci est écrit sous la forme X -> Y. Par exemple, dans le tableau Students ci-dessous, Student_Name détermine la majeure:
Nom d'étudiant | Majeur |
---|---|
Ravi | Histoire de l'art |
Beth | Chimie |
Cette dépendance fonctionnelle peut s’écrire: Student_Name -> Major . Chaque Student_Name détermine exactement une majeure et pas plus. Si vous souhaitez que la base de données répertorie également les sports pratiqués par ces étudiants, vous pouvez penser que le moyen le plus simple de procéder consiste simplement à ajouter une autre colonne intitulée Sport: Le problème ici est que Ravi et Beth pratiquent plusieurs sports. Il est nécessaire d'ajouter une nouvelle ligne pour chaque sport supplémentaire. Ce tableau a introduit une dépendance à valeurs multiples car la majeure et le sport sont indépendants l'un de l'autre, mais les deux dépendent de l'étudiant. Ceci est un exemple simple et facilement identifiable, mais une dépendance à plusieurs valeurs pourrait devenir un problème dans une base de données volumineuse et complexe. Une dépendance à plusieurs valeurs est écrite X -> -> Y. Dans ce cas: Nom d'étudiant ->-> MajeurNom d'étudiant->-> sport
Ceci est lu en tant que "Student_Name multidetermines Major" et "Student_Name multidetermines Sport." Une dépendance à plusieurs valeurs nécessite toujours au moins trois attributs, car elle comprend au moins deux attributs qui dépendent d'un troisième. Une table avec une dépendance à plusieurs valeurs enfreint le standard de normalisation de la quatrième forme normale (4NK) car elle crée des redondances inutiles et peut contribuer à l'incohérence des données. Pour atteindre 4NF, il est nécessaire de diviser cette information en deux tableaux. Le tableau ci-dessous a maintenant une dépendance fonctionnelle de Student_Name -> Major et aucune dépendance à valeurs multiples: Alors que cette table a aussi une dépendance fonctionnelle unique de Student_Name -> Sport: Il est clair que la normalisation est souvent abordée en simplifiant les tableaux complexes afin qu'ils contiennent des informations relatives à une idée ou à un thème unique plutôt que d'essayer de faire en sorte qu'un tableau unique contienne trop d'informations disparates.Nom d'étudiant Majeur sport Ravi Histoire de l'art Football Ravi Histoire de l'art Volley-ball Ravi Histoire de l'art Tennis Beth Chimie Tennis Beth Chimie Football Dépendance à valeurs multiples et normalisation
Nom d'étudiant Majeur Ravi Histoire de l'art Ravi Histoire de l'art Ravi Histoire de l'art Beth Chimie Beth Chimie Nom d'étudiant sport Ravi Football Ravi Volley-ball Ravi Tennis Beth Tennis Beth Football