Dans la conception de bases de données, la normalisation est le processus d'organisation des données pour minimiser la redondance et la dépendance, améliorant ainsi l'intégrité des données. Le processus consiste à diviser les grandes tables en tables plus petites et plus faciles à gérer et à établir des relations entre elles. Cela garantit que la base de données est exempte d'anomalies telles que des anomalies d'insertion, de mise à jour et de suppression.
Les différentes formes normales représentent des niveaux spécifiques de normalisation. Chaque forme normale s'appuie sur la précédente et possède son propre ensemble de règles. Vous trouverez ci-dessous une explication des formes normales les plus courantes :
1NF est le niveau de normalisation le plus élémentaire, se concentrant sur l'élimination des données en double et garantissant que les données d'un tableau sont organisées de manière à ce que chaque colonne contienne des valeurs atomiques (pas de groupes répétitifs).
Exemple de 1NF :
OrderID | Products | Quantities |
---|---|---|
1 | Apple, Banana | 2, 3 |
2 | Orange | 5 |
OrderID | Product | Quantity |
---|---|---|
1 | Apple | 2 |
1 | Banana | 3 |
2 | Orange | 5 |
2NF s'appuie sur 1NF en éliminant les dépendances partielles. Une dépendance partielle se produit lorsqu'un attribut non premier (une colonne qui ne fait pas partie de la clé primaire) ne dépend que d'une partie de la clé primaire (dans le cas de clés primaires composites). Pour atteindre 2NF, la table doit d'abord répondre aux exigences de 1NF.
Exemple de 2NF :
OrderID | Product | CustomerName | Price |
---|---|---|---|
1 | Apple | John | 10 |
1 | Banana | John | 5 |
2 | Orange | Jane | 8 |
Ici, CustomerName dépend uniquement de OrderID et non de la clé primaire complète (OrderID, Product). Pour supprimer cela, nous divisons la table.
Après 2NF :
Tableaux :
OrderID | CustomerName |
---|---|
1 | John |
2 | Jane |
OrderID | Product | Price |
---|---|---|
1 | Apple | 10 |
1 | Banana | 5 |
2 | Orange | 8 |
3NF s'appuie sur 2NF et aborde les dépendances transitives, qui se produisent lorsqu'un attribut non premier dépend d'un autre attribut non premier. Un attribut non premier ne doit dépendre que de la clé primaire. Une table est en 3NF si elle est en 2NF et toutes les dépendances transitives sont supprimées.
Exemple de 3NF :
OrderID | Product | Category | Supplier |
---|---|---|---|
1 | Apple | Fruit | XYZ |
2 | Carrot | Vegetable | ABC |
Ici, le Fournisseur dépend de la Catégorie, pas directement du OrderID. Pour résoudre ce problème, nous divisons la table.
Après 3NF :
Tableaux :
OrderID | Product | Category |
---|---|---|
1 | Apple | Fruit |
2 | Carrot | Vegetable |
Category | Supplier |
---|---|
Fruit | XYZ |
Vegetable | ABC |
BCNF est une version plus stricte de 3NF. Une table est en BCNF si :
En termes plus simples, BCNF traite les situations dans lesquelles une table est en 3NF mais possède encore des dépendances qui impliquent des attributs qui ne sont pas des clés candidates.
Exemple de BCNF :
CourseID | Instructor | Room |
---|---|---|
101 | Dr. Smith | A1 |
102 | Dr. Smith | B1 |
101 | Dr. Johnson | A2 |
Ici, Instructeur détermine la Salle, mais Instructeur n'est pas une clé de candidat, ce qui viole la BCNF. Pour réaliser BCNF, nous séparons les dépendances en différentes tables.
Après BCNF :
Tableaux :
CourseID | Instructor |
---|---|
101 | Dr. Smith |
102 | Dr. Smith |
101 | Dr. Johnson |
Instructor | Room |
---|---|
Dr. Smith | A1 |
Dr. Smith | B1 |
Dr. Johnson | A2 |
4NF aborde les dépendances à valeurs multiples, qui se produisent lorsqu'un attribut détermine plusieurs valeurs d'un autre attribut, et ces valeurs sont indépendantes les unes des autres. Une table est en 4NF si :
Exemple de 4NF :
StudentID | Subject | Hobby |
---|---|---|
1 | Math | Painting |
1 | Science | Cycling |
Après 4NF :
Tableaux :
StudentID | Subject |
---|---|
1 | Math |
1 | Science |
StudentID | Hobby |
---|---|
1 | Painting |
1 | Cycling |
Dans la conception de bases de données, la normalisation est un processus fondamental pour organiser efficacement les données. Les différentes formes normales—1NF, 2NF, 3NF, BCNF et 4NF—garantissent que les données sont stockées sans redondance, maintiennent leur intégrité et sont faciles à gérer. Chaque forme normale s’appuie sur la précédente en éliminant des types spécifiques de dépendance ou d’anomalie. Bien que la normalisation améliore la qualité des données, il est essentiel de l'équilibrer avec des considérations de performances, en optant parfois pour la dénormalisation lorsque cela est nécessaire à l'optimisation.
Bonjour, je m'appelle Abhay Singh Kathayat !
Je suis un développeur full-stack avec une expertise dans les technologies front-end et back-end. Je travaille avec une variété de langages et de frameworks de programmation pour créer des applications efficaces, évolutives et conviviales.
N'hésitez pas à me contacter à mon e-mail professionnel : kaashshorts28@gmail.com.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!