Normalisation est le processus de minimisation redondance à partir d’une relation ou d’un ensemble de relations. La redondance en relation peut provoquer des anomalies d'insertion, de suppression et de mise à jour. Cela permet donc de minimiser la redondance dans les relations. Formes normales sont utilisés pour éliminer ou réduire la redondance dans les tables de base de données.
Normalisation du SGBD par Ranjan Hero
Dans les systèmes de gestion de bases de données (SGBD), les formulaires normaux sont une série de lignes directrices qui permettent de garantir que la conception d'une base de données est efficace, organisée et exempte d'anomalies de données. Il existe plusieurs niveaux de normalisation, chacun avec son propre ensemble de lignes directrices, appelées formes normales.
Points importants concernant les formulaires normaux dans le SGBD
- Première forme normale (1NF) : Il s’agit du niveau de normalisation le plus élémentaire. En 1NF, chaque cellule du tableau ne doit contenir qu'une seule valeur et chaque colonne doit avoir un nom unique. La première forme normale permet d'éliminer les données en double et de simplifier les requêtes.
- Deuxième forme normale (2NF) : 2NF élimine les données redondantes en exigeant que chaque attribut non clé dépende de la clé primaire. Cela signifie que chaque colonne doit être directement liée à la clé primaire et non à d'autres colonnes.
- Troisième forme normale (3NF) : 3NF s'appuie sur 2NF en exigeant que tous les attributs non clés soient indépendants les uns des autres. Cela signifie que chaque colonne doit être directement liée à la clé primaire, et non à d'autres colonnes de la même table.
- Forme normale de Boyce-Codd (BCNF) : BCNF est une forme plus stricte de 3NF qui garantit que chaque déterminant d'une table est une clé candidate. En d’autres termes, BCNF garantit que chaque attribut non-clé dépend uniquement de la clé candidate.
- Quatrième forme normale (4NF) : 4NF est un raffinement supplémentaire de BCNF qui garantit qu'une table ne contient aucune dépendance à valeurs multiples.
- Cinquième forme normale (5NF) : 5NF est le niveau de normalisation le plus élevé et implique la décomposition d'une table en tables plus petites pour supprimer la redondance des données et améliorer l'intégrité des données.
Les formulaires normaux aident à réduire la redondance des données, à augmenter la cohérence des données et à améliorer les performances de la base de données. Cependant, des niveaux de normalisation plus élevés peuvent conduire à des conceptions et des requêtes de bases de données plus complexes. Il est important de trouver un équilibre entre normalisation et praticité lors de la conception d’une base de données.
générateur de nombres aléatoires Java
Avantages de la forme normale
- Redondance des données réduite : La normalisation permet d'éliminer les données en double dans les tables, réduisant ainsi la quantité d'espace de stockage nécessaire et améliorant l'efficacité de la base de données.
- Cohérence des données améliorée : La normalisation garantit que les données sont stockées de manière cohérente et organisée, réduisant ainsi le risque d'incohérences et d'erreurs de données.
- Conception de base de données simplifiée : La normalisation fournit des directives pour organiser les tables et les relations entre les données, facilitant ainsi la conception et la maintenance d'une base de données.
- Performances de requête améliorées : Les tables normalisées sont généralement plus faciles à rechercher et à récupérer des données, ce qui accélère les performances des requêtes.
- Maintenance de base de données plus facile : La normalisation réduit la complexité d'une base de données en la décomposant en tables plus petites et plus faciles à gérer, ce qui facilite l'ajout, la modification et la suppression de données.
Dans l'ensemble, l'utilisation de formulaires normaux dans un SGBD contribue à améliorer la qualité des données, à augmenter l'efficacité de la base de données et à simplifier la conception et la maintenance de la base de données.
Première forme normale
Si une relation contient un attribut composite ou à valeurs multiples, elle viole la première forme normale ou une relation est en première forme normale si elle ne contient aucun attribut composite ou à valeurs multiples. Une relation est sous sa première forme normale si chaque attribut de cette relation est attribut à valeur unique .
- Exemple 1 - La relation STUDENT dans le tableau 1 n'est pas en 1NF en raison de l'attribut multi-valeurs STUD_PHONE. Sa décomposition en 1NF a été présentée dans le tableau 2.

