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

下载本文档

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

文档简介

1、Lesson 8 数据库事务主讲:杨昊 Q:952063095 n理解数据库事务概念n掌握数据库处理事务的方法银行转帐n例如,银行转帐问题: 假定资金从帐户A转到帐户B,至少需要两步:p帐户A的资金减少p然后帐户B的资金相应增加 帐户帐户A帐户帐户Bn事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作n这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行 n事务是一个不可分割的工作逻辑单元 事务必须具备以下属性:p 原子性(Atomicity):事务是一个完整的操作。事务的各步操作是不可分的(原子的);要么都执行,要么都不执行p 一致性(Consistency):当事

2、务完成时,数据必须处于一致状态p 隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务p 永久性(Durability):事务完成后,它对数据库的修改被永久保持,事务日志能够保持事务的永久性n当执行事务操作的时候(DML语句)时,Oracle会在被作用表上面加表锁.以防止其他用户改变表结构,同时会在被作用行上加行锁,以防止其他事务在应用行上执行 DML操作.n如 会话A updaten 会话B altern在Oracle数据库中,为了确保数据库数据的读一致性,不允许其他用户读取脏数据(未提交事务).n如 A upd

3、ate 但没提交n B selectn使用commit语句可以提交事务. 当执行了 commit语句之后,会确认事务变化,结束事务,删除保存点,释放锁. 当使用commit语句结束事务之后,其他会话可以看到事务变化后的新数据.n当出现一下情况会自动提交事务:n1. 当执行DDL语句,如create,alter,drop table.n2. 当执行DCL语句, grant , revoken3. 当退出 sqlplusn保存点: 保存点是事务回退点, 他用于取消部分事务,当结束事务的时候, 会自动删除该事务所定义的所有保存点. 当执行 rollback 命令的时候,通过指定保存点可以取消部分事务

4、.n设置保存点: savepoint 保存点名称;n取消部分事务: rollback to 保存点;n这样保存点之前的操作提交,之后的操作取消.n取消全部事务: rollback;n当使用rollback取消事务的时候,会取消所有事务变化,结束事务,删除所有保存点并释放锁.当出现系统灾难或应用程序地址例外的时候,会自动回退其事务变化.n只读事务: 是指允许执行查询操作,而不允许执行任何DML操作的事务,当使用只读事务的时候,可以确保用户取得特定时间点的数据.n假定企业需要在每天16时统计最近一天的消费信息,而不统计当天16时之后的销售信息,那么可以使用只读事务. 在设置了只读事务之后,尽管其他

5、会话可能会提交新的事务,但只读事务将不会取得新的数据变化.从而确保特定时间点的数据信息.n使用只读事务:n set transaction read only;nSet transaction isolation level read committedn 注意: n当设置只读事务的时候,该语句必须是事务开始的第1条语句.n不能在 READ ONLY 事务处理中执行插入/删除/更新操作n只读事务可以使得用户取得特定时间点的数据信息,但当设置了只读事务的时候, 会话将不能执行delete/insert/update等dml操作,为了使得用户可以取得特定时间点的数据, 并且允许执行dml操作, 可

6、以使用顺序事务.n以第一个以第一个DML SQL语句执行开始语句执行开始n以下面的事件为止以下面的事件为止 COMMIT或者或者ROLLBACK语句被执行语句被执行 一个一个DDL或者或者DCL语句执行(自动提交)语句执行(自动提交) 用户退出用户退出SQL*Plus 系统崩溃系统崩溃n确保数据一致n在做永久改变之前可以预览数据改变n组逻辑上的相关操作使用COMMIT和ROLLBACK语句,你可以:n进行改变进行改变n提交改变提交改变n数据库中数据的改变被永久化不会丢失,即使系数据库中数据的改变被永久化不会丢失,即使系统崩溃。统崩溃。n事务结构,旧事务状态被清除,新事务开始。事务结构,旧事务状

7、态被清除,新事务开始。n旧事务中的锁定的行被释放,这些行现在可以被旧事务中的锁定的行被释放,这些行现在可以被其它用户进行操作。其它用户进行操作。n数据的改变被撤回数据的改变被撤回n数据先前的状态被还原数据先前的状态被还原n受影响行上面的锁被释放受影响行上面的锁被释放使用ROLLBACK命令放弃所有未决的改变DELETE FROM copy_emp;22 rows deleted.ROLLBACK;Rollback complete.n在下列环境下自动提交会发生在下列环境下自动提交会发生 DDL语句被执行语句被执行 DCL语句被执行语句被执行 从从SQL*Plus中的正常退出,没有显式执行中的正常退出,没有显式执行COMMIT或者或者ROLLBACK语句语句n在在SQL*Plus非正常结束或者系统失败,自动回滚非正常结束或者系统失败,自动回滚发生。发生。n事务独立方式事务独立方式p读提交读提交 read committed事务中读取其它对话已提交的数据。事务中读取其它对话已提交的数据。p连续读连续读 serializable事务中读取的数据保持一致性。事务中读取的数据保持一致性。语句语句描述描述INSERT增加新的一行到表中增加新的一行到表中UPDATE修改在表中存在的行修改在表中存在的行DE

温馨提示

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

评论

0/150

提交评论