事务
数据库事务
数据库事务(database transaction ), 是指作为单个逻辑工作单元执行执行的一系列操作,
要么完全执行,要么完全 地不执行 .
ACID
事务必须具备ACID四个特性
原子性(Atomicity)
原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚.
一致性(Consistency )
一致性是指事务必须使用数据库从一个一致的状态变到另外一个一致的状态 ,
也就是执行事务之前和之后的状态都必须处于一致的状态 .
在事务t 开始时,此时数据库有一种状态 ,这个状态是所有 的MYSQL对象处于一致的状态 ,例如数据库完事性约束正确 ,日志状态不一致等 ,不同的索引,不同的日志等 ,当事T 提交 后,这时又有了一个新的状态 ,不同的数据,不同的索引 ,不同的日志 等 ,但此时 ,约束,数据,索引,日志等 MYSQL各种对象还是要保持一致 (正确性 ).
这就是从一个一致性的状态 ,变到另一个一致性的状态 .也就是事务执行后,并没有 破坏数据库的完整性约束 (一切都 是对的.)
隔离性(lsolation)
隔离性是指当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离.
即要达到这么一种效果 :对于任意两个 并发的事务 T1和T2 ,在事务T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行.
持久性(durbility)
持久性是指一个事务一量被 提交 了,那么对于数据库中的数据改变就是永久 性的,即便是在数据库系统遭遇到故障 的情况下也不会丢失提交事务的操作.
例如我们在使用JDBC操作数据库时,在提交 事务方法后,提示用户事务操作完成 ,当我们程序执行完成直到提示后,就可以认定事务以及正确提交 ,即使这时候数据库出现了问题,也必须 要将我们的事务完全执行完成 ,否则 就会造成我们看到提示事务处理完毕,但是数据库因为故障而没有 执行事务的重大错误.
MYSQL 中使用事务
提交 事务;