Cosa sono i dati immutabili?

I dati immutabili sono un'informazione in un database che non può essere (o non dovrebbe essere) cancellata o modificata. La maggior parte dei database tradizionali memorizza i dati in un formato mutabile, il che significa che il database sovrascrive i dati più vecchi quando sono disponibili nuovi dati. Per esempio, in un database di impiegati, le informazioni sull'indirizzo vengono sovrascritte quando un impiegato cambia la sua residenza.

Diagramma di dati immutabili

Al contrario, i database che memorizzano dati immutabili non sovrascrivono un vecchio elemento quando sono disponibili nuove informazioni. Usano varie tecniche per preservare i valori storici e attuali dei dati. I dati immutabili sono molto utili per l'auditing e il debug.

Un esempio reale di dati immutabili è la cartella clinica di qualcuno. Nel corso degli anni, una persona potrebbe aver cercato un trattamento per diversi disturbi. La cartella clinica consiste in varie prescrizioni, procedure e rapporti di test. Questi file di dati sono immutabili. Per esempio, quando una persona riceve una nuova prescrizione medica, la sua vecchia prescrizione non deve essere sovrascritta. Invece, il database deve aggiungere i nuovi dati a quelli esistenti. I dati medici storici sono un classico esempio di dati immutabili.

Perché le organizzazioni hanno bisogno di dati immutabili?

Con l'avvento dei dati cloud e dell'Internet of Things (IoT), le organizzazioni ricevono un enorme volume di dati sulle transazioni. Questi dati devono essere memorizzati rapidamente in un database. I file immutabili sono una soluzione adatta per memorizzare i log delle transazioni ad alta velocità. Le organizzazioni devono anche considerare la necessità di dati storici. Con i regolamenti sulla privacy dei dati che diventano più severi, molte organizzazioni scelgono di conservare i loro dati storici. Li aiuterà ad essere conformi se un cliente o un governo richiede i dati del passato. Un database che memorizza i dati nel formato immutabile è il più adatto per questo caso d'uso.

Le organizzazioni hanno spesso bisogno di confrontare i loro dati attuali con uno storico per capire le tendenze degli utenti o misurare la crescita. In questi casi, sovrascrivere i dati storici non è una buona idea. I dati immutabili aiutano anche le organizzazioni a tenere traccia dei cambiamenti che hanno subito nel corso degli anni; è particolarmente utile nei sistemi software.

Report O'Reilly: costruire un'infrastruttura di dati unificata
Report O'Reilly: costruire un'infrastruttura di dati unificata
Solo un terzo delle aziende si è evoluto in organizzazioni guidate dai dati. Qual è la soluzione? Scoprilo in questo eBook!

Quali sono gli usi di un database immutabile?

Memorizzazione dei dati del flusso

Con l'esplosione delle informazioni e l'avvento dell'IoT, le organizzazioni ricevono una quantità enorme di dati ogni secondo. Non possono permettersi ritardi nella memorizzazione dei dati. La maggior parte dei database tradizionali che usano un file mutabile hanno una certa latenza perché cancellano i dati precedenti, scrivono quelli nuovi e controllano l'integrità. Ma nel caso dei dati di flusso — per esempio dai sensori IoT — il database dovrebbe memorizzare rapidamente i dati. Quando il database usa file di dati immutabili, aggiunge semplicemente i nuovi dati. Questo rende i database immutabili molto più veloci nella memorizzazione dei dati e quindi più adatti alla memorizzazione dei dati di flusso.

Preservare il contesto storico

I dati personali, come la storia medica di una persona, devono essere memorizzati in modo permanente per fornire un contesto ai nuovi dati. Per esempio, quando una persona viene curata per un disturbo, tutti i suoi vecchi farmaci e trattamenti devono essere presi in considerazione. Mentre i database tradizionali possono fornire un contesto storico, non garantiscono la conservazione dei dati. I database immutabili, per loro stessa natura, assicurano che nessun dato sarà mai cancellato.

Controllo e debug

I sistemi che cambiano frequentemente, come i siti web o i software, hanno bisogno di conservare le principali istantanee del sistema per tenere traccia dei cambiamenti. La maggior parte dei sistemi di controllo delle versioni memorizza i dati in file immutabili in modo che non ci sia il rischio di sovrascriverli. Anche le istituzioni finanziarie hanno bisogno di un database immutabile per conservare tutte le loro transazioni storiche. Anche altre organizzazioni che hanno bisogno di presentare dati per frequenti controlli possono beneficiare di un database immutabile.

Come funziona un database immutabile?

In contrasto con i tradizionali database relazionali (database mutabili) che sono basati su record, i database immutabili sono basati su registri. Quando un nuovo dato è disponibile, il database mutabile riscrive una particolare cella in una tabella di dati. Il database immutabile memorizza i dati nei registri e crea un nuovo registro per ogni nuovo dato.

