数据库事物的四特性

数据库事物的四特性(ACID)

⑴ 原子性(atomicity)

原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。

例如:银行存款,我们要么存款成功,银行卡增加相应的金额,要么存款失败,银行卡一分钱都没变。不能发生,存款失败了,然而银行卡中的金额增加或者减少,这就违背了事物的原子性。

⑵ 一致性(consistency)

一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态。

例如:甲乙转账,假设用户甲和用户乙两者各有5000元,一共10000,用户甲向用户乙转账1000,那么相应的甲的存款少1000变为4000,乙的存款增加1000元到6000元,转账完成后两者的总金额(4000+6000)任然是10000元,和最开始两者的总金额(5000+5000)一致,这就是事务的一致性。

⑶ 隔离性(isolation)

隔离性是当多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间相互隔离。

例如:多个用户向自己的账号里存款,每个用户之间的操作是互不干扰的,自己的金额存入到自己的银行卡中。假如违背了事物的隔离性,那么事物操作相互干扰,有可能发生甲用户存款到乙的账户中,乙存款存到别人的账户中,取款可能发生取走的是别人账户的钱。

⑷ 持久性(durability)

持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。

例如:银行存款时,在提交存款后,提示用户操作完成,当我们看到操作完成提示后,就可以认定事务正确提交,即使银行管理出现了问题,也会将我们的事务完全执行,否则就会造成存款因为故障而没有操作完成重大的错误。

猜你喜欢

转载自blog.csdn.net/darkman_ex/article/details/80820907
今日推荐