Oracle中构成完整事务的因素(oracle中的事务)
Oracle数据库发挥重要作用,涉及到多个客户端参与,所以它包括分布式事务。事务有4个基本元素构成,即原子性,隔离性,持久性和一致性。Oracle系统提供了一种机制,称为事务,可以将多个操作组合成一个单元,以保证整个数据库的完整性与一致性。在Oracle中,构成完整的事务需要客户端和服务器之间一定的通信机制,而且需要一定特定的存储或控制手段来管理数据库。
首先,specify the Client and Server’s communication. 如果要在客户端和服务器之间进行有效的通信,必须配置客户端和服务器之间的网络,如TCP / IP或UDP。通过网络,客户端可以向服务器发送SQL语句,请求执行的操作,服务器响应客户端的请求操作结果。
其次,use some methods for storing and controlling information about Oracle transactions. 事务的存储和控制,Oracle使用不同的方法,如Undo,Redo日志,慢点日志,分布式事务,事务日志等。Undo日志可以使系统还原到某个时间点,以及为客户端提供数据一致性。Redo日志记录事务所做的所有更改,以便在发生系统故障时可以恢复数据库数据到一致的状态。慢比日志记录持久性更改,便于在错误发生后恢复数据库。而分布式事务处理涉及多个分布式系统,比如网络节点之间,可以实现多种服务模式。事务日志是客户端和服务器处理事务时记录执行状态的日志,很重要。
最后要做的是提供用于管理完整事务的存储机构或控制机构,Oracle中主要用保存点(Savepoint)和SQL语句COMMIT和ROLLBACK 来管理事务,其中保存点用来跟踪任何指定的时刻的相关事务,COMMIT用于更新事务,而ROLLBACK则用来撤消前面的事务操作结果。
如果要使Oracle中的事务完整,客户端和服务器之间的网络通信,以及一些存储和控制机制,如Undo,Redo日志,慢点日志,分布式事务,事务日志,保存点,COMMIT和ROLLBACK sql语句 等都是必不可少的。
例子:
BEGIN
select account_no, account_name, balance
from accounts
where account_name like ‘%x%’; /* 开始一个事务*/
update accounts
set balance = balance + 10
where account_name = ‘Xiao Bao’; /*更新账户余额*/
SAVEPOINT some_point; /* 定义一个保存点 */
update accounts
set balance = balance – 10
where account_name = ‘Da Bao’; /*在保存点前尝试更新减少另外一个账户余额 */
ROLLBACK to some_point; /* 回滚到保存点 */
COMMIT; /*提交变更,结束事务 */
END;