<> What is? ACID?
ACID, Refers to the reliable database management system （DBMS） in , affair (transaction) Four characteristics that should be possessed ： Atomicity （Atomicity）, uniformity （Consistency）, Isolation （Isolation）, persistence （Durability）. These are the characteristics of a reliable database . therefore ACID It is the abbreviation of these four characteristics .
* Atomicity （Atomicity）
Atomicity means that transactions in the database are executed as atoms . That is, it cannot be further divided , The entire statement is either executed , Either not .
stay SQL SERVER in , Each individual statement can be considered to be included in a transaction by default , Each statement is atomic in itself , Or do it all , This is not the case , There will be no intermediate state :
for example ：
Bank transfer function , from A Account minus 100, stay B Account increase 100, If these two statements do not guarantee atomicity , For example, from A Account minus 100 after , Server power down , And in the B There was no increase in the account 100. Although this situation will make the bank happy , But as a developer, you don't want that to happen . In the default transaction , Even if there is an error, the whole transaction will not be rolled back . Instead, the failed statement throws an exception , The correct statement is executed successfully . This will destroy atomicity . therefore SQL
SERVER Some options are given to ensure the atomicity of the transaction .
* uniformity (Consistency)
Consistency is before the start of a transaction and after the end of a transaction , The integrity constraints of the database are not broken .
Consistency is reflected in two levels ：
1. Database mechanism level
Consistency at the database level is , Before and after the execution of a transaction , The data will meet the constraints you set （ Unique constraint , Foreign key constraint ,Check Constraints, etc ) And trigger settings . This is due to SQL
SERVER Guaranteed .
2. Business level
For the business level , Consistency is business consistency . This business consistency needs to be guaranteed by developers . The consistency of many business aspects can be guaranteed by transferring to the database mechanism level . such as , There are only two models , Can be transferred to use CHECK The constraint requires that only these two models can be stored in a column .
* Isolation （Isolation)
Isolation . The execution of transactions does not interfere with each other , It is not possible for one transaction to see the other transaction runtime , Data at a certain time in the middle .
stay Windows in , If multiple processes modify the same file, it is not allowed ,Windows In this way, the isolation of different processes is guaranteed , and SQL Server in , adopt SQL
SERVER Manage the database files , This allows multiple processes to access the database at the same time :SQL Server Locking and blocking are used to ensure the isolation of different levels between transactions .
Normally , Complete isolation is unrealistic , Complete isolation requires the database to execute only one transaction at a time , Such performance can be imagined . Want to understand SQL
Server Protection of isolation in China , First, understand how transactions interfere . There are several types of interactions between transactions , Respectively : Dirty reading (Dirty Read), Non repeatable , Illusory reading .
* persistence （Durability)
persistence , After the transaction is completed , The changes made by the firm to the database are persisted in the database , It will not be rolled back .
Even if there is any accident, such as power failure , Once the transaction is committed , The persistence is stored in the database .