====================================================================
++++++++原文链接:https://blog.csdn.net/zhou920786312/article/details/72564262++++++++++
======================================================================

事务

1事务由一系列的相关的sql语句组成的最小逻辑工作单元
2oracle以事务为单位来处理数据,保证数据的一致性
3如果对事务进行提交,该事物的所有sql语句操作都会提交,成为数据库的永久组成部分
4如果事务遇到错误而被取消或者回滚,事务的所有sql语句操作都会被清除,数据库恢复到事务执行前的状态。
5一个事务的所有sql语句要么全部被执行,要么全部没有执行

事务特性acid

一组sql语句要成为事务,必须满足以下特性
1原子性a
事务是不可分割的原子工作单元;对数据的数据修改,要么全部执行,要不全部都不执行。
2一致性c
事务完成时,必须使所有的数据保持一致。在相关数据库中,所有的规则都必须应用于事务的修改,以保持数据的完整性。事务结束时候,所有的内部数据结构(B树索引或者双向链表)都必须正确
3隔离性i
由并发事务所做的修改必须与其他并发事务所做的修改隔离
4持久性d
事务完成后,对系统的影响是永久性的

提交事务

提交事务表示该事务中对数据库所做的全部操作都将永久记录在数据库中。

提交事务commit语句,标志一个成功的隐性事务或者显性事务的结束.

执行commit语句数据库会做的动作
1在回退段内的事务表中记录这个事务已经提交,并生成一个唯一的系统改变号scn,并将该scn值保存到事务表中,用于唯一标识这个事务
2启动lgwr后台进程,将sga区中缓存的重做记录写到联机重做日志文件,并且将该事物scn值也保存到日志文件中
3oracle服务器进程释放事务处理所使用的资源
4通知用户事务已经提交

回滚事务

rollback 【to savepoint savepointName】
回滚事务表示该事务对数据库的所有操作都将取消
语句
rollback 表示将事务回滚到事务的起点或者事务的某个保存点

回滚事务,oracle会做的动作
1oracle通过回退段中的数据撤销事务中所有的sql语句对数据库所做的任何操作
2oracle服务器进程事务使用的所有资源
3通知用户事务回滚成功

保存点

在事务的处理过程中,如果发生错误并且使用rollback进行回滚
,那么整个事务对数据库的操作都将被撤销,在一个庞大的事务中,这是很浪费资源的,比如事务前半部分是正确的,事务的后半部分是错误的,那么我想回滚到前半部分结束位置,这时就可以使用保存点

一个事实可以建立多个保存点,将事务分割成一系列的部分.事务回滚就可以回滚到其中的某个保存点上

语法
savepoint 【savepointName】
savepointName:保存点的名字

============================================================
++++++ 原文链接:https://blog.csdn.net/weixin_39611382/article/details/111861785++++++
============================================================
1、事务就是指准备要做的或e5a48de588b662616964757a686964616f31333431356631所做的事情,在计算机语言中是指访问并可能更新数据库中各种数据项的一个程序单元,也是数据库运行中的逻辑工作单位,由DBMS中的事务管理子系统负责事务的处理。

2、提交事务:Commit Transaction,成功的结束,将所有的DML语句操作历史记录和底层硬盘数据来一次同步

3、事务回滚:End Transaction,失败的结束,将所有的DML(insert、update、delete)语句操作历史记录全部清空。

所谓回滚事务,简单来说就是当一个事务的某一个操作发生问题时,整个事务可以回滚掉,就像没有做任何操作一样,换言之当发生错误或事务被取消,则回滚事务。

当开启事务之后,所有的操作都会被存储在事务日志中,而只有当我们进行提交事务的操作后,才会将我们更新的数据同步到数据表中。