定义:事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些 操作要么都执行,要么都不执行,它是一个不可分割的工作单位。所以,事务是数据库 维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。
事务是DBMS的基本单位,是构成单一逻辑工作单元的操作集合.
事务的四个基本特征:
① Atomic(原子性):事务中包含的操作被看做一个逻辑单元,这个逻辑单元中的操 作要么全部成功,要么全部失败。
② Consistency(一致性):事务完成时,数据必须处于一致状态,数据的完整性约束没有被破坏,事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
③ Isolation(隔离性):事务允许多个用户对同一个数据进行并发访问,而不破坏数据 的正确性和完整性。同时,并行事务的修改必须与其他并行事务的修改相互独立。
④ Durability(持久性):事务结束后,事务处理的结果必须能够得到固化。
事务的SQL操作语句:
① 开始事务:begin TRANSACTION;
② 提交事务:commit TRANSACTION;
③ 回滚事务:rollback TRANSACTION;
事务的并发问题:
一个数据库可能拥有多个访问客户端,这些客户端都可以并发方式访问数据库。数据库中的相同数据可能同时被多个事务访问,如果没有采取必要的隔离措施,就会导致各种并发问题,破坏数据的完整性。这些问题可以归结为5类,包括3类数据读问题(脏读、幻象读和不可重复读)以及2类数据更新问题(第一类丢失更新和第二类丢失更新)。
① 脏读:A事务读取B事务尚未提交的更改数据
② 不可重复读:A事务读取了B事务已经提交的数据,导致两次读不一致
③ 幻象读:A事务读取了B事务新增的数据,幻象读和不可重复读是两个容易混淆 的概念,前者是指读到了其它已经提交事务的新增数据,而后者是指读到了已经提交事 务的更改数据(更改或删除)
④ 第一类丢失更新:A事务撤销时,把已经提交的B事务的更新数据覆盖了
⑤ 第二类丢失更新:A事务提交时覆盖了B事务提交的数据
事务日志
事务日志主要用于记录对事务的更新操作,包括增加,删除,修改.
原文链接:https://blog.csdn.net/zdplife/java/article/details/48032141
网友评论