Vai a

Che cosa sono i database transazionali?

I database transazionali sono ottimizzati per l'esecuzione di sistemi di produzione, dai siti web alle banche fino ai negozi al dettaglio. Questi database si distinguono per la rapidità di lettura e scrittura di singole righe di dati senza alterarne l'integrità.

Panoramica dei database transazionali

I database transazionali sono archivi di righe, il che significa che i dati sono archiviati su disco come righe anziché come colonne. Gli archivi di righe sono molto utili quando devi sapere tutto su un cliente nella tabella utente, poiché puoi ottenere solo i dati che ti servono. Tuttavia, non sono ottimali quando cerchi di conteggiare i clienti di un determinato codice postale, poiché devi caricare non solo la colonna codice postale, ma anche le colonne nome, indirizzo e user_id.

I database transazionali non sono progettati in modo specifico per l'analisi, ma spesso diventano veri e propri ambienti analitici essendo già utilizzati come database di produzione. Poiché esistono da decenni, sono familiari, accessibili e diffusi ovunque.

Se la tua organizzazione non dispone di uno stack di analisi distinto già esistente, uno dei modi più rapidi per iniziare l'analisi è creare una replica del database transazionale. Questo garantisce che le query analitiche non ostacolino accidentalmente le query di produzione business critical, richiedendo al contempo una configurazione aggiuntiva minima. Lo svantaggio è che questi database sono progettati per l'elaborazione delle transazioni, non dell'analisi. Il loro utilizzo per l'analisi è un ottimo punto di partenza, ma potresti incorrere in limitazioni e avere bisogno di soluzioni alternative prima di una configurazione specifica dell'analisi.

Quali sono i vantaggi dei database transazionali?

I database transazionali sono ideali per:

Integrità dei dati garantita

L'architettura dei database transazionali è conforme agli standard ACID, che assicurano che le scritture sul database vengano eseguite correttamente o meno insieme, mantenendo un livello elevato di integrità dei dati durante la scrittura dei dati nel database. I database transazionali sono pertanto fondamentali per le transazioni aziendali in cui è necessario un elevato livello di integrità dei dati (l'esempio canonico è il settore bancario dove è necessaria un'intera transazione, con addebito su un conto e accredito su un altro conto, per riuscire o meno).

Bassa latenza

Poiché i database transazionali sono progettati per eseguire sistemi di produzione, sono ideali per le operazioni che devono essere completate in millisecondi. Se stai eseguendo l'analisi su una replica transazionale del tuo database di produzione, è probabile che la replica sia quasi sincronizzata con il database principale, ovvero con latenza inferiore al secondo.

Monitoraggio dei sistemi operativi

L'utilizzo dei dati di database transazionali per fornire uno snapshot operativo in tempo reale è un caso d'uso analitico perfetto per i database transazionali, in quanto la replica presenta una latenza molto ridotta. Se stai cercando di monitorare i carichi di lavoro del supporto o l'inventario o un altro sistema operativo e devi prendere decisioni basate su dati quanto più possibile aggiornati, la replica del database di produzione potrebbe essere l'opzione migliore.

Che cos'è la transazione ACID nel database?

ACID è un insieme di proprietà che descrivono l'architettura dei database transazionali per mantenere l'integrità delle scritture sul database. Di seguito sono riportate le definizioni di ogni proprietà:

Atomicità

Se anche solo una parte della transazione ha esito negativo, l'intera transazione non va a buon fine. Pertanto, ogni transazione deve essere completata al 100% per essere registrata sul database.

Coerenza

Una transazione viene scritta nel database (portando il database da uno stato valido a un altro) oppure la transazione viene ripristinata.

Isolamento

Le transazioni non ancora completate non possono essere eseguite o modificate da altre transazioni.

Durabilità

Le transazioni scritte nel database rimangono disponibili, anche in caso di errore del database.