logo

Proprietà ACID nel DBMS

UN transazione è una singola unità logica di lavoro che accede ed eventualmente modifica il contenuto di un database. Le transazioni accedono ai dati utilizzando operazioni di lettura e scrittura.
Per mantenere la coerenza in un database, prima e dopo la transazione, vengono seguite alcune proprietà. Questi sono chiamati ACIDO proprietà.

Per coloro che desiderano padroneggiare questi concetti ed eccellere in esami come CANCELLO , Nostro Corso GATE offre un'esplorazione approfondita dei sistemi di gestione dei database. Copriremo tutto, dalle nozioni di base agli argomenti avanzati, garantendo una comprensione approfondita essenziale per ottenere punteggi elevati e applicazioni pratiche

Atomicita:

Con questo intendiamo che l’intera transazione avviene in una sola volta oppure non avviene affatto. Non esiste una via di mezzo, ovvero le transazioni non avvengono parzialmente. Ogni transazione è considerata come un'unità e viene eseguita fino al completamento o non viene eseguita affatto. Implica le due operazioni seguenti.
Interrompere : Se una transazione viene interrotta, le modifiche apportate al database non sono visibili.
Commettere : Se una transazione viene confermata, le modifiche apportate sono visibili.
L’atomicità è anche conosciuta come la “regola tutto o niente”.



Consideriamo la seguente transazione T consiste in T1 E T2 : Trasferimento di 100 dal conto X per conto E .

Se la transazione fallisce dopo il completamento di T1 ma prima del completamento di T2 .( dire, dopo scrivere(X) ma prima scrivere(Y) ), l'importo è stato detratto da X ma non aggiunto E . Ciò si traduce in uno stato del database incoerente. Pertanto, la transazione deve essere eseguita nella sua interezza per garantire la correttezza dello stato del database.

Consistenza:

Ciò significa che i vincoli di integrità devono essere mantenuti in modo che il database sia coerente prima e dopo la transazione. Si riferisce alla correttezza di un database. Facendo riferimento all’esempio sopra,
L'importo totale prima e dopo la transazione deve essere mantenuto.
Totale prima di t avviene = 500 + 200 = 700 .
Totale dopo che si verifica T = 400 + 300 = 700 .
Pertanto, il database è coerente . L'incoerenza si verifica nel caso T1 completa ma T2 non riesce. Di conseguenza, T è incompleto.

Isolamento:

Questa proprietà garantisce che più transazioni possano verificarsi contemporaneamente senza causare incoerenze nello stato del database. Le transazioni avvengono in modo indipendente senza interferenze. Le modifiche che si verificano in una particolare transazione non saranno visibili a nessun'altra transazione finché quella particolare modifica in quella transazione non verrà scritta nella memoria o sarà stata confermata. Questa proprietà garantisce che l'esecuzione simultanea di transazioni si tradurrà in uno stato equivalente a uno stato raggiunto in cui queste sono state eseguite in serie in un certo ordine.
Permettere X = 500, E = 500.
Consideriamo due transazioni T E T.

Supponiamo T è stato giustiziato fino al Pronto) poi T'' inizia. Di conseguenza, avviene l'interlacciamento delle operazioni a causa del quale T'' legge il valore corretto di X ma il valore errato di E e somma calcolata da
T’’: (X+Y = 50.000+500=50.500)
non è quindi coerente con la somma al termine della transazione:
T: (X+Y = 50.000 + 450 = 50.450) .
Ciò provoca un'incoerenza del database, a causa di una perdita di 50 unità. Pertanto, le transazioni devono avvenire in modo isolato e le modifiche dovrebbero essere visibili solo dopo essere state apportate alla memoria principale.

Durabilità:

Questa proprietà garantisce che una volta completata l'esecuzione della transazione, gli aggiornamenti e le modifiche al database vengono archiviati e scritti su disco e persistono anche se si verifica un errore di sistema. Questi aggiornamenti ora diventano permanenti e vengono archiviati nella memoria non volatile. Gli effetti dell'operazione, quindi, non si perdono mai.

Alcuni punti importanti:

Proprietà Responsabilità del mantenimento degli immobili
Atomicita Responsabile delle transazioni
Consistenza Programmatore di applicazioni
Isolamento Responsabile del controllo della concorrenza
Durabilità Responsabile del recupero

