事务的概述
事务包含4种重要的属性,被统称为ACID(原子性、一致性、隔离性和持久性),一个事务必须通过ACID。
(1)原子性(Atomic):事务是一个整体的工作单元,事务对数据库所做的操作要么全部执行,要么全部取消。如果某条语句执行失败,则所有语句全部回滚。
(2)一致性(ConDemoltent):事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。如果事务成功,则所有数据将变为一个新的状态;如果事务失败,则所有数据将处于开始之前的状态。
(3)隔离性(Isolated):由事务所作的修改必须与其他事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。
(4)持久性(Durability):当事务提交后,对数据库所做的修改就会永久保存下来。
操作事务
Oracle 11g中的事务是隐式自动开始的,它不需要用户显示地执行开始事务语句。但对于事务的结束处理,则需要用户进行指定的操作,通常在以下情况时,Oracle认为一个事务结束了。
(1)执行COMMIT语句提交事务。
(2)指定ROLLBACK语句撤销事务。
(3)执行一条数据定义语句,比如,CREATE、DROP或ALTER等语句。如果该语句执行成功,那么Oracle系统会自动执行COMMIT命令;否则,则Oracle系统会自动执行ROLLBACK命令。
(4)执行一个数据控制命令,比如,GRANT、REVOKE等控制命令,这种操作执行完毕,Oracle系统会自动执行COMMIT命令。
(5)正常地断开数据库的连接、正常地退出SQL*Plus环境,则Oracle系统会自动执行COMMIT命令;否则,则Oracle系统会自动执行ROLLBACK命令。