Exemple
- Exemple 2 –
ID Name Courses ------------------ 1 A c1, c2 2 E c3 3 M C2, c3>
- Dans le tableau ci-dessus, le cours est un attribut à valeurs multiples, il n'est donc pas en 1NF. Le tableau ci-dessous est en 1NF car il n'y a pas d'attribut à valeurs multiples
ID Name Course ------------------ 1 A c1 1 A c2 2 E c3 3 M c2 3 M c3>
Deuxième forme normale
Pour être en seconde forme normale, une relation doit être en première forme normale et la relation ne doit contenir aucune dépendance partielle. Une relation est en 2NF si elle a Pas de dépendance partielle, c'est à dire. , aucun attribut non premier (attributs qui ne font partie d'aucune clé candidate) ne dépend d'un sous-ensemble approprié d'une clé candidate de la table. Dépendance partielle – Si le sous-ensemble approprié de la clé candidate détermine un attribut non premier, on parle de dépendance partielle.
- Exemple 1 - Considérez le tableau 3 comme suit ci-dessous.
STUD_NO COURSE_NO COURSE_FEE 1 C1 1000 2 C2 1500 1 C4 2000 4 C3 1000 4 C1 1000 2 C5 2000>
- {Notez qu'il existe de nombreux cours ayant les mêmes frais de cours} Ici, COURSE_FEE ne peut pas décider seul de la valeur de COURSE_NO ou STUD_NO ; COURSE_FEE et STUD_NO ne peuvent pas décider de la valeur de COURSE_NO ; COURSE_FEE et COURSE_NO ne peuvent pas décider de la valeur de STUD_NO ; Par conséquent, COURSE_FEE serait un attribut non premier, car il n'appartient pas à la seule clé candidate {STUD_NO, COURSE_NO} ; Mais COURSE_NO -> COURSE_FEE, c'est-à-dire COURSE_FEE dépend de COURSE_NO, qui est un sous-ensemble approprié de la clé candidate. L'attribut non premier COURSE_FEE dépend d'un sous-ensemble approprié de la clé candidate, qui est une dépendance partielle et cette relation n'est donc pas dans 2NF. Pour convertir la relation ci-dessus en 2NF, nous devons diviser la table en deux tables telles que : Table 1 : STUD_NO, COURSE_NO Table 2 : COURSE_NO, COURSE_FEE
Table 1 Table 2 STUD_NO COURSE_NO COURSE_NO COURSE_FEE 1 C1 C1 1000 2 C2 C2 1500 1 C4 C3 1000 4 C3 C4 2000 4 C1 C5 2000>
- NOTE: 2NF essaie de réduire les données redondantes stockées en mémoire. Par exemple, s'il y a 100 étudiants qui suivent le cours C1, nous n'avons pas besoin de stocker ses frais à 1 000 pour les 100 enregistrements, mais une fois que nous pouvons le stocker dans le deuxième tableau, car les frais de cours pour C1 sont de 1 000.
- Exemple 2 – Considérez les dépendances fonctionnelles suivantes dans la relation R (A, B , C, D )
AB ->C [A et B déterminent ensemble C] BC -> D [B et C déterminent ensemble D]>
Dans la relation ci-dessus, AB est la seule clé candidate et il n’y a pas de dépendance partielle, c’est-à-dire qu’aucun sous-ensemble approprié de AB ne détermine aucun attribut non premier.
X is a super key. Y is a prime attribute (each element of Y is part of some candidate key).>
Exemple 1: Dans la relation STUDENT donnée dans le tableau 4, FD définit : {STUD_NO -> STUD_NAME, STUD_NO -> STUD_STATE, STUD_STATE -> STUD_COUNTRY, STUD_NO -> STUD_AGE}
Clé du candidat : {STUD_NO}
Pour cette relation dans le tableau 4, STUD_NO -> STUD_STATE et STUD_STATE -> STUD_COUNTRY sont vrais.
STUD_COUNTRY dépend donc transitivement de STUD_NO. Cela viole la troisième forme normale.
Pour le convertir en troisième forme normale, nous allons décomposer la relation STUDENT (STUD_NO, STUD_NAME, STUD_PHONE, STUD_STATE, STUD_COUNTRY_STUD_AGE) comme : STUDENT (STUD_NO, STUD_NAME, STUD_PHONE, STUD_STATE, STUD_AGE) STATE_COUNTRY (STATE, COUNTRY)
Considérons la relation R(A, B, C, D, E) A -> BC, CD -> E, B -> D, E -> A Toutes les clés candidates possibles dans la relation ci-dessus sont {A, E, CD, BC} Tous les attributs sont du côté droit de toutes les dépendances fonctionnelles qui sont premières.
Exemple 2 : Trouver la forme normale la plus élevée d'une relation R(A,B,C,D,E) avec FD défini comme {BC->D, AC->BE, B->E}
Étape 1: Comme nous pouvons le voir, (AC)+ ={A,C,B,E,D} mais aucun de ses sous-ensembles ne peut déterminer tous les attributs de la relation, donc AC sera la clé candidate. A ou C ne peuvent être dérivés d’aucun autre attribut de la relation, il n’y aura donc qu’une seule clé candidate {AC}.
Étape 2: Les attributs premiers sont les attributs qui font partie de la clé candidate {A, C} dans cet exemple et les autres seront non premiers {B, D, E} dans cet exemple.
Étape 3: La relation R est sous la 1ère forme normale car un SGBD relationnel n'autorise pas les attributs multi-valeurs ou composites. La relation est en 2ème forme normale car BC->D est en 2ème forme normale (BC n'est pas un sous-ensemble approprié de la clé candidate AC) et AC->BE est en 2ème forme normale (AC est la clé candidate) et B->E est sous la 2ème forme normale (B n'est pas un sous-ensemble approprié de la clé candidate AC).
La relation n'est pas en 3ème forme normale car en BC->D (ni BC n'est une super clé ni D n'est un attribut premier) et en B->E (ni B n'est une super clé ni E n'est un attribut premier) mais à satisfaire la 3ème normale car, soit LHS d'un FD doit être une super clé, soit RHS doit être un attribut principal. Ainsi, la forme normale de relation la plus élevée sera la 2e forme normale.
Par exemple, considérons la relation R(A, B, C) A -> BC, B -> A et B sont toutes deux des super clés, donc la relation ci-dessus est en BCNF.
Troisième forme normale
Une relation est dite sous la troisième forme normale si nous n’avons aucune dépendance transitive pour les attributs non premiers. La condition de base avec la troisième forme normale est que la relation doit être sous la deuxième forme normale.
Ci-dessous est mentionnée la condition de base qui doit être remplie dans la dépendance fonctionnelle non triviale X -> Y :
- X est une super clé.
- Y est un attribut principal (cela signifie que l'élément de Y fait partie de la clé candidate).
Pour en savoir plus, reportez-vous à Troisième forme normale dans le SGBD.
BCNF
BCNF (Boyce-Codd Normal Form) n'est qu'une version avancée de la troisième forme normale. Ici, nous avons quelques règles supplémentaires par rapport à la troisième forme normale. La condition de base pour que toute relation soit en BCNF est qu'elle soit sous la troisième forme normale.
Nous devons nous concentrer sur quelques règles de base qui s'appliquent à la BCNF :
1. Table must be in Third Normal Form. 2. In relation X->Y, X doivent être une super-clé dans une relation.>
Pour en savoir plus, reportez-vous à BCNF dans le SGBD.
Quatrième forme normale
La quatrième forme normale ne contient aucune dépendance multivaue non triviale, à l'exception de la clé candidate. La condition de base avec la Quatrième Forme Normale est que la relation doit être en BCNF.
Les règles de base sont mentionnées ci-dessous.
1. It must be in BCNF. 2. It does not have any multi-valued dependency.>
Pour en savoir plus, reportez-vous à Quatrième forme normale dans le SGBD.
jbouton
Cinquième forme normale
La cinquième forme normale est également appelée forme normale projetée. Les conditions de base de la cinquième forme normale sont mentionnées ci-dessous.
Relation must be in Fourth Normal Form. The relation must not be further non loss decomposed.>
Pour en savoir plus, reportez-vous à Cinquième forme normale dans le SGBD.
Applications des formes normales dans les SGBD
- La cohérence des données: Les formulaires normaux garantissent que les données sont cohérentes et ne contiennent aucune information redondante. Cela permet d'éviter les incohérences et les erreurs dans la base de données.
- Redondance des données : Les formes normales minimisent la redondance des données en organisant les données dans des tables contenant uniquement des données uniques. Cela réduit la quantité d'espace de stockage requis pour la base de données et facilite sa gestion.
- Temps de réponse: Les formulaires normaux peuvent améliorer les performances des requêtes en réduisant le nombre de jointures requises pour récupérer les données. Cela permet d'accélérer le traitement des requêtes et d'améliorer les performances globales du système.
- Maintenance de la base de données : Les formulaires normaux facilitent la maintenance de la base de données en réduisant la quantité de données redondantes qui doivent être mises à jour, supprimées ou modifiées. Cela permet d’améliorer la gestion des bases de données et de réduire le risque d’erreurs ou d’incohérences.
- Conception de base de données : Les formulaires normaux fournissent des lignes directrices pour la conception de bases de données efficaces, flexibles et évolutives. Cela permet de garantir que la base de données peut être facilement modifiée, mise à jour ou étendue selon les besoins.
Quelques points importants sur les formes normales
- BCNF est exempt de redondance causée par des dépendances fonctionnelles.
- Si une relation est dans BCNF, alors 3NF est également satisfaite.
- Si tous les attributs de la relation sont des attributs premiers, alors la relation est toujours en 3NF.
- Une relation dans une Base de Données Relationnelle est toujours et au minimum sous forme 1NF.
- Chaque relation binaire (une relation avec seulement 2 attributs) est toujours en BCNF.
- Si une relation n'a que des clés candidates singleton (c'est-à-dire que chaque clé candidate se compose d'un seul attribut), alors la relation est toujours en 2NF (car aucune dépendance fonctionnelle partielle possible).
- Parfois, opter pour le formulaire BCNF peut ne pas préserver la dépendance fonctionnelle. Dans ce cas, optez pour BCNF uniquement si le ou les FD perdus ne sont pas nécessaires, sinon normalisez jusqu'à 3NF uniquement.
- Il existe de nombreuses autres formes normales après BCNF, comme 4NF et plus encore. Mais dans les systèmes de bases de données du monde réel, il n’est généralement pas nécessaire d’aller au-delà du BCNF.
Conclusion
En conclusion, les bases de données relationnelles peuvent être organisées selon un ensemble de règles appelées formes normales en base de données administration (1NF, 2NF, 3NF, BCNF, 4NF et 5NF), qui réduisent la redondance des données et préservent l'intégrité des données. En résolvant divers types d’anomalies et de dépendances dans les données, chaque forme normale suivante développe celle qui la précède. Les exigences et propriétés particulières des données stockées déterminent quelle forme normale doit être utilisée ; les formes normales supérieures offrent une intégrité des données plus stricte mais peuvent également entraîner des structures de bases de données plus complexes.
Liens vers les questions de l’année précédente
- GATE CS 2012, question 2
- GATE CS 2013, Question 54
- GATE CS 2013, Question 55
- PORTE CS 2005, Question 29
- PORTE CS 2002, Question 23
- PORTE CS 2002, question 50
- PORTE CS 2001, Question 48
- PORTE CS 1999, Question 32
- GATE-IT 2005, question 22
- PORTAIL IT 2008, Question 60
- GATE CS 2016 (ensemble 1), question 31
FAQ sur la forme normale
Q.1 : Pourquoi la normalisation est-elle importante dans le SGBD ?
Répondre:
La normalisation aide à prévenir les anomalies dans la base de données, ce qui garantit en fin de compte la cohérence de la base de données et facilite sa maintenance.
Q.2 : Est-il possible de sur-normaliser la base de données ?
Répondre:
Oui, une normalisation excessive entraînera des requêtes complexes et réduira également les performances. Il établit un équilibre entre normalisation et praticité.
Q.3 : Est-il nécessaire de normaliser une base de données à la forme normale la plus élevée comme (BCNF ou 4NF) ?
Répondre:
Il n’existe aucune condition nécessaire certaine pour toute normalisation de base de données. Souvent, une forme inférieure peut suffire pour des performances spécifiques et une simplicité.