ACID: Atomic, Consistent, Isolated, & Durable (Italiano)

postato in: Articles | 0

Non penso che sia un’esagerazione dire che i dati sono piuttosto importanti. I dati sono particolarmente importanti per le organizzazioni moderne. In effetti, l’economista è arrivato al punto di dire che i dati hanno superato il petrolio come risorsa più preziosa del mondo, e questo è tornato in 2017.

Uno dei problemi con i dati è l’enorme quantità di esso che deve essere elaborato su base giornaliera., Ci sono così tanti dati che volano in tutto il mondo in questi giorni che dobbiamo trovare un nuovo termine solo per esprimere quanti dati ci sono: big data. Certo, non è il termine più impressionante dal suono là fuori, ma resta il fatto.

Con tutti questi big data là fuori, le organizzazioni stanno cercando modi per migliorare il modo in cui gestiscono il tutto da un punto di vista pratico, computazionale e di sicurezza. Come lo zio di Spiderman Ben disse una volta, ” Con grande viene grande responsabilità.” Il metodo migliore che il mondo IT ha creato per navigare nelle complessità della gestione dei dati è attraverso l’uso di database.,

Che cos’è un database?

I database sono insiemi strutturati di dati memorizzati all’interno dei computer. Spesso, i database sono memorizzati su intere server farm piene di computer creati appositamente per la gestione di tali dati e dei processi necessari per farne uso.

I database moderni sono sistemi così complessi che i sistemi di gestione sono stati progettati per gestirli. Questi sistemi di gestione dei database (DBMS) cercano di ottimizzare e gestire l’archiviazione e il recupero dei dati all’interno dei database.,

Una delle stelle guida che portano le organizzazioni alla gestione di database di successo è l’approccio ACID.

Che cos’è l’ACIDO?

Nel contesto dell’informatica, ACID (Atomicità, Coerenza, Isolamento, durata) è un insieme di principi guida che possono garantire che le transazioni del database possano essere elaborate in modo affidabile. Una transazione di database è qualsiasi operazione eseguita all’interno di un database, ad esempio la creazione di un nuovo record o l’aggiornamento dei dati all’interno di uno.

Le modifiche apportate all’interno di un database devono essere eseguite con cura per garantire che i dati all’interno non vengano danneggiati., L’applicazione delle proprietà ACID a ciascuna modifica di un database è il modo migliore per mantenere l’accuratezza e l’affidabilità di un database. Diamo un’occhiata a ciascun componente dell’ACIDO.

Atomicity

Nel contesto dei database, atomicity significa che ti impegni all’intera transazione che si verifica o che non hai alcuna transazione., In sostanza, una transazione atomica garantisce che qualsiasi commit effettuato completi correttamente l’intera operazione o, in caso di perdita della connessione nel mezzo di un’operazione, il database viene ripristinato al suo stato prima dell’avvio del commit.

Questo è importante per evitare arresti anomali o interruzioni di creare casi in cui la transazione è stata parzialmente completata in uno stato generale sconosciuto. Se si verifica un arresto anomalo durante una transazione senza atomicità, non è possibile sapere esattamente fino a che punto si trovava il processo prima che la transazione venisse interrotta., Utilizzando atomicity, assicurati che l’intera transazione sia stata completata correttamente o che non lo sia stata.

Coerenza

Coerenza si riferisce al mantenimento dei vincoli di integrità dei dati. Una transazione coerente non violerà i vincoli di integrità posti sui dati dalle regole del database. L’applicazione della coerenza garantirà che se un database entra in uno stato illegale (se si verifica una violazione dei vincoli di integrità dei dati) il processo verrà interrotto e le modifiche verranno ripristinate allo stato legale precedente.,

Un altro modo per garantire la coerenza all’interno di un database durante ogni transazione è anche applicando i vincoli dichiarativi posti sul database. Un esempio di vincolo dichiarativo potrebbe essere che tutti i conti cliente devono avere un saldo positivo. Se una transazione porterebbe un conto cliente in un saldo negativo, tale transazione verrebbe ripristinata. Ciò garantisce che le modifiche abbiano successo nel mantenere l’integrità dei dati o che vengano annullate completamente.,

Isolamento

Le transazioni isolate sono considerate “serializzabili”, il che significa che ogni transazione avviene in un ordine distinto senza transazioni che si verificano in tandem. Qualsiasi lettura o scrittura eseguita sul database non sarà influenzata da altre letture e scritture di transazioni separate che si verificano sullo stesso database. Viene creato un ordine globale con ogni transazione in coda per garantire che le transazioni vengano completate nella loro interezza prima che ne inizi un’altra.

Questo non significa che due operazioni non possano accadere allo stesso tempo., Possono verificarsi transazioni multiple purché tali transazioni non abbiano alcuna possibilità di influire sulle altre transazioni che si verificano contemporaneamente. In questo modo può avere un impatto sulla velocità delle transazioni in quanto potrebbe costringere molte operazioni ad attendere prima che possano iniziare. Tuttavia, questo compromesso vale la sicurezza dei dati aggiunta fornita dall’isolamento.

L’isolamento può essere realizzato attraverso l’uso di una scala mobile di permissività che va tra quelle che vengono chiamate transazioni ottimistiche e transazioni pessimistiche., Uno schema di transazione ottimistico presuppone che altre transazioni vengano completate senza leggere o scrivere nello stesso posto due volte. Con lo schema ottimistico, entrambe le transazioni verranno interrotte e riprovate nel caso in cui una transazione colpisca due volte lo stesso posto.

Lo schema di transazione pessimistico offre meno libertà e bloccherà le risorse partendo dal presupposto che le transazioni avranno un impatto su altre. Ciò si traduce in un minor numero di abort e tentativi, ma significa anche che le transazioni sono costrette ad aspettare in fila per il loro turno più spesso rispetto all’approccio ottimistico delle transazioni., Trovare un punto debole tra questi due ideali è spesso dove si trova il miglior risultato complessivo.

Durabilità

L’aspetto finale dell’approccio ACID alla gestione del database è la durabilità. La durabilità garantisce che le modifiche apportate al database (transazioni) eseguite con successo sopravvivano in modo permanente, anche in caso di errori di sistema. Ciò garantisce che i dati all’interno del database non vengano danneggiati da interruzioni del servizio, arresti anomali o altri casi di errore., Questo risultato è ottenuto attraverso l’uso di changelog a cui si fa riferimento quando i database (o parti del database) vengono riavviati.

Quando ogni aspetto dell’approccio ACID viene riunito con successo, i database vengono mantenuti con la massima integrità e sicurezza dei dati per garantire che possano continuare a fornire valore all’organizzazione. Un database con dati danneggiati può presentare problemi costosi a causa dell’enorme enfasi che le organizzazioni pongono sui propri dati sia per le operazioni quotidiane che per l’analisi strategica.,

L’utilizzo delle proprietà ACID con il database garantirà che il database continui a fornire dati preziosi durante le operazioni.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *