Pour comprendre l'atomicité et les portées atomiques, considérez la séquence d'opérations non atomique suivante pour modifier le solde bancaire d'un utilisateur :
1. Lisez le solde de la banque.
2. Soustrayez le montant de la transaction du solde.
3. Écrivez le solde à la banque.
Pour que ces opérations réussissent, la base de données doit être verrouillée entre la lecture et l'écriture, sinon une autre transaction risque d'écrire dans la base de données entre ces deux opérations. De plus, si quelque chose ne va pas pendant la transaction (par exemple, la base de données se déconnecte pendant l'opération d'écriture), l'opération doit échouer complètement et la base de données doit être restaurée dans l'état dans lequel elle se trouvait avant le début de la transaction.
Avec l’atomicité, la série d’opérations se comporte comme une seule opération, ou échoue complètement. Autrement dit, le code permettant d'effectuer une opération donnée est enfermé dans une *portée atomique*, et si une opération de la séquence échoue, la transaction entière est annulée, comme si aucune des opérations de la séquence n'avait jamais eu lieu.
Un scope atomique garantit :
1. Si aucune opération dans la portée n’échoue, toutes les opérations se produisent ;
2. Si une opération dans la portée échoue, aucune des opérations n'a lieu ; et
3. Si une opération commence à échouer, toutes les opérations déjà effectuées sont immédiatement annulées, restaurant ainsi le système à son état avant le début de l'une des opérations.