Oracle-7-第七篇.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 事务与权限控制 本章目标 了解事务的基本概念 掌握事务的操作方式 事务的分类 了解oracle数据库的安全性 掌握帐户管理、权限管理、角色管理 1.1 事务的基本概念 事务的概念: 所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。 例如,在关系数据库中,一个事务可以是一条SQL语句、一组SQL语句或整个程序。 定义事务的三条语句: Commit Rollback Savepoint 事务是一个逻辑工作单元,同时又是一个恢复单元。一个事务提交之后,数据库又处于或应该处于一个一致性状态ddl之后,包含一个隐含的commit 事务的基本概念 事务是一个或多个sql语句序列。事务中的每条语句都只执行部分任务,完成任务需要所有sql语句。事务被视为原子单元,要么所有的语句都执行,要么一条语句也不执行。事务概念在程序更新数据库时至关重要,因为数据库的完整性必须得到维持。 只有当事务提交时,事务对数据库的更改才是永久性的。事务以一条可执行sql语句开始,以一条回滚或提交语句显示地结束。 事务的基本概念 提供事务的目的:为了更加安全地修改数据库。如:对一个操作不满意,可以回滚以进行重新修改。 事务控制命令的组成:提交Commit、回滚RollBack、保留点SavePoint 提交--commit commit语句用于结束一个事务。它使得对数据库所做的任何更改成为永久性的。该语句还删除事务中的任何保存点。 commit语句表示下列操作: -- 所有sql语句均已执行。 -- 事务成功结束。 -- 数据库处于一致性状态。 事务提交方式 显式提交:就是使用commit命令使得当前事务生效。这个事务所有操作所产生的对数据库的更新都变成永久性的。 自动提交:在sql*plus中,使用set autocommit on。然后所做的所有操作自动提交。oracle系统实现自动提交功能所需的资源多,并且执行效率低,故一般情况下,用户最好别用。 隐式提交:如发出ddl命令、程序终止、关闭数据库等除前两个之外的。 保留点--savepoint 定义:是一事务范围内的中间标志,经常用于将一个长事务划分为矩小的部分。 使用范围:可标志长事务的任何点,允许回滚到某个位置。与回滚一起完成回滚事务部分。 格式:savepoint 保留点名; 事务回滚—rollback rollback语句用于撤销当前事务中所执行的操作。可以回滚整个事务以便忽略sql语句所做的所有更改,或者将事务回滚到保存点以便忽略保存点之后的sql语句。 事务回滚—rollback Rollback语句执行下列操作: -- 删除对数据库所做的更改。 -- 表示事务不成功结束。 -- 将数据库恢复到事务前的状态。 回滚时所做的工作 回滚整个事务: -- 利用相应回滚段撤消事务中SQL命令作的全部修改; -- 解除对所有数据的事务封锁; -- 结束事务。 回滚部分事务: -- 回滚该保留点之后的部分事务; -- 删除在该保留点之后所建立的全部保留点,而该保留点则保留,以便可回滚到同一保留点多次; -- 解除对该保留点之后表的封锁或行的封锁。 回滚分类 显式回滚: 格式:rollback [to [savepoint] 保留点名]; 隐式回滚: 发生情况: -- 执行期间发生错误,比如一个用户往一个表中插入几个记录时,其中插入了一个错误的记录,从而导致终止插入操作而回滚; --发现死锁或事务夭折。 设置事务 定义及功能:设置事务实际上是对事务的一种控制,主要任务是建立当前事务为只读事务或读写事务,其次是控制事务使用指定的回滚段空间。 分类: -- 读写事务处理 -- 只读事务处理 读写事务处理 默认情况下,当oracle9i为一个会话开始一个新的事务时,该事务是可读写的。通常,一个可读写的事务可以包含任何类型的sql语句,其中,包括了用于查询、更新和删除表行的dml语句。可以使用sql命令来显示声明一个事务为可读写事务。 格式:set transaction read write; 只读事务处理 只读的事务只包含查询。也就是说,只读操作不以任何形式修改数据库。应用程序可以显示地使用sql命令声明一个事务为只读。 格式:set transaction read only; 当声明一个显式的只读事务时,oracle9i为该事务保证了事务级别上的读一致性。这意味着,即使其他事务对数据库进行修改并提交了工作,该事务的所有查询结果所反映的数据库数据与事务开始时也保持一致。应用程序通常围绕一些查

您可能关注的文档

文档评论(0)

xiaofei2001128 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档