数据库事务由以下的部分组成:
- 一个或多个DML 语句
- 一个 DDL 语句
- 一个 DCL 语句
事务的 ACID 特性
1、 原子性 (Atomicity)
事务的原子性是指事务中包含的所有操作要么全做,要么不做 , 也就是说所有的活动在数据库中要么全部反映 , 要么全部不反映 , 以保证数据库的一致性。
2、 一致性 (Consistency)
事务的一致性是指数据库在事务操作前和事务处理后 , 其中数据必须满足业务的规则约束。
3、 隔离性 (Isolation)
隔离性是指数据库允许多个并发的事务同时对其中的数据进行读写或修改的能力 , 隔离性可以防止多个事务的并发执行时 , 由于它们的操作命令交叉执行而导致数据的不一致性。
4、 持久性 (durability)
事务的持久性是指在事务处理结束后 , 它对数据的修改应该是永久的。即便是系统在遇到故障的情况下也不会丢失 , 这是数据的重要性决定的。
数据库事务:开始和结束
以第一个 DML 语句的执行作为开始
以下面的其中之一作为结束:
COMMIT 或 ROLLBACK 语句
DDL 或 DCL 语句(自动提交)
SQL Developer or SQL*Plus用户退出
系统崩溃
COMMIT和ROLLBACK语句的优点
使用COMMIT 和 ROLLBACK语句,我们可以:
确保数据完整性。
数据改变被提交之前预览。
将逻辑上相关的操作分组。
回滚到保存点
使用 SAVEPOINT 语句在当前事务中创建保存点。
使用 ROLLBACK TO SAVEPOIN