Latest news

Denormalizzazione dei dati: ottimizzare i database per la Business intelligence

Cos’è le denormalizzazione dei dati?

Quando si parla di denormalizzaione dei dati si indica una tecnica che viene utilizzata su un database precedentemente normalizzato al fine di aumentarne le prestazioni. Nel campo informatico, la denormalizzazione riguarda nello specifico il processo di miglioramento delle prestazioni di lettura di un database. Prestazioni e ottimizzazioni che si traducono nell’aggiungere o nel raggruppamento di copie ridondanti di dati, anche a scapito della perdita di alcune prestazioni di scrittura.

Entriamo quindi all’interno del concetto di denormalizzazione dei dati per facilitare l’esame delle potenzialità e dei casi d’uso.

denormalizzazione dei dati business intelligence

I dati: cosa sono?

I dati, concetto e sinonimo di “informazione” e “conoscenza”, rappresentano un insieme di caratteri generati per uno specifico scopo. Rappresentano delle specifiche unità individuali di informazioni riscontrabili sotto forma di numeri, caratteri, simboli speciali, suoni e video. Descrivono Inoltre, la quantità e la qualità di alcuni oggetti: sono composti da bit, byte e caratteri nel linguaggio informatico e quando sono elaborati dalla CPU, vengono gestire delle operazioni logiche per ricavare nuovi dati dai dati in ingresso.

Denormalizzazione: entriamo nel dettaglio

Il concetto di denormalizzazione denota quindi una tecnica che consente di aggiungere i dati duplicati a una o più tabelle. Grazie all’utilizzo di questa tecnica, è possibile evitare costosi join in un database relazionale. È proprio attraverso alla denormalizzazione che è possibile accelerare le prestazioni di recupero dei dati orientati alla lettura in un database relazionale.

Non è di fatto scontato che i dati non normalizzati siano automaticamente in stato denormalizzato. Vediamo il concetto da più vicino.

Tecnica di normalizzazione

La normalizzazione rappresenta una tecnica che permette di organizzare i dati nel database. Lo scopo principale della normalizzazione dei dati è quello di rimuovere tutto ciò che rappresenta la ridondanza dalle relazioni. La normalizzazione consente di dividere la tabella in tabelle più piccole e quindi permette di ridurre per quanto possibile al minimo le anomalie di ridondanza.

Alcuni esempi di anomalie di ridondanza

  • Anomalia di aggiornamento: si verifica quando i dati duplicati vengono aggiornati in un’istanza e non nell’intera istanza in cui sono presenti i dati ridondanti.
  • Anomalia di cancellazione: si verifica quando si rimuovono i record che contengono informazioni aggiuntive importanti, che vengono anch’esse cancellate.
  • Anomalia di inserimento: questa anomalia si verifica quando non è possibile aggiungere alcuni attributi nel database senza la presenza di altri attributi.
denormalizzazione dei dati business intelligence

Tipi di normalizzazione

Entriamo nel dettaglio per la verifica di alcuni tipi di normalizzazione che rappresentano le forme normali comunemente utilizzate nei database:

  1. Prima forma normale (1NF)
  2. Seconda forma normale (2NF)
  3. Terza forma normale (3NF)
  4. Forma normale di Boyce e Codd (BCNF) 

Il focus: denormalizzazione e normalizzazione dei dati

La denormalizzazione è una tecnica che viene eseguita sui dati normalizzati. Nella normalizzazione dei dati, i dati vengono memorizzati in tabelle separate in modo da evitare la ridondanza. Ciò permette di ottenere una sola copia di ogni dato in un database.

Nel momento in cui vengono aggiornati i dati in un unico punto, non risulta possibile la  duplicazione dei dati. Tuttavia, se il numero di tabelle risultasse elevato, sarebbe fondamentale dedicare il corretto tempo all’esecuzione di join su tali tabelle. Con l’aiuto di questo sistema, diamo per buoni alcuni dati duplicati con un minor sforzo in termini di esecuzione di un ridotto numero di join con vantaggi in termini di efficienza. Per tali motivi la denormalizzazione non corrisponde alla “non normalizzazione” dei dati. La presenza di dati ridondanti può migliorare le prestazioni in modi specifici di ricerca nel database per un particolare elemento.

