Salta ai contenuti
Manuale LogoManuale Logo

Denormalizzazione

La denormalizzazione è la scelta di duplicare alcuni dati per ottenere vantaggi pratici, spesso in velocità di lettura o semplicità di certe query.

È il contrario della normalizzazione, ma non è sempre un errore: dipende dal problema che devi risolvere.

Nel database, a volte copi un dato in più per leggere più in fretta.

Può essere utile quando:

  • hai report pesanti letti continuamente
  • fai molte query complicate con join costose
  • la velocità di lettura conta più della perfezione teorica

Il rischio è introdurre incoerenze.

Se un dato è copiato in più posti, quando cambia devi ricordarti di aggiornarlo ovunque. La denormalizzazione va quindi fatta con un motivo preciso, non per comodità momentanea.

In una tabella ordini potresti salvare anche nome_cliente, oltre a cliente_id, per rendere un report più rapido da leggere.

SELECT numero_ordine, nome_cliente, totale
FROM ordini_report;

Questa scelta può essere utile per un report. Ma se il cliente cambia nome, devi sapere come aggiornare anche la copia.