数据库事务是一组sql语句组成的工作单元。
数据库事务具有以下特性:
- 原子性:一个数据库事务必须是一个最小工作单元。只有2个状态,开始,完成(成功或失败),不存在中间状态。
- 一致性:数据的一致和业务的一致,举个例子:比如A用户有100元,B用户100元,现要从A用户转帐50元到B用户。不论事务成功或者失败,2者的帐户总和还应该是100+100=200。不能出现其他不一致的值。
- 隔离性:一个事务间的数据不共享,比如不能有2个事务同时(绝对意义上的同时,有的时候数据库很快可能造成同时的假象)取A帐户上的钱。
- 持久性:事务完成后会将结果持久化到磁盘上。
数据库通过日志实现原子性/一致性/持久性,通过锁实现隔离性。