Maison >base de données >tutoriel mysql >Un guide du débutant sur la normalisation des bases de données

Un guide du débutant sur la normalisation des bases de données

WBOY
WBOYoriginal
2024-08-31 06:30:361159parcourir

A Beginner

Normalisation de la base de données : est le processus d'organisation des données dans une base de données pour réduire la redondance et améliorer l'intégrité des données. Voici un aperçu rapide des principales formes normales, avec des exemples.

1. Première Forme Normale (1NF)
Objectif : Assurez-vous que chaque colonne contient des valeurs atomiques et que chaque enregistrement est unique.

Exemple :

Avant 1NF :

Table: StudentCourses
----------------------------
StudentID | Name   | Courses
----------------------------
1         | Alice  | Math, Science

2. Deuxième Forme Normale (2NF)
Objectif : Éliminer les dépendances partielles ; chaque attribut non clé doit dépendre de la clé primaire entière.

Exemple :

Avant 2NF :

Table: StudentCourses
----------------------------
StudentID | Course | Instructor
----------------------------
1         | Math   | Dr. Smith

Après 2NF :

Table: StudentCourses
----------------------------
StudentID | Course
----------------------------
1         | Math
Table: CourseInstructors
----------------------------
Course    | Instructor
----------------------------
Math      | Dr. Smith

3. Troisième Forme Normale (3NF)
Objectif : Supprimer les dépendances transitives ; les attributs non clés ne doivent dépendre que de la clé primaire.

Exemple :

Avant 3NF :

Table: StudentCourses
-----------------------------------
StudentID | Course | Instructor | Dept
-----------------------------------
1         | Math   | Dr. Smith  | Science

Après 3NF :

Table: StudentCourses
----------------------------
StudentID | Course
----------------------------
1         | Math

Table: CourseInstructors
----------------------------
Instructor | Dept
----------------------------
Dr. Smith  | Science

4. Forme normale de Boyce-Codd (BCNF)
Objectif : Une version plus stricte de 3NF pour gérer les anomalies.

Exemple :

Avant BCNF :

Table: TeacherCourses
------------------------------
TeacherID | Course    | Dept
------------------------------
1         | Math      | Science

Après BCNF :

Table: TeacherCourses
----------------------------
TeacherID | Course
----------------------------
1         | Math

Table: CourseDepartments
----------------------------
Course    | Dept
----------------------------
Math      | Science

5. Quatrième Forme Normale (4NF)
Objectif : Éliminer les dépendances à valeurs multiples.

Exemple :

Avant 4NF :

Table: StudentHobbies
----------------------------
StudentID | Course | Hobby
----------------------------
1         | Math   | Chess

Après 4NF :

Table: StudentCourses
----------------------------
StudentID | Course
----------------------------
1         | Math

Table: StudentHobbies
----------------------------
StudentID | Hobby
----------------------------
1         | Chess

6. Cinquième Forme Normale (5NF)
Objectif : Gérer les dépendances de jointure complexes ; décomposer davantage les tableaux sans perdre d'informations.

Exemple :

Avant 5NF :

Table: ProjectAssignments
---------------------------------
EmployeeID | Project | Role
---------------------------------
1          | A       | Developer

Après 5NF :

Table: EmployeeProjects
----------------------------
EmployeeID | Project
----------------------------
1          | A

Table: EmployeeRoles
----------------------------
EmployeeID | Role
----------------------------
1          | Developer

Table: ProjectRoles
----------------------------
Project | Role
----------------------------
A       | Developer

Conclusion
La normalisation garantit que votre base de données reste efficace, cohérente et évolutive, ce qui simplifie la gestion et améliore les performances des requêtes à mesure que vos données se développent.

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!

Déclaration:
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