Qu'est-ce que la normalisation?
sobes.tech IA
Réponse de l'IA
La normalisation des données dans le contexte des bases de données est le processus d'organisation des données pour réduire la redondance et améliorer l'intégrité des données. Cela se fait en divisant de grandes tables en tables plus petites et en établissant des relations entre elles.
Objectif principal:
- Éliminer la duplication des données.
- Améliorer l'intégrité des données (éviter les anomalies d'insertion, de mise à jour et de suppression).
- Augmenter l'efficacité du stockage et des requêtes (dans certains cas).
Le processus de normalisation repose sur les principes des formes normales (FN). Les plus courantes sont:
- Première forme normale (1FN): Atomicité des données dans les cellules, absence de groupes répétitifs de colonnes.
- Deuxième forme normale (2FN): Elle est en 1FN et chaque attribut non clé dépend entièrement de toute la clé primaire.
- Troisième forme normale (3FN): Elle est en 2FN et il n'existe pas de dépendances fonctionnelles transitives d'attributs non clés de la clé primaire via d'autres attributs non clés.
Exemple:
Tableau original "Commandes_Produits":
| ID Commande | Date Commande | ID Produit | Nom du Produit | Prix du Produit | Quantité | Nom du Client | Adresse du Client |
|---|---|---|---|---|---|---|---|
| 1 | 2023-10-27 | 101 | Téléphone | 500 | 1 | Ivan Pétrov | Rue Pushkina, 10 |
| 1 | 2023-10-27 | 102 | Casque audio | 100 | 2 | Ivan Pétrov | Rue Pushkina, 10 |
| 2 | 2023-10-27 | 101 | Téléphone | 500 | 1 | Maria Ivanova | Rue Lermontova, 5 |
Après normalisation (jusqu'à 3FN):
Table "Commandes":
| ID Commande | Date Commande | ID Client |
|---|---|---|
| 1 | 2023-10-27 | 1 |
| 2 | 2023-10-27 | 2 |
Table "Lignes de Commande":
| ID Ligne | ID Commande | ID Produit | Quantité |
|---|---|---|---|
| 1 | 1 | 101 | 1 |
| 2 | 1 | 102 | 2 |
| 3 | 2 | 101 | 1 |
Table "Produits":
| ID Produit | Nom du Produit | Prix du Produit |
|---|---|---|
| 101 | Téléphone | 500 |
| 102 | Casque audio | 100 |
Table "Clients":
| ID Client | Nom du Client | Adresse du Client |
|---|---|---|
| 1 | Ivan Pétrov | Rue Pushkina, 10 |
| 2 | Maria Ivanova | Rue Lermontova, 5 |
Cependant, une normalisation excessive peut entraîner une augmentation du nombre de jointures (JOIN) lors de l'exécution des requêtes, ce qui peut réduire les performances. Par conséquent, lors de la conception de bases de données, on cherche souvent un équilibre entre le degré de normalisation et la performance. La dénormalisation est le processus de violation intentionnelle des formes normales pour améliorer la performance, généralement en ajoutant de la redondance.