Quali sono i vantaggi?

La denormalizzazione viene utilizzata dai gestori di database per aumentare le prestazioni di un database. Alcuni dei suoi vantaggi sono:

  • Ridurre al minimo la necessità di effettuare join
  • Riduzione del numero di tabelle
  • Maggiore semplicità delle query da recuperare
  • Minore probabilità di avere bug
  • Precalcolo dei valori derivati
  • Riduzione del numero di relazioni
  • Riduzione del numero di chiavi esterne nelle relazioni
  • Modifica dei dati in fase di calcolo e non in fase di selezione
  • Il recupero dei dati è più veloce grazie al minor numero di join.

Quali sono gli svantaggi?

I dati possono essere modificati in molti punti. Occorre definire le strategie da utilizzare e fare i giusti controlli nella fase di modifica dei dati per evitare anomalie. Per evitare queste possibili e frequenti incongruenze si possono usare trigger, transazioni o procedure.

Sebbene la denormalizzazione dei dati possa permetter di evitare alcune anomalie che potrebbero portare a una mancata corrispondenza dei risultati, essa può avere degli effetti svantaggiosi sulla gestione del processo di analisi dei dati come ad esempio:

  • Rallentare gli aggiornamenti, seppur velocizzando i recuperi
  • Rendere più complesso l’aggiornamento in alcuni casi, pur semplificando l’implementazione
  • Essere incoerente
  • Sacrificare la flessibilità
  • Aumentare la dimensione delle relazioni
  • Rendere i codici di aggiornamento e inserimento più difficili da scrivere
  • Comportare una ridondanza dei dati che richiede un maggiore spazio di archiviazione

Normalizzazione e denormalizzazione a confronto

Per tutti i vantaggi che la normalizzazione dei dati comporta occorre tenere monitorate le possibili variabili funzionali e i relativi costi. Un database relazionale normalizzato, anche per una piccola azienda, potrebbe comprendere centinaia di tabelle e quindi una serie di infinite relazioni tra tabelle. Per le transazioni, come acquisti, manutenzione dell’inventario e dati personali, ciò non dovrebbe rappresentare un problema se la gestione dei dati è gestita da un’applicazione front-end. Mentre i dati normalizzati sono ottimizzati per le transazioni a livello di entità, i dati denormalizzati sono ottimizzati per rispondere alle domande di business e guidare il processo decisionale e di business intelligence. I dati denormalizzati sono dati estratti dalla grande collezione di tabelle normalizzate e organizzati e/o aggregati in un numero inferiore di tabelle, senza tener conto di aspetti quali la ridondanza. Hanno meno regole sulla struttura e non sono simili alla normalizzazione.

La gestione dei dati e l’organizzazione delle informazioni

Nelle procedure di denormalizzazione, vengono aggiungi i dati ridondanti a un database normalizzato in modo da ridurre alcuni tipi di problemi con le query del database che combinano i dati di diverse tabelle in un’unica soluzione tabellare. Vengono quindi create tabelle o strutture diverse in modo che le query eseguite su tali tabelle non influiscano sulle informazioni presenti in un’altra tabella ad esse collegata.

Hai bisogno di maggiori informazioni?

I nostri esperti IT sapranno certamente aiutarti!

Teniamo alla tua privacy
Questo sito utilizza cookie tecnici e di profilazione. Cliccando su accetta si autorizzano tutti i cookie di profilazione. Cliccando su rifiuta o la X si rifiutano tutti i cookie di profilazione. Cliccando su personalizza è possibile selezionare quali cookie di profilazione attivare. Inoltre, questo sito installa Google Analytics nella versione 4 (GA4) con trasmissione di dati anonimi tramite proxy. Prestando il consenso, l'invio dei dati sarà effettuato in maniera anonima, tutelando così la tua privacy.