Gestione delle transazioni DBMS: cosa sono le proprietà ACID?

Sommario:

Anonim

Cos'è una transazione di database?

Una transazione di database è un'unità logica di elaborazione in un DBMS che implica una o più operazioni di accesso al database. In poche parole, le transazioni del database rappresentano eventi del mondo reale di qualsiasi azienda.

Tutti i tipi di operazioni di accesso al database che si svolgono tra le istruzioni di transazione iniziale e finale sono considerati come una singola transazione logica in DBMS. Durante la transazione il database è incoerente. Solo dopo aver eseguito il commit del database, lo stato viene modificato da uno stato coerente a un altro.

In questo tutorial imparerai:

  • Fatti sulle transazioni del database
  • Perché hai bisogno della concorrenza nelle transazioni?
  • Stati delle transazioni
  • Cosa sono le proprietà ACID?
  • Tipi di transazioni
  • Cos'è un programma?

Fatti sulle transazioni del database

  • Una transazione è un'unità di programma la cui esecuzione può o meno modificare il contenuto di un database.
  • Il concetto di transazione nel DBMS viene eseguito come una singola unità.
  • Se le operazioni del database non aggiornano il database ma recuperano solo i dati, questo tipo di transazione viene chiamato transazione di sola lettura.
  • Una transazione riuscita può modificare il database da uno STATO COERENTE a un altro
  • Le transazioni DBMS devono essere atomiche, coerenti, isolate e durevoli
  • Se il database fosse in uno stato incoerente prima di una transazione, rimarrebbe nello stato incoerente dopo la transazione.

Perché hai bisogno della concorrenza nelle transazioni?

Un database è una risorsa condivisa a cui si accede. Viene utilizzato da molti utenti e processi contemporaneamente. Ad esempio, il sistema bancario, i sistemi di prenotazione ferroviaria e aerea, il monitoraggio del mercato azionario, l'inventario dei supermercati e le casse, ecc.

La mancata gestione dell'accesso simultaneo può creare problemi come:

  • Errore hardware e arresti anomali del sistema
  • Esecuzione simultanea della stessa transazione, deadlock o prestazioni lente

Stati delle transazioni

Di seguito sono elencati i vari stati di un concetto di transazione in DBMS:

Stato Tipi di transazione
Stato attivo Una transazione entra in uno stato attivo quando inizia il processo di esecuzione. Durante questo stato è possibile eseguire operazioni di lettura o scrittura.
Parzialmente impegnato Una transazione entra nello stato parzialmente confermato dopo la fine di una transazione.
Stato impegnato Quando la transazione viene confermata sullo stato, ha già completato con successo la sua esecuzione. Inoltre, tutte le sue modifiche vengono registrate nel database in modo permanente.
Stato fallito Una transazione viene considerata non riuscita quando uno qualsiasi dei controlli fallisce o se la transazione viene interrotta mentre si trova nello stato attivo.
Stato terminato Lo stato della transazione raggiunge lo stato terminato quando alcune transazioni che stanno lasciando il sistema non possono essere riavviate.
Diagramma di transizione di stato per una transazione di database

Studiamo un diagramma di transizione di stato che evidenzia come si muove una transazione tra questi vari stati.

  1. Una volta che una transazione dichiara l'esecuzione, diventa attiva. Può eseguire operazioni di lettura o scrittura.
  2. Una volta completate le operazioni di LETTURA e SCRITTURA, lo stato delle transazioni diventa parzialmente confermato.
  3. Successivamente, alcuni protocolli di ripristino devono garantire che un errore di sistema non comporti l'impossibilità di registrare le modifiche nella transazione in modo permanente. Se questo controllo ha esito positivo, la transazione viene confermata ed entra nello stato di commit.
  4. Se il controllo ha esito negativo, la transazione passa allo stato Non riuscita.
  5. Se la transazione viene interrotta mentre è nello stato attivo, passa allo stato non riuscito. È necessario eseguire il rollback della transazione per annullare l'effetto delle sue operazioni di scrittura sul database.
  6. Lo stato terminato si riferisce alla transazione che lascia il sistema.

Cosa sono le proprietà ACID?

Le proprietà ACID vengono utilizzate per mantenere l'integrità del database durante l'elaborazione delle transazioni. ACID nel DBMS acronimo di A tomicity, C OERENZA, ho consolazione, e D urability.

  • Atomicità: una transazione è una singola unità operativa. O lo esegui interamente o non lo esegui affatto. Non può esserci un'esecuzione parziale.
  • Coerenza: una volta eseguita, la transazione dovrebbe passare da uno stato coerente a un altro.
  • Isolamento: la transazione deve essere eseguita separatamente dalle altre transazioni (nessun blocco). Durante l'esecuzione di transazioni simultanee, i risultati delle transazioni intermedie da transazioni eseguite simultaneamente non dovrebbero essere resi disponibili l'uno all'altro. (Livello 0,1,2,3)
  • Durata: · Dopo il completamento con successo di una transazione, le modifiche nel database dovrebbero persistere. Anche in caso di guasti al sistema.

