Denormalizzazione
Quando duplicare i dati può essere utile
Sezione intitolata “Quando duplicare i dati può essere utile”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.
Quando può avere senso
Sezione intitolata “Quando può avere senso”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
Qual è il prezzo da pagare
Sezione intitolata “Qual è il prezzo da pagare”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.
Un esempio semplice
Sezione intitolata “Un esempio semplice”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, totaleFROM ordini_report;Questa scelta può essere utile per un report. Ma se il cliente cambia nome, devi sapere come aggiornare anche la copia.