日期:2014-05-16 浏览次数:20400 次
数据存储的逻辑单位是数据块,数据操作的逻辑单位是事务。
事务是用户定义的一组操作序列,有一条或多条相关SQL语句组成,是数据库应用程序的基本逻辑单位。事务管理技术主要包括数据库的恢复技术和并发控制技术。
事务的处理逻辑过程
1、 服务器进程捡取该事务的SQL语句,然后检查共享池,查看是否包含该SQL语句的共享SQL区。
2、 如有,则检查该用户是否有访问所涉及的数据的权限,如有,则使用共享SQL区处理该SQL语句。如果没有找到共享SQL区,则分配一个新的SQL区,以便分析、处理该SQL语句。如果无权限,则返回提示权限不足。
3、 锁定该SQL语句所涉及的操作对象;
4、 服务器进程在SGA中操作数据,或从数据文件中奖数据读入到SGA中然后操作数据。
5、 在适当的时候,LGWR后台进程将语句缓冲的重做日志写入到联机重做日志文件中,DBWR后台进程将数据高速缓存中的被修改过的数据块写入到数据文件中。
6、 为该事务产生一个递增的SCN。SCN被写入到控制文件、数据文件的头部、数据块的头部、重做记录中。SCN确定数据库在某个时间点的一致性状态,用来进行并发控制、数据库的恢复。
7、 LGWR后台进程将所有剩余的、已经缓冲的重做日志和当前的SCN写入到联机重做日志文件中。
8、 释放该事务中各个SQL语句所占用的系统资源,并解除对所涉及的操作对象的锁定;
9、 如果事务是成功的,返回成功提示,否则返回错误提示;
10、 在某个恰当的时候,DBWR后台进程将仍然保留在数据高速缓存中的被更改过的数据块(脏数据块)写入到数据文件中。
事务控制的基本语句及功能
1、 提交事务 (commit)
2、 回滚事务 (rollback)
3、 设置保存点 (savepoint)