Perché questo termine genera tanta confusione
«Normalizzazione dei dati» è uno di quei termini che significano cose completamente diverse a seconda di chi li pronuncia. Un ingegnere di database, un data scientist e uno specialista di qualità dei dati, quando dicono «bisogna normalizzare i dati», intendono tre processi che non si somigliano affatto. Prima di mettersi al lavoro, è importante capire di quale dei tre si sta parlando.
I tre significati principali:
- Normalizzazione dei database — progettare la struttura delle tabelle in modo da eliminare ridondanza e anomalie. È la teoria classica dei database relazionali e delle «forme normali».
- Normalizzazione (standardizzazione, canonizzazione) dei dati — portare i valori a un formato unico: date, numeri di telefono, indirizzi, maiuscole e minuscole, codifiche. È un capitolo della pulizia dei dati, legato direttamente all’arricchimento e al matching dei record.
- Normalizzazione delle variabili in statistica e nel ML — portare le variabili numeriche a una scala o distribuzione comune, perché gli algoritmi funzionino correttamente.
Analizziamoli uno per uno.
Significato 1. La normalizzazione dei database
In che cosa consiste
La normalizzazione dei database è il processo di scomposizione delle tabelle in tabelle più piccole e logicamente collegate, in modo che ogni fatto sia memorizzato esattamente in un punto. La teoria l’ha fondata Edgar Codd nell’ambito del modello relazionale. L’obiettivo principale: eliminare la ridondanza e le anomalie che la accompagnano.
Quali problemi risolve
Se i dati vivono in un’unica tabella «piatta» con duplicazioni, compaiono tre tipi di anomalie:
- Anomalia di inserimento. Non si può aggiungere un fatto senza disporre dei dati che lo accompagnano. Per esempio, non si può registrare un nuovo dipendente finché non è assegnato a un progetto, se le due entità condividono la stessa tabella.
- Anomalia di aggiornamento. Lo stesso fatto è duplicato in più righe: quando cambia, bisogna correggere tutte le copie, ed è facile ritrovarsi con dati incoerenti.
- Anomalia di cancellazione. Eliminando una riga si possono perdere per sbaglio dati che esistevano solo lì (per esempio, cancellando l’ultimo progetto di un dipendente si perde anche il dipendente stesso).
Le forme normali
La normalizzazione procede per livelli — le «forme normali». Ognuna è più rigorosa della precedente e ne include i requisiti.
Prima forma normale (1NF). Tutti i valori sono atomici: in ogni cella un solo valore, senza liste né gruppi ripetuti. Non si può salvare «telefoni: 111, 222, 333» in un unico campo; ogni telefono è un record a sé.
Seconda forma normale (2NF). La tabella è in 1NF e non ci sono dipendenze parziali: ogni attributo non chiave dipende da tutta la chiave primaria, non da una sua parte. È rilevante con le chiavi composte. Se la chiave è «(ordine, prodotto)» e il nome del prodotto dipende solo da «prodotto», la 2NF è violata: il nome del prodotto va spostato in una tabella a parte.
Terza forma normale (3NF). La tabella è in 2NF e non ci sono dipendenze transitive: gli attributi non chiave dipendono solo dalla chiave, non l’uno dall’altro. Se nella tabella dei dipendenti sono salvati «reparto» e «responsabile del reparto», il responsabile dipende dal reparto e non direttamente dal dipendente — è una dipendenza transitiva, e il reparto con i suoi attributi va separato in un’altra tabella.
Forma normale di Boyce–Codd (BCNF). Una 3NF rafforzata: ogni determinante (ciò da cui qualcosa dipende) deve essere una chiave candidata. Risolve i casi rari che la 3NF lascia passare quando esistono più chiavi sovrapposte.
Quarta (4NF) e quinta (5NF) forma normale. Eliminano rispettivamente le dipendenze multivalore e le dipendenze di join. In pratica ci si arriva di rado; per la maggior parte dei sistemi l’obiettivo ragionevole è la 3NF o la BCNF.
La denormalizzazione — quando la normalizzazione è d’intralcio
La normalizzazione è ottimizzata per l’integrità e la scrittura, ma frammenta i dati in molte tabelle, e questo rallenta la lettura per l’abbondanza di join (JOIN). Per questo nei sistemi analitici si va spesso nella direzione opposta: si denormalizza, introducendo ridondanza in modo consapevole in cambio di velocità di lettura.
Esempi tipici:
- Data warehouse e OLAP. Gli schemi «a stella» e «a fiocco di neve» duplicano di proposito i dati nelle tabelle delle dimensioni.
- Letture ad alto carico. Aggregati precalcolati, viste materializzate.
- NoSQL. I database documentali salvano spesso insieme i dati collegati, per leggerli con una sola query.
La regola è semplice: normalizza per i sistemi transazionali (OLTP), denormalizza in modo consapevole per quelli analitici (OLAP) — e tieni sempre presente il prezzo (il rischio di incoerenze) che paghi per quella velocità.
Significato 2. La normalizzazione come unificazione dei formati (standardizzazione)
In che cosa consiste
È il significato che ricorre più spesso nei compiti di pulizia e di arricchimento dei dati. Qui normalizzare significa portare valori con lo stesso significato a un unico formato canonico. L’obiettivo: che i dati sostanzialmente uguali abbiano lo stesso aspetto; altrimenti è impossibile confrontarli, raggrupparli e incrociarli.
Questa normalizzazione è la tappa obbligata prima del matching dei record, della deduplicazione e dell’arricchimento. Non c’è modo affidabile di far combaciare «Officine Rossi S.r.l.» e «OFFICINE ROSSI SRL» finché i nomi non sono ricondotti a una forma comune.
Che cosa si normalizza di solito
Date e orari. Conversione a uno standard unico — di norma ISO 8601 (2026-06-29), un unico fuso orario (spesso UTC), un unico formato. «29/06/2026», «June 29, 2026» e «2026/06/29» devono diventare lo stesso valore.
Numeri di telefono. Conversione al formato internazionale E.164 (+393401234567): togliere spazi, parentesi e trattini, aggiungere il prefisso del Paese.
Campi di testo. Rimozione degli spazi superflui, uniformazione di maiuscole e minuscole, eliminazione dei caratteri invisibili, compattazione degli spazi doppi.
Codifiche e Unicode. Conversione a UTF-8 e a un’unica forma di normalizzazione Unicode (NFC/NFD), perché i caratteri visivamente identici siano memorizzati con gli stessi byte. Altrimenti «é» come carattere singolo ed «é» come «e + accento combinato» risultano stringhe diverse.
Indirizzi. Standardizzazione in un formato unico: espansione delle abbreviazioni («v.le» → «viale»), ordine fisso dei componenti, normalizzazione dei CAP. Spesso ci si appoggia a servizi specializzati di geocodifica.
Unità di misura e valute. Conversione a un’unità base (tutto in metri, tutto in grammi, tutto in un’unica valuta al cambio della data).
Valori categoriali. Riduzione di sinonimi e varianti di scrittura a un valore di riferimento: «USA», «Stati Uniti», «United States» → un unico codice paese. È il cosiddetto mapping su tabelle di riferimento (lookup/reference data).
Identificatori. Normalizzazione dei numeri di registrazione, dei domini (minuscolo, via il www), delle email (dominio in minuscolo).
Il processo di standardizzazione
Una pipeline tipica:
- Profilazione. Capire quali formati compaiono davvero nei dati e quanto sono «sporchi».
- Definizione della forma canonica. Decidere a quale formato unico portare ogni campo.
- Parsing e scomposizione. Scomporre il valore nei suoi componenti (per esempio l’indirizzo in via, numero civico e città).
- Trasformazione. Applicare le regole di conversione alla forma canonica.
- Mapping sui dizionari di riferimento. Confrontare i valori con le tabelle di riferimento (paesi, valute, settori).
- Validazione. Verificare la correttezza del risultato (il telefono ha il numero giusto di cifre, la data esiste).
- Logging. Registrare che cosa è stato cambiato e come, per garantire la tracciabilità.
Strumenti
Una parte si risolve con le espressioni regolari e con le regole; un’altra con librerie specializzate: per i telefoni esistono librerie di parsing dei numeri, per gli indirizzi i geocodificatori, per Unicode le funzioni di normalizzazione integrate nei linguaggi. Per i grandi volumi si usano piattaforme ETL/ELT e strumenti di data quality.
Significato 3. La normalizzazione delle variabili in statistica e nel machine learning
In che cosa consiste
Nel ML «normalizzazione» significa portare le variabili numeriche (le feature) a una scala o distribuzione comparabili. Il problema è che le variabili arrivano in unità e intervalli diversi: l’età (0–100) e il reddito (0–10.000.000). In queste condizioni molti algoritmi «privilegiano» le variabili con valori grandi per pura questione di scala, non di importanza.
I metodi principali
Normalizzazione min-max. Comprime linearmente i valori nell’intervallo [0, 1] con la formula (x − min) / (max − min). Conserva la forma della distribuzione, ma è sensibile agli outlier: un solo massimo estremo «schiaccia» tutti gli altri valori.
Standardizzazione (z-score). Porta i dati a media 0 e deviazione standard 1 con la formula (x − μ) / σ. Non vincola i valori a un intervallo fisso e funziona meglio quando i dati si avvicinano a una distribuzione normale. Spesso è proprio questa a essere chiamata «normalizzazione», anche se tecnicamente è una standardizzazione.
Scaling robusto. Usa la mediana e lo scarto interquartile al posto della media e della deviazione — resistente agli outlier.
Normalizzazione del vettore (L2). Porta il vettore delle variabili a lunghezza unitaria. Si applica, per esempio, nel lavoro con i vettori di testo e con la similarità del coseno.
Trasformazione logaritmica. Non è uno scaling in senso stretto, ma si usa spesso per «raddrizzare» distribuzioni molto asimmetriche (redditi, dimensioni delle aziende).
Quando serve e quando no
Serve per gli algoritmi sensibili alla scala e alle distanze:
- metodi basati sulle distanze (kNN, k-means, SVM);
- discesa del gradiente (reti neurali, modelli lineari) — la normalizzazione accelera la convergenza;
- metodi con regolarizzazione;
- riduzione della dimensionalità (PCA).
Non è indispensabile per i modelli ad albero (alberi decisionali, random forest, gradient boosting): lavorano con soglie su ogni variabile separatamente, e uno scaling monotono non li influenza.
Una regola pratica importante
I parametri di normalizzazione (min, max, μ, σ) si calcolano solo sul set di addestramento e poi si applicano ai dati di test e di produzione. Se li calcoli su tutti i dati insieme, si verifica una «fuga» di informazioni dal test all’addestramento (data leakage) e la valutazione della qualità del modello risulta gonfiata.
Come non confondersi: guida rapida
| Se si parla di… | …si intende |
|---|---|
| Tabelle, chiavi, JOIN, ridondanza, anomalie | Forme normali (Significato 1) |
| Formati di date, telefoni e indirizzi, duplicati, matching | Standardizzazione / canonizzazione (Significato 2) |
| Variabili, scala, addestramento del modello, μ e σ | Scaling delle variabili (Significato 3) |
Un modo pratico per capire di che cosa si parla: chiedersi qual è l’obiettivo. Integrità ed eliminazione delle duplicazioni nello storage — forme normali. Possibilità di confrontare e far combaciare i record — standardizzazione. Corretto funzionamento dell’algoritmo — scaling delle variabili.
Il legame con l’arricchimento dei dati
La normalizzazione nel secondo senso (standardizzazione) è il fondamento senza il quale l’arricchimento non funziona. Per trovare un record in una fonte esterna tramite una chiave, la chiave deve essere uniformata su entrambi i lati: domini in minuscolo, telefoni in E.164, ragioni sociali senza oscillazioni nella forma giuridica. Per questo, in una pipeline reale di trattamento dei dati l’ordine è di solito questo: prima la profilazione, poi la normalizzazione/standardizzazione, quindi il matching e la deduplicazione, e solo alla fine l’arricchimento con dati esterni.
Conclusioni in breve
«Normalizzazione dei dati» è un termine ombrello che copre tre compiti diversi:
- Le forme normali mettono ordine nella struttura di un database relazionale eliminando ridondanza e anomalie; a volte si violano di proposito (denormalizzazione) in cambio di velocità di lettura.
- La standardizzazione porta i valori a un unico formato canonico: è la base della pulizia, del matching e dell’arricchimento dei dati.
- Lo scaling delle variabili prepara i dati numerici per gli algoritmi di machine learning sensibili alla scala.
La competenza pratica principale è capire dal contesto quale normalizzazione serve in ogni caso, e non applicare il metodo di un ambito là dove serve quello di un altro.