Maison > base de données > tutoriel mysql > Comprendre les formes normales dans la conception de bases de données : un guide complet

Comprendre les formes normales dans la conception de bases de données : un guide complet

Susan Sarandon
Libérer: 2024-12-31 22:19:09
original
726 Les gens l'ont consulté

Understanding Normal Forms in Database Design: A Comprehensive Guide

Différentes formes normales dans la conception de bases de données

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 :


1. Première Forme Normale (1NF)

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).

  • Règles de 1NF :
    1. Chaque cellule du tableau doit contenir une seule valeur (atomicité).
    2. Chaque enregistrement (ligne) doit être unique.
    3. Chaque colonne doit contenir des valeurs d'un seul type (par exemple, tous les entiers, toutes les chaînes).
    4. Pas de groupes de colonnes répétitifs ou de valeurs multiples dans une seule colonne.

Exemple de 1NF :

Avant 1NF :

OrderID Products Quantities
1 Apple, Banana 2, 3
2 Orange 5

Après conversion en 1NF :

OrderID Product Quantity
1 Apple 2
1 Banana 3
2 Orange 5

2. Deuxième Forme Normale (2NF)

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.

  • Règles de la 2NF :
    1. Le tableau doit être en 1NF.
    2. Chaque attribut non premier doit être entièrement dépendant fonctionnellement de la clé primaire entière (éliminer les dépendances partielles).

Exemple de 2NF :

Avant 2NF (Dépendance Partielle) :

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 :

  • Commandes (OrderID, CustomerName)
  • Détails de la commande (ID de commande, produit, prix)

Tableau des commandes :

OrderID CustomerName
1 John
2 Jane

Tableau Détails de la commande :

OrderID Product Price
1 Apple 10
1 Banana 5
2 Orange 8

3. Troisième Forme Normale (3NF)

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.

  • Règles de la 3NF :
    1. Le tableau doit être en 2NF.
    2. Aucun attribut non premier ne doit dépendre d'un autre attribut non premier (supprimez les dépendances transitives).

Exemple de 3NF :

Avant 3NF (Dépendance Transitive) :

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 :

  • Commandes (ID de commande, produit, catégorie)
  • Catégorie (Catégorie, Fournisseur)

Tableau des commandes :

OrderID Product Category
1 Apple Fruit
2 Carrot Vegetable

Tableau des catégories :

Category Supplier
Fruit XYZ
Vegetable ABC

4. Forme normale de Boyce-Codd (BCNF)

BCNF est une version plus stricte de 3NF. Une table est en BCNF si :

  • Il est en 3NF.
  • Pour chaque dépendance fonctionnelle, le côté gauche doit être une clé candidate (c'est-à-dire une super-clé minimale).

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.

  • Règles du BCNF :
    1. Le tableau doit être en 3NF.
    2. Chaque déterminant doit être une clé candidate.

Exemple de BCNF :

Avant 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 :

  • Cours (CourseID, Instructor)
  • Salle (Instructeur, Salle)

Tableau des cours :

CourseID Instructor
101 Dr. Smith
102 Dr. Smith
101 Dr. Johnson

Tableau des chambres :

Instructor Room
Dr. Smith A1
Dr. Smith B1
Dr. Johnson A2

5. Quatrième Forme Normale (4NF)

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 :

  • Il est en BCNF.
  • Il n'a pas de dépendances à valeurs multiples.

Exemple de 4NF :

Avant 4NF (Dépendance à valeurs multiples) :

StudentID Subject Hobby
1 Math Painting
1 Science Cycling

Après 4NF :
Tableaux :

  • Étudiants (ID étudiant, sujet)
  • StudentsHobbies (StudentID, Hobby)

Tableau des étudiants :

StudentID Subject
1 Math
1 Science

Tableau des loisirs des étudiants :

StudentID Hobby
1 Painting
1 Cycling

Conclusion

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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal