事务
事务【一系列的操作序列】(逻辑工作单位):是维护数据库的完整性,保证一系列的SQL语句要么全部执行,要么全不执行;(例如:用户A 给用户B转账,首先A的卡要减去你转账的金额,B的卡要加上你转账的金额,这才是转账成功。这是一个完整的过程,所以可以称之为一个事务。)
单单一条SQL语句可以称之为事务吗?不是
事务特点
- 原子性:操作序列不可拆分,例如上面的转账。
- 一致性:事务执行的结果必须从一种一致性转换为另外一种一种性,也就是只有转账减去的金额和加上的金额是一样的,才可以保证一致性。(你可以想象一下,你给B转账了100000元,但是B只接收到了100元,这就不一致了。如果是这样就不是转账了,你就应该拨打110报警电话了~~)
- 隔离性:事务之间是相互独立的,执行互不干扰。
- 持久性:事务一旦执行完毕,所有的记录(或数据的操作/改变),永久保存在存储器中(常规为物理存储器)。
回滚
数据未提交才可以进行回滚。
事务的持久性和回滚也存在一定关系