IL ACIDO le proprietà, nel complesso, forniscono un meccanismo per garantire la correttezza e la coerenza di un database in modo tale che ogni transazione sia un gruppo di operazioni che agisce come una singola unità, produce risultati coerenti, agisce in isolamento dalle altre operazioni e le aggiorna rende sono conservati in modo duraturo.

Le proprietà ACID sono le quattro caratteristiche chiave che definiscono l'affidabilità e la coerenza di una transazione in un sistema di gestione del database (DBMS). L'acronimo ACID sta per Atomicità, Coerenza, Isolamento e Durabilità. Ecco una breve descrizione di ciascuna di queste proprietà:

  1. Atomicità: l'atomicità garantisce che una transazione venga trattata come un'unità di lavoro singola e indivisibile. O tutte le operazioni all'interno della transazione sono state completate con successo, oppure nessuna di esse lo è. Se una qualsiasi parte della transazione fallisce, l'intera transazione viene ripristinata al suo stato originale, garantendo la coerenza e l'integrità dei dati.
  2. Coerenza: la coerenza garantisce che una transazione porti il ​​database da uno stato coerente a un altro stato coerente. Il database è in uno stato coerente sia prima che dopo l'esecuzione della transazione. I vincoli, come chiavi univoche e chiavi esterne, devono essere mantenuti per garantire la coerenza dei dati.
  3. Isolamento: l'isolamento garantisce che più transazioni possano essere eseguite contemporaneamente senza interferire tra loro. Ogni transazione deve essere isolata dalle altre transazioni finché non viene completata. Questo isolamento impedisce letture sporche, letture non ripetibili e letture fantasma.
  4. Durabilità: la durabilità garantisce che una volta effettuata una transazione, le sue modifiche siano permanenti e sopravvivranno a eventuali successivi guasti del sistema. Le modifiche della transazione vengono salvate nel database in modo permanente e, anche se il sistema si blocca, le modifiche rimangono intatte e possono essere recuperate.

Nel complesso, le proprietà ACID forniscono un quadro per garantire la coerenza, l'integrità e l'affidabilità dei dati nel DBMS. Garantiscono che le transazioni vengano eseguite in modo affidabile e coerente, anche in presenza di guasti di sistema, problemi di rete o altri problemi. Queste proprietà rendono DBMS uno strumento affidabile ed efficiente per la gestione dei dati nelle organizzazioni moderne.

Vantaggi delle proprietà ACID nel DBMS:

  1. Coerenza dei dati: le proprietà ACID garantiscono che i dati rimangano coerenti e accurati dopo l'esecuzione di qualsiasi transazione.
  2. Integrità dei dati: le proprietà ACID mantengono l'integrità dei dati garantendo che eventuali modifiche al database siano permanenti e non vadano perse.
  3. Controllo della concorrenza: le proprietà ACID aiutano a gestire più transazioni che si verificano contemporaneamente prevenendo interferenze tra di loro.
  4. Recupero: le proprietà ACID assicurano che in caso di guasto o arresto anomalo, il sistema possa recuperare i dati fino al punto di guasto o arresto anomalo.

Svantaggi delle proprietà ACID nel DBMS:

  1. Prestazioni: le proprietà ACID possono causare un sovraccarico delle prestazioni del sistema, poiché richiedono un'elaborazione aggiuntiva per garantire la coerenza e l'integrità dei dati.
  2. Scalabilità: le proprietà ACID possono causare problemi di scalabilità in sistemi distribuiti di grandi dimensioni in cui si verificano più transazioni contemporaneamente.
  3. Complessità: l'implementazione delle proprietà ACID può aumentare la complessità del sistema e richiedere competenze e risorse significative.
    Nel complesso, i vantaggi delle proprietà ACID nei DBMS superano gli svantaggi. Forniscono un approccio affidabile e coerente ai dati
  4. gestione, garantendo l’integrità, l’accuratezza e l’affidabilità dei dati. Tuttavia, in alcuni casi, il sovraccarico derivante dall'implementazione delle proprietà ACID può causare problemi di prestazioni e scalabilità. Pertanto, è importante bilanciare i vantaggi delle proprietà ACID con le esigenze e i requisiti specifici del sistema.