Proprietà ACID in DBMS con esempio:

Di seguito è riportato un esempio di proprietà ACID in DBMS:

Transaction 1: Begin X=X+50, Y = Y-50 ENDTransaction 2: Begin X=1.1*X, Y=1.1*Y END

La transazione 1 trasferisce $ 50 dall'account X all'account Y.

La transazione 2 accredita a ciascun account un pagamento di interessi del 10%.

Se entrambe le transazioni vengono inviate insieme, non vi è alcuna garanzia che la Transazione 1 venga eseguita prima della Transazione 2 o viceversa. Indipendentemente dall'ordine, il risultato deve essere come se le transazioni avvengano in serie una dopo l'altra.

Tipi di transazioni

Basato su aree di applicazione

  • Non distribuito vs. distribuito
  • Transazioni compensative
  • Tempistica delle transazioni
  • On-line vs. batch

Basato su azioni

  • Due passi
  • Limitato
  • Modello di azione

Basato sulla struttura

  • Transazioni semplici o semplici: consiste in una sequenza di operazioni primitive eseguite tra un'operazione di inizio e di fine.
  • Transazioni nidificate: una transazione che contiene altre transazioni.
  • Flusso di lavoro

Cos'è un programma?

Una pianificazione è un processo che crea un singolo gruppo di più transazioni parallele e le esegue una per una. Dovrebbe mantenere l'ordine in cui le istruzioni appaiono in ogni transazione. Se due transazioni vengono eseguite contemporaneamente, il risultato di una transazione può influenzare l'output di un'altra.

Esempio

Initial Product Quantity is 10Transaction 1: Update Product Quantity to 50Transaction 2: Read Product Quantity

Se la Transazione 2 viene eseguita prima della Transazione 1, verranno lette informazioni obsolete sulla quantità del prodotto. Quindi, sono necessari orari.

L'esecuzione parallela in un database è inevitabile. Tuttavia, l'esecuzione parallela è consentita quando esiste una relazione di equivalenza tra le transazioni in esecuzione simultanea. Questa equivalenza è di 3 tipi.

EQUIVALENZA DEI RISULTATI:

Se due pianificazioni visualizzano lo stesso risultato dopo l'esecuzione, si parla di pianificazione equivalente al risultato. Possono offrire lo stesso risultato per un valore e risultati diversi per un altro insieme di valori. Ad esempio, una transazione aggiorna la quantità del prodotto, mentre l'altra aggiorna i dettagli del cliente.

Visualizza l'equivalenza

L'equivalenza di visualizzazione si verifica quando la transazione in entrambe le pianificazioni esegue un'azione simile. Esempio, una transazione inserisce i dettagli del prodotto nella tabella dei prodotti, mentre un'altra transazione inserisce i dettagli del prodotto nella tabella dell'archivio. La transazione è la stessa, ma le tabelle sono diverse.

CONFLITTO Equivalenza

In questo caso, due transazioni aggiornano / visualizzano lo stesso set di dati. C'è un conflitto tra le transazioni poiché l'ordine di esecuzione influenzerà l'output.

Cos'è la serializzabilità?

La serializzabilità è il processo di ricerca di una pianificazione simultanea il cui output è uguale a una pianificazione seriale in cui le transazioni ae vengono eseguite una dopo l'altra. A seconda del tipo di pianificazioni, esistono due tipi di serializzabilità:

  • Conflitto
  • Visualizza

Sommario:

  • La gestione delle transazioni è un'unità logica di elaborazione in un DBMS che implica una o più operazioni di accesso al database
  • È una transazione è un'unità di programma la cui esecuzione può o meno modificare il contenuto di un database.
  • La mancata gestione dell'accesso simultaneo può creare problemi come guasti hardware e arresti anomali del sistema.
  • Attiva, parzialmente impegnata, impegnata, non riuscita e terminata sono stati di transazione importanti.
  • La forma completa delle proprietà ACID in DBMS è Atomicity, Consistency, Isolation e Durability
  • Tre tipi di transazioni DBMS sono Base su aree di applicazione, Azione e Struttura.
  • Una pianificazione è un processo che crea un singolo gruppo di più transazioni parallele e le esegue una per una.
  • La serializzabilità è il processo di ricerca di una pianificazione simultanea il cui output è uguale a una pianificazione seriale in cui le transazioni vengono eseguite una dopo l'altra.