oracle深入浅出中级篇.pptVIP

  1. 1、本文档共96页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
oracle深入浅出中级篇

深入浅出Oracle 主讲:邹振兴 ORACL深入浅出 主讲人:邹振兴 第一章 事务与锁 什么是事务? 如何Oracle使用事务。 在Java中使用事务。 什么是锁? 演示更新丢失的问题。 锁的分类。 阻塞与死锁。 什么是事务 什么是事务? 事务是一种机制,这种机制能保证在事务内的DML(数据操作语句)做为一个不可分割的单元进行执行。 举例说明事务。 演示sql servert2005事务处理。 演示Oracle事务处理。 事务四大特性(ACID) 原子性(A) 一致性(C) 隔离性(I) 永久性(D) 什么是事务 事务处理的两种方式 显示事务:用户通过编码方式开启事务 隐式事务:数据库默认认为所有操作都是事务 比较sql server 2005与Oracle事务处理方式的区别。 如何Oracle使用事务 Oracel事务关键字 Savepoint a ; 设置事务保存点 Rollback to a ;回滚到事务保存点a,事务不结束 Commit ;提交事务,事务结束 Rollback; 回滚所有事务,事务结束 讲解Oracel程序员一天 在Java Jdbc中使用事务 演示如何在Java Jdbc中如何使用事务 驱动包位置:oracle安装路径-oracle-jdbc-lib-classes12.jar 演示案例:DBUtil.java 什么是锁 生活中的锁: 为什么会有锁的出现。 锁的作用就是保护私有的空间。 Oracle中的锁: 演示Oracle中更新丢失的问题。 讲解此问题的两种思路:一、在第一个用户修改之前不允许其它用户修改。二、在修改之前,查看此数据的版本号。 锁的分类 悲观锁定 此锁持悲观态度,认为在用户修改数据期间,一定会有用户再对其修改。那么此锁会在用户事务内一直保持锁定状态,其它用户无法进行修改。 在查询语句后接 for update nowait此可加锁。查询多少数据,锁定多少数据。 乐观锁定 此锁持乐观态度,认为在用户修改数据期间,其它用户不会再对其修改,直到最后提交数据时才判断数据是否已更改。 锁的分类 乐观锁定的实现方式: 增加标识列来区分是否已修改 通过Oracle ORA_ROWSCN机制来实现乐观锁定 阻塞与死锁 如果你有两个会话,每个会话都持有另一个会话想要的资源,此时就会出现死锁(deadlock)。例如,如果我的数据库中有两个表A 和B,每个表中都只有一行,就可以很容易地展示什么是死锁。我要做的只是打开两个会话(例如,两个SQL*Plus 会话)。在会话A 中更新表A,并在会话B 中更新表B。现在,如果我想在会话B 中更新表A,就会阻塞。会话A 已经锁定了这一行。这不是死锁;只是阻塞而已。我还没有遇到过死锁,因为会话A 还有机会提交或回滚,这样会话B 就能继续。 阻塞与死锁 如果我再回到会话A,试图更新表B,这就会导致一个死锁。要在这两个会话中选择一个作为“牺牲品”,让它的语句回滚。例如,会话B 中对表A 的更新可能回滚,得到以下错误:想要更新表B 的会话A 还阻塞着,Oracle 不会回滚整个事务。只会回滚与死锁有关的某条语句。会话B 仍然锁定着表B 中的行,而会话A 还在耐心地等待这一行可用。收到死锁消息后,会话B 必须决定将表B 上未执行的工作提交还是回滚,或者继续走另一条路,以后再提交。一旦这个会话执行提交或回滚,另一个阻塞的会话就会继续,好像什么也没有发生过一样。 总结 开发多用户、数据库驱动的应用时,最大的难点之一是:一方面要力争取得最大限度的并发访问,与此同时还要确保每个用户能以一致的方式读取和修改数据。为此就有了锁定(locking)机制,这也是所有数据库都具有的一个关键特性,Oracle 在这方面更是技高一筹。不过,Oracle 的这些特性的实现是Oracle所特有的,就像SQL Server 的实现只是SQL Server 特有的一样,应用执行数据处理时,要正确地使用这些机制,而这一点要由你(应用的开发人员)来保证。 第五章 使用PL/SQL PL/SQL简介 变量、常量 数据类型 流程控制 异常处理 PL/SQL简介 PL/SQL是Oracle在sql标准上的加强,使用Oracle能够基于对象编程 T-SQL是基于事务的结构化查询语言 两者都是对SQL的扩展 PL/SQL块简介 PL/SQL 块是构成 PL/SQL 程序的基本组织单元,可以编写存储过程、函数、包、触发器等。 PL/SQL 分为三个部分:声明部分、可执行部分和异常处理部分 PL/SQL块简介 演示:PL/SQL打印Hello World。 演示:如何在PL/SQL块中向表中增加一条记录。 演示:如何在PL/SQL块中修改表中数据。 演示:查询学员张秋丽的年龄。 PL/SQL块 小结

文档评论(0)

hart520 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档