ACID: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m →Bibliografia: Aggiunto autore |
m sistemazione fonti, smistamento lavoro sporco e fix vari |
||
(8 versioni intermedie di 6 utenti non mostrate) | |||
Riga 1:
{{Nota disambigua|
{{NN|informatica|marzo 2024}}
{{S|sistema operativo}}
Nell'ambito dei [[database]], '''ACID''' è un [[acronimo]] che riassume quattro proprietà particolarmente desiderabili in un [[DBMS]], ovvero: '''A'''tomicità, '''C'''oerenza, '''I'''solamento e '''D'''urabilità ({{lett|Atomicity, Consistency, Isolation, and Durability|lingua=en}}). Queste vengono tipicamente soddisfatte attraverso l'[[implementazione]] del meccanismo delle [[transazione (basi di dati)|transazioni]].
== Descrizione ==
=== Atomicità ===
* '''Atomica''': il processo deve essere suddivisibile in un numero finito di unità indivisibili, chiamate ''transazioni''. L'esecuzione di una transazione perciò deve essere per definizione o totale o nulla, e non sono ammesse esecuzioni parziali; un processo, anche parziale, invece, in quanto insieme di transazioni può non essere elementare.▼
*'''Coerente''': il database rispetta i [[vincolo di integrità|vincoli di integrità]], sia a inizio che a fine transazione. Non devono verificarsi contraddizioni (''incoerenza dei dati'') tra i dati archiviati nel DB;▼
* '''Isolata''': ogni transazione deve essere eseguita in modo isolato e indipendente dalle altre transazioni, l'eventuale fallimento di una transazione non deve interferire con le altre transazioni in esecuzione;▼
* '''Durevole''': detta anche '''persistente''', si riferisce al fatto che una volta che una transazione abbia richiesto un ''commit work'', i cambiamenti apportati non dovranno essere più persi. Per evitare che nel lasso di tempo fra il momento in cui la base di dati si impegna a scrivere le modifiche e quello in cui le scrive effettivamente si verifichino perdite di dati dovuti a malfunzionamenti, vengono tenuti dei registri di log dove sono annotate tutte le operazioni sul DB.▼
▲
=== Coerenza ===
▲
=== Isolamento ===
▲
Sono previsti quattro livelli di isolamento:
# ''' read uncommitted''':
Riga 20 ⟶ 24:
#: Esempi:
#: T1 aggiorna una riga r1
#:
#:
#:
# '''read committed:'''
#* prevede il rilascio immediato dei dati in lettura, ritardando quelli in scrittura
Riga 32 ⟶ 36:
#: Potrebbe garantire l'effettiva serializzabilità del codice bloccando gli accessi alle tabelle in gioco, tuttavia si tratta di soluzioni troppo inefficienti per essere utilizzate in applicazioni critiche, in realtà la modalità serializzata si limita a evitare i fenomeni esaminati per i livelli più bassi di isolamento.
=== Durabilità ===
▲
== Bibliografia ==
* {{cita libro|autore = Paolo Atzeni|autore2 = Stefano Ceri|autore3 = Piero Fraternali|autore4 = Stefano Paraboschi|autore5 = Riccardo Torlone|titolo = Basi di dati|editore = McGraw-Hill|anno = 2018|edizione = 5|città = Milano|ISBN = 978-88-386-9445-5|cid = Atzeni 2018}}
* {{cita libro|autore = Francis Botto|titolo = Dictionary of e‐Business: A Definitive Guide to Technology and Business Terms|url = https://archive.org/details/dictionaryofebus00bott|editore = Wiley|città = Hoboken|anno = 2003|lingua = en|doi = 10.1002/0470861886|ISBN = 9780470844700}}
* {{cita libro|autore = Francis Botto|titolo = Dictionary of Multimedia and Internet Applications: A Guide for Developers and Users|url = https://archive.org/details/isbn_9780471986249|editore = Wiley|città = Hoboken|anno = 1999|lingua = en|ISBN = 9780471986249}}
== Altri progetti ==
|