事务及事务隔离
一、事务的概念 :事务是由一条或者是多条对数据库操作的SQL语句组成的一个不可分割的单元,只有当事务中的所有的操作都正常成功执行时,整个事务才提交给数据库。 注意:1.事务是一组SQL语句的执行,要么全部执行成功,要么全部执行失败,不能出现部分成功和失败,以保证原子操作 。 2、事务中所有的数据执行成功,才能提交(commit)事务,把结果写入磁盘。 3、事务在执行过程中,有SQL出现了错误,事务必须回滚(rollback)到最初的状态。 二、事务的作用 事务管理对于企业级应用而言至关重要,它保证了用户的每一次操作都是可靠的,即便出现了异常的访问情况,也不至于破坏后台数据的完整性。就像银行的自动提款机ATM,通常ATM都可以正常为客户服务,但是也难免遇到操作过程中及其突然出故障的情况,此时,事务就必须确保出故障前对账户的操作不生效,就像用户刚才完全没有使用过ATM机一样,以保证用户和银行的利益都不受损失。 三、 事务的ACID特征:(4个) 1、原子性(atomic) 事务是一个不可分割的整体,必须具有原子特性,即不可分割,事务要么全部被执行,要么全部不执行。如果事务的所有子事务全部提交成功,则所有的数据库操作被提交,数据库状态发生变化;如果有子事务失败,则其他子事务的数据库操作被回滚,即数据库回到事务执行前的状态,不会发生状态转换 2、一致性(consistency)