Per capire come funziona un database immutabile, guardate un semplice database che memorizza i dettagli di un articolo di un blog. Un classico database relazionale memorizzerebbe questi dati in un formato mutabile, con i dettagli del post del blog memorizzati in una tabella. Supponiamo che permalink, titolo e contenuto siano le tre colonne di questa tabella. In un database mutabile, quando il titolo o il contenuto cambia, il database esegue un'operazione di aggiornamento. I nuovi dati sovrascrivono la voce precedente. Il titolo (o i titoli) e il contenuto precedenti sono persi per sempre. Un database standard, immutabile, memorizza queste stesse informazioni come registri.

Il database mutabile memorizza solo lo stato attuale del blog. Il database immutabile memorizza la storia del blog insieme allo stato attuale. Un database immutabile esegue solo operazioni di inserimento e non fa mai un aggiornamento di un campo dati esistente.

Come memorizza i dati un database immutabile?

Continuando con l'esempio del post del blog, il database immutabile usa una struttura di tabella diversa dal database mutabile. Ogni revisione del post del blog è inserita nel database come una nuova riga in una tabella. I campi della tabella sono i seguenti:

  • Numero di revisione: questa è la chiave primaria della tabella. Ogni revisione del blog dovrebbe avere un numero di revisione unico.
  • Data e ora: l'ora in cui avviene la revisione. Dovrebbe essere un valore unico.
  • Permalink, titolo e contenuto

Al contrario del database mutabile, dove ogni revisione del post del blog sovrascrive i dati del blog, il database immutabile crea una nuova voce di revisione per ogni cambiamento nel post del blog. In questo modo, le informazioni su ogni modifica precedente all'articolo del blog sono conservate e possono essere recuperate in qualsiasi momento in base alla marca temporale o al numero di revisione.

Quali sono i vantaggi dei dati immutabili?

Operazioni più veloci

Quando i dati sono memorizzati come immutabili, i nuovi dati vengono aggiunti a quelli precedenti, insieme a una marca temporale. Questo significa che il database può semplicemente inserire i dati senza bloccare il sistema per eseguire i controlli di integrità. Questa qualità di dati immutabili è cruciale nel caso di dati di flussi e sensori. In questi casi, i dati arrivano continuamente e devono essere memorizzati con una latenza minima.

Contesto storico

Molte organizzazioni hanno bisogno di confrontare i dati storici con l'ultima versione per analisi migliori e più contestuali. I database immutabili conservano tutti i dati storici. Aiutano a creare punti di controllo nel passato a cui un sistema può essere ripristinato.

Verificabilità

Molti settori, specialmente quello sanitario e finanziario, potrebbero affrontare audit casuali. È fondamentale per loro conservare tutti i dati in modo da avere i dati storici a portata di mano se sono richiesti per un audit.

Conformità

In tutto il mondo, le regole sulla privacy dei dati sono abbastanza severe. Gli utenti hanno il diritto di chiedere una copia di tutti i dati che un'organizzazione ha raccolto da loro. Memorizzare i dati come immutabili aiuta le organizzazioni a soddisfare tali richieste.

Risorsa di dati immutabili
Dove la gestione efficace dei reference data aggiunge valore al business?
Scopri le quattro R della reference data management e inizia a costruire il tuo business case oggi stesso.

Quali sono gli svantaggi dei dati immutabili?

Requisiti di stoccaggio più elevati

La memorizzazione di dati immutabili ha requisiti di stoccaggio più elevati rispetto ai tradizionali database mutabili. Ogni aggiornamento è memorizzato come un registro diverso, il che aumenta la dimensione del database.

Complessità

I database immutabili sono più complessi perché memorizzano il contesto storico. Il database deve gestire la complessità di memorizzare ogni transazione.

Conformità dei dati

Per progettazione, un database immutabile non cancella mai nessun dato. Tuttavia, la maggior parte dei regolamenti sui dati impone al sistema di cancellare i dati se un utente lo richiede. Questa è una sfida significativa per i database immutabili costruiti sul presupposto che nessun dato venga mai cancellato.

Come fanno i database immutabili a offrire una funzione di cancellazione?

Per loro natura, i database immutabili non forniscono una funzione di cancellazione perché il database stesso è progettato sul principio che i dati non vengono mai cancellati. Tuttavia, come abbiamo visto nella sezione precedente, le norme sulla privacy dei dati danno agli utenti il diritto di essere "dimenticati". Questo richiede che i dati siano cancellati o sovrascritti.

Il crypto-shredding è una soluzione che può essere usata per "sovrascrivere" i dati immutabili. In un database con una struttura di crypto-shredding, i dati immutabili sono memorizzati in un formato criptato. Una chiave di crittografia è necessaria per decifrare i dati personali memorizzati nel database. Tutte queste chiavi sono memorizzate in un database mutabile. Quando c'è una richiesta di sovrascrivere i dati, i dati non vengono cancellati. Invece, la chiave di crittografia associata viene sovrascritta. Con la chiave di crittografia andata, i dati non sono più utili. È come cancellare i dati associati alla chiave di crittografia. Questa è una soluzione accettabile per le regole sulla privacy dei dati dell'Unione Europea.