Les données relationnelles non normalisées génèrent trois catégories d’anomalies qui altèrent silencieusement les enregistrements.
- Le même fait est stocké dans plusieurs lignes. Modifier l’adresse e-mail d’un client dans une seule ligne sans répercuter la modification sur les autres place la base de données dans un état contradictoire. Une équipe marketing qui extrait des listes d’e-mails depuis cette table enverra des messages à des adresses obsolètes, et la logique de déduplication traitera le même client comme deux personnes distinctes.
- L’ajout d’un nouvel enregistrement nécessite des données qui ne devraient pas logiquement être requises. Par exemple, un schéma qui stocke les informations sur les produits uniquement dans les lignes de commande rend impossible l’ajout d’un nouveau produit tant qu’aucune vente n’existe, retardant ainsi les mises à jour du catalogue.
- La suppression d’une ligne entraîne involontairement la perte d’informations sans rapport stockées dans cette même ligne. Supprimer la dernière commande d’un client peut également effacer ses coordonnées si les deux sont stockées dans une seule et même table.
Chacune de ces anomalies engendre des erreurs de reporting en aval difficiles à relier à leur cause structurelle : les données paraissent plausibles au niveau de la ligne, même lorsqu’elles se contredisent au niveau de la table.
Dans les pipelines de machine learning, les variables numériques non normalisées causent une catégorie de problèmes bien distincte. Les algorithmes basés sur la distance — comme les k plus proches voisins — et les optimiseurs par descente de gradient accordent une influence bien plus grande à une variable dont les valeurs se chiffrent en milliers qu’à une variable dont les valeurs oscillent entre zéro et un, même si toutes deux ont le même pouvoir prédictif. Le coût métier est alors un modèle qui performe bien sur les données d’entraînement, mais se dégrade en production, car c’est l’échelle de la variable, et non son signal, qui pilote les prédictions.
Le nettoyage des données et la validation des données sont deux disciplines complémentaires qui s’exercent en parallèle de la normalisation. Le nettoyage supprime ou corrige les enregistrements inexacts. La validation s’assure que les données entrantes respectent les formats et les contraintes attendus avant d’entrer dans un pipeline. La normalisation, quant à elle, suppose que les données sont déjà propres et valides. L’appliquer à des données non fiables produit un désordre structuré plutôt qu’un jeu de données exploitable. Les équipes qui font l’impasse sur les techniques de nettoyage des données avant de normaliser ne découvrent souvent le problème que lorsque les rapports en aval affichent des valeurs impossibles dans des colonnes parfaitement formatées.
Les organisations qui gèrent des données client sur plusieurs canaux sont confrontées à une version amplifiée de ce problème. Lorsque les attributs d’un client proviennent d’un outil de gestion de la relation client, d’une plateforme e-commerce, d’une application mobile et d’un système de support, chaque source emploie généralement des noms de champs, des formats de valeurs et des types de données différents. Sans normalisation au niveau de la couche d’ingestion, les profils clients unifiés deviennent peu fiables, générant des doublons, des segments manqués et des erreurs de personnalisation.