La normalisation organise les données afin de réduire la redondance et d'améliorer leur intégrité. L'objectif est de ne stocker chaque information qu'une seule fois. Si l'adresse d'un client figure dans chaque commande, toute modification d'adresse doit être mise à jour à des centaines d'endroits. Un seul oubli et les données deviennent incohérentes. La normalisation déplace l'adresse dans une table client. Les commandes référencent le client par son identifiant. L'adresse est stockée une seule fois. Toute modification effectuée dans cette table est automatiquement répercutée sur chaque commande.
Le processus suit les formes normales. La première forme normale élimine les groupes répétitifs. La deuxième forme normale supprime les dépendances partielles. La troisième forme normale supprime les dépendances transitives. Chaque forme ajoute des contraintes qui réduisent encore la redondance. Des formes supérieures existent, mais sont rarement utilisées en pratique. La plupart des bases de données transactionnelles visent la troisième forme normale. La normalisation présente des compromis. Plus de tables impliquent plus de jointures, ce qui peut ralentir les requêtes. Pour les systèmes transactionnels, les gains d'intégrité l'emportent sur le coût en termes de performances. Pour les systèmes analytiques, c'est souvent l'inverse. Les schémas dénormalisés avec des tables larges et des colonnes redondantes sont plus rapides à interroger car ils évitent les jointures. C'est pourquoi les entrepôts de données utilisent des schémas en étoile et en flocon de neige qui dénormalisent délibérément les données. Le niveau de normalisation approprié dépend de la charge de travail. Les systèmes transactionnels normalisent les données. Les systèmes analytiques les dénormalisent. Les deux approches sont adaptées à leur usage.
Formes normales
- Première forme normale — pas de groupes répétitifs
- Deuxième forme normale — aucune dépendance partielle
- Troisième forme normale — aucune dépendance transitive
- Forme normale de Boyce-Codd — version plus stricte de la troisième
La normalisation est une question d'intégrité. Si chaque donnée est stockée une seule fois, les données restent cohérentes. Si elles sont stockées plusieurs fois, l'incohérence est inévitable.
Comments
No comments yet. Be the first to share a thought.
Leave a comment