日期:2014-05-16  浏览次数:20593 次

事物的4大特性——个人浅解
1、原子性:
当一个事物中有多条sql语句,当任何一条SQL语句执行失败,整个事物中的执行成功的sql语句都会进行回滚。只有当所有的SQL语句都执行成功,事物才会进行提交。

2、一致性:
到银行转账时,你转了1000元给对方,那么你的银行卡一定会少1000元,对方的银行卡一定会多出1000元。但是两个人的总钱数还是不变的。

3、隔离性:
当两个不同的事物对同一个数据进行处理时,两个事物不会相互影响,一定会有个先有个后,一定不会出现两个事物同时操作此数据。

4、持久性:
当执行事物成功之后,数据库会永久性的保持在数据库中。


官方定义:
Atomic(原子性)

指整个数据库事务是不可分割的工作单位。只有使据库中所有的操作执行成功,才算整个事务成功;事务中任何一个SQL语句执行失败,那么已经执行成功的SQL语句也必须撤销,数据库状态应该退回到执行事务前的状态。

Consistency(一致性)


指数据库事务不能破坏关系数据的完成性以及业务逻辑上的一致性。例如对银行转帐事务,不管事务成功还是失败,应该保证事务结束后A帐号与B帐号加起来还是那些钱。


Isolation(隔离性)


分离性指并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它企图进行修改的事务看到。
  分离性是DBMS针对并发事务间的冲突提供的安全保证。DBMS可以通过加锁在并发执行的事务间提供不同级别的分离。假如并发交叉执行的事务没有任何控制,操纵相同的共享对象的多个并发事务的执行可能引起异常情况。分离性指并发

Durability(持久性)

持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即一旦一个事务提交,DBMS保证它对数据库中数据的改变应该是永久性的,耐得住任何系统故障。持久性通过数据库备份和恢复来保证。
持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即对已提交事务的更新能恢复。一旦一个事务被提交,DBMS必须保证提供适当的冗余,使其耐得住系统的故障。所以,持久性主要在于DBMS的恢复性能。