数据库原理与应用(Oracle) 笔记4 ——事务(学习ing)

会话,是一个客户与服务器之间的不中断的请求响应序列。
事务,就是在某个特定的会话过程内,连续的若干条DML语句对数据修改的总和。

事务的性质

1)事务的原子性:即不可分割性。组成事务的连续的若干条DML语句,要么一起成功,要么一起失败。
2)事务的隔离性:任何一个事务在其提交完成之前,都是独立的。即无法在另一个窗口访问到该事务。
3)读一致性:对数据可见性的约束。保证在一个事务中的多次操作的数据中间状态对其他事务不可见的。因为这些中间状态,是一个过渡状态,与事务的开始状态和事务的结束状态是不一致的。

原子性和一致性的的侧重点不同:原子性关注状态,要么全部成功,要么全部失败,不存在部分成功的状态。而一致性关注数据的可见性,中间状态的数据对外部不可见,只有最初状态和最终状态的数据对外可见

事务的提交

1)显式提交:通过commit语句提交。
2)隐式提交:无需显示执行commit语句,session中的操作被自动提交到数据库的过程。
其方式有:
①正常执行完ddl语句。
②正常执行完dcl语句。
③正常退出SQL plus,没有明确发出commit或rollback。
3)自动提交:SQL plus设置自动提交。

事务的回滚

1)显式回滚:通过rollback语句回滚。
2)隐式回滚:
①语句级的隐式回滚:例如,在系统中执行10000行insert语句,中途硬盘空间不足,这条语句失败。系统将已经执行的语句进行回滚。
②会话级的隐式回滚:例如,在一个会话过程中网络中断,会话失败,引发会话级的隐式回滚,这个会话内所有未提交的事务全部回滚。
③系统级的隐式回滚:例如,在数据库操作中电脑电源不足关机,服务器重新启动的时候,会回滚所有未提交的事务。
可见,隐式回滚是维护系统(数据)完整性的必需品。

你可能感兴趣的:(数据库,oracle)