第8章Oracle数据库事务_第1页
第8章Oracle数据库事务_第2页
第8章Oracle数据库事务_第3页
第8章Oracle数据库事务_第4页
第8章Oracle数据库事务_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java程序员Oracle就业课程Lesson8数据库事务主讲:杨昊Q:952063095

第一页,共二十一页。理解数据库事务概念掌握数据库处理事务的方法目标第二页,共二十一页。事务的必要性银行转帐例如,银行转帐问题:假定资金从帐户A转到帐户B,至少需要两步:帐户A的资金减少然后帐户B的资金相应增加

帐户A帐户B第三页,共二十一页。事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行事务是一个不可分割的工作逻辑单元数据库事务第四页,共二十一页。事务必须具备以下属性:原子性(Atomicity):事务是一个完整的操作。事务的各步操作是不可分的(原子的);要么都执行,要么都不执行一致性(Consistency):当事务完成时,数据必须处于一致状态隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务永久性(Durability):事务完成后,它对数据库的修改被永久保持,事务日志能够保持事务的永久性事务的四个属性--ACID第五页,共二十一页。当执行事务操作的时候(DML语句)时,Oracle会在被作用表上面加表锁.以防止其他用户改变表结构,同时会在被作用行上加行锁,以防止其他事务在应用行上执行DML操作.如会话Aupdate

会话Balter事务1.事务和锁第六页,共二十一页。在Oracle数据库中,为了确保数据库数据的读一致性,不允许其他用户读取脏数据(未提交事务).如Aupdate但没提交Bselect事务1.事务和锁第七页,共二十一页。使用commit语句可以提交事务.当执行了commit语句之后,会确认事务变化,结束事务,删除保存点,释放锁.当使用commit语句结束事务之后,其他会话可以看到事务变化后的新数据.当出现一下情况会自动提交事务:1.当执行DDL语句,如create,alter,droptable..2.当执行DCL语句,grant,revoke3.当退出sqlplus事务2.提交事务第八页,共二十一页。保存点:保存点是事务回退点,他用于取消部分事务,当结束事务的时候,会自动删除该事务所定义的所有保存点.当执行rollback命令的时候,通过指定保存点可以取消部分事务.设置保存点:savepoint保存点名称;取消部分事务:rollbackto保存点;这样保存点之前的操作提交,之后的操作取消.取消全部事务:rollback;当使用rollback取消事务的时候,会取消所有事务变化,结束事务,删除所有保存点并释放锁.当出现系统灾难或应用程序地址例外的时候,会自动回退其事务变化.事务3.回退事务第九页,共二十一页。只读事务:是指允许执行查询操作,而不允许执行任何DML操作的事务,当使用只读事务的时候,可以确保用户取得特定时间点的数据.假定企业需要在每天16时统计最近一天的消费信息,而不统计当天16时之后的销售信息,那么可以使用只读事务.在设置了只读事务之后,尽管其他会话可能会提交新的事务,但只读事务将不会取得新的数据变化.从而确保特定时间点的数据信息.事务4.只读事务第十页,共二十一页。使用只读事务:settransactionreadonly;Settransactionisolationlevelreadcommitted

注意:当设置只读事务的时候,该语句必须是事务开始的第1条语句.不能在READONLY事务处理中执行插入/删除/更新操作事务4.只读事务第十一页,共二十一页。只读事务可以使得用户取得特定时间点的数据信息,但当设置了只读事务的时候,会话将不能执行delete/insert/update等dml操作,为了使得用户可以取得特定时间点的数据,并且允许执行dml操作,可以使用顺序事务.事务5.顺序事务第十二页,共二十一页。以第一个DMLSQL语句执行开始以下面的事件为止—COMMIT或者ROLLBACK语句被执行—一个DDL或者DCL语句执行(自动提交)—用户退出SQL*Plus

—系统崩溃数据库事务第十三页,共二十一页。确保数据一致在做永久改变之前可以预览数据改变组逻辑上的相关操作COMMIT和ROLLBACK语句的优点使用COMMIT和ROLLBACK语句,你可以:第十四页,共二十一页。提交数据进行改变提交改变第十五页,共二十一页。数据库中数据的改变被永久化不会丢失,即使系统崩溃。事务结构,旧事务状态被清除,新事务开始。旧事务中的锁定的行被释放,这些行现在可以被其它用户进行操作。在COMMIT之后的数据状态第十六页,共二十一页。数据的改变被撤回数据先前的状态被还原受影响行上面的锁被释放在Rollback之后数据的状态使用ROLLBACK命令放弃所有未决的改变DELETEFROMcopy_emp;22rowsdeleted.ROLLBACK;Rollbackcomplete.第十七页,共二十一页。在下列环境下自动提交会发生—DDL语句被执行—DCL语句被执行—从SQL*Plus中的正常退出,没有显式执行COMMIT或者ROLLBACK语句在SQL*Plus非正常结束或者系统失败,自动回滚发生。隐式事务处理第十八页,共二十一页。事务独立方式读提交readcommitted

事务中读取其它对话已提交的数据。连续读serializable 事务中读取的数据保持一致性。

读提交第十九页,共二十一页。小结语句描述INSERT增加新的一行到表中UPDATE修改在表中存在的行DELETE从表中删除已经存在的行COMMIT将所有未决的改变变成永久性改变ROLLBACK放弃所有未决的数据改变现在本课结束了,你应该已经掌握了如何使用DML语句和控制事务:第二十页,共二十一页。内容总结Java程序员Oracle就业课程。假定资金从帐户A转到帐户B,至少需要两步:。这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行。事务的各步操作是不可分的(原子的)。要么都执行,要么都不执行。这

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论