Spring 事物概念简介

 

         事物,从数据库的学习中可以知道,事物必须遵循ACID原则,(摘于数据库教材和自己的总结)即

                <1> 原子性:操作这些指令时,要么全部执行,要么一个不执行,即不存在命令执行一部分的情况,一旦出错即会滚到出事状态

                <2> 一致性:事物隔离执行时要保持数据库的一致性。也就是说事务执行结果必须使事物从一个状态转变到另一个一致性状态,但是无内部无需保持一致性。

                 <3>隔离性:一个事物的执行不能干扰其他事物,也就是说即使多个事物并发执行,任何事物的更新操作直到其提交成功,对其他事物是不可见的。

                 <4>持久性:一个事物完成后他对数据库的改变时永久的,即使数据库出现故障,他对数据库的更新也是永久有效的。

         事物并发导致的问题

                <1> 丢失修改:两个或多个事物同时从数据库中读取相同的数据对象并进行修改,后提交的事物修改破坏的先提交的事物的修改,导致先提交的事物修改丢失

                <2>读“脏”数据:指的是事物Ti修改某一数据,并将其写回磁盘,事物Tj读取统一数据后,事物Ti由于某种原因被撤销,这时,被事物Ti修改过的数据恢复原值,事物Tj读到的数据就与数据库中的数据不一致。

                  <3>不可重复读:事物Ti读取数据后,事物Tj进行更新操作,使事物Ti无法再现前一次读取的结果。

                           三类不可重复读:

                                   1:事物Ti读取某一数据后,事物Tj对其作了修改,当事物Ti再次读取该数据项时,得到与前一次不同的值。

                                   2:事物Ti按一定条件从数据库中读取某些数据库记录后,事物Tj删除了部分记录,当事物Ti再次按相同条件读取数据时,发现某些记录神秘消失。

                                   3:事物Ti按一定条件从数据库中读取某些数据记录后,事物Tj插入了一些记录,。。。。。。发现多了一些记录。

        

                 

猜你喜欢

转载自blog.csdn.net/Maybeno1314/article/details/81462584