事务的简单理解笔记
事务
什么是事务
事务就是对数据库的一组SQL操作,当全部正确执行数据库应用便会提交到数据库,只要当前事务中有一个SQL操作未能正确执行那么这一组SQL操作便会被回滚到原始状态。
如果还觉得概念有点模糊,可以把事务看成时一个监考老师,那么每一个考生就是一个SQL操作,当最后一个考生进入考场,便开启了一个事务来起到监听的作用,这次考试就有点怪,所有考生必须完成手头上的试卷,监考老师的职责就是负责考场的秩序,直到所有考生不出任何意外的完成这次考试,如果有任何一个考生作弊或者不能完成试卷,那么监考老师就会立马通知本次考试所有考试成绩取消,通知所有同学各回各家 ,反之则将所有试卷提交给咱们的阅卷老师(提交到数据库改变数据状态),
事务的作用
保证我们某一个业务逻辑对数据库的正确操作,如果中间有一个SQL操作未完成,或者程序出现错误,则会按照指定的事务规则进行回滚,以此来保证我们数据的安全性和完整性。
事务的ACID点
-
原子性:
指的是事务中的操作要么全部完成提交到数据库,要不全部回滚对数据库不能造成影响。 -
一致性
应用系统从一个正确的状态到另一个正确的状态。事务的一致性稍微难以理解一点,大家可以去单独查阅资料,感觉可以用物理学的能量守恒来帮助理解。 -
隔离性
当多用户并发访问数据库时,保证多个并发事务之间相互隔离(相对独立)。
其实跟咱们学的同步锁有点类似,目的时保证多个并发事务操作数据库时保证数据的安全性,查询操作并不需要隔离。 -
持久性
事务一旦提交便是永久性修改数据库中的数据,即使数据库系统故障,也不会丢失事务的操作。
AID都是保证,C才是目的。