欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    数据库一致性与事务管理.ppt

    • 资源ID:5985452       资源大小:270.61KB        全文页数:16页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据库一致性与事务管理.ppt

    第19章 数据库一致性与事务管理,数据库中的数据是每时每刻都有可能发生变化的。但是这种变化必须是可以接受的和合理的。即数据必须保持一致性。事务是保证数据一致性的重要手段。本章将从以下几个方面讲述数据一致性。什么是数据库一致性和事务Oracle中的事务事务的属性和隔离级别事务的处理原则通过本章的学习,读者可以对数据一致性有清晰的认识,并了解Oracle中的事务处理原则。,19.1 数据一致性和事务,用户对数据库的操作是复杂多变的。这些复杂的动作可能是一个逻辑整体,如果处理不当极易造成数据不一致。同属一个逻辑整体的操作应该作为一个事务进行处理,从而避免出现数据不一致性。,19.1.1 Oracle中的数据一致性,数据库是现实世界的反映。例如,一个存储了多家连锁店铺库存信息的数据库,如果需要进行货物调配,则需要进行数据更新。从A店调出的货物送至B店,那么A店对应的库存量应该进行削减,B店库存进行相应增加。在数据库中的实际操作应该是两条SQL语句,一条语句减少A店库存,另外一条增加B店库存。但是,数据库有可能抛出这样那样的异常,例如,第一条语句执行完毕,突然断电,或者第二条语句由于其他原因(如表本身的约束)而没有执行成功,就造成了数据不符合实际情况,即实际库存与数据库记录不符。类似的场景还有很多,但作为存储基础数据的数据库,必须避免任何犯错的可能,即必须保持数据一致性。,19.1.2 Oracle中的事务,事务是保证数据一致性的重要手段。试图改变数据库状态的多个动作应该视作一个密不可分的整体。无论其中经过了多么复杂的操作,该整体执行之前和执行之后,数据库均可保证一致性。整个逻辑整体即使一个事务。,19.2 Oracle中的事务处理,一个事务的生命周期包括,事务开始、事务执行和事务结束。在Oracle中,并不会显式声明事务的开始,而是由Oracle自行处理。事务的结束可以利用commit或者rollback命令。本节将从以下角度讲述Oracle中的事务处理。利用Commit命令结束事务利用Rollback命令结束事务事务属性和隔离级别,19.2.1 利用commit命令界定事务,事务的开始无需显式声明,在一个会话中,一次事务的结束便意味着新事务的开始。事务的结束可以利用commit命令,如示例19-1所示。【示例19-1】利用commit命令界定事务。在表warehouse中存储了仓库及库存信息,如下所示。SQL select*from warehouse;,19.2.2 利用rollback命令界定事务,rollback命令用于回滚事务内的所有数据修改,并结束事务。在示例19-1中,无论进行了多少次调仓,使用rollback命令将忽略所有操作。【示例19-2】利用rollback命令界定事务。SQL update warehouse set stock=stock-100 where warehouse_name=A仓 and goods=衬衫;1 row updatedSQL update warehouse set stock=stock+100 where warehouse_name=B仓 and goods=衬衫;,19.2.3 Oracle事务的属性和隔离级别,Oracle中,可以设定事务的属性和隔离级别,以保证事务运行在某种特定环境。因为数据库状态总是在不断进行变化的,特定的环境有利于事务在一个稳定的状态下工作。这些属性和隔离级别包括:read only属性;read write属性;serializable隔离级别;read commited隔离级别。1read only属性2read write属性3serializable隔离级别4read commited隔离级别,19.3 事务处理原则,事务并非Oracle数据库的专利,而是被广泛应用,并具有统一的处理原则。事务的处理原则包括以下几点:原子性(Atomicity):一致性(Consistency):隔离性(Isolation):持久性(Durablity):,19.3.1 事务的原子性Atomicity,原子性是事务的最基本属性。当事务被提交时,所有数据修改都将被确认;当事务回滚时,所有数据修改都将被忽略。不能出现部分提交部分忽略的情形。当然,具体的实现细节均由数据库实现。对于用户来说,只需使用commit/rollback命令来提交/回滚事务即可。,事务的一致性Consistency,事务的一致性是指,在事务开始之前数据库处于一致性状态,当事务结束之后,数据库仍然处于一致性状态。也就是说,事务不能破坏数据库一致性。很多情况下,事务内部对数据库操作有可能破坏数据库一致性。例如,在货物调仓的过程中,出仓操作是成功执行的,而入仓失败。此时的事务,如果执行了commit动作,势必破坏数据库的一致性。那么,正确的做法应该是以rollback动作结束事务。,19.3.3 事务的隔离性Isolation,隔离性是事务必须要具备的特性。一个事务在处理过程中,如果总是受到其他事务的影响,那么,事务的执行总是毫无轨迹可循,数据库的最终状态也是随机的。各个事务对数据库的影响是独立的,那么,一个事务对于其他事务的数据修改,有可能产生以下几种情况。1脏读取(Dirty Read)2不可重读3影像读取,19.3.4 事务的持久性Durablity,持久性是指,事务一旦提交,对数据库的修改也将记录到永久介质中,例如存储为磁盘文件。即使下一时刻的数据库故障也不会导致数据丢失。当用户提交事务时,Oracle数据库总是首先生成redo文件。redo文件记录了事务对数据库修改的细节,即使系统崩溃,Oracle同样可以利用redo文件保证所有事务成功提交。,19.4 本章实例,当一个事务的隔离级别被设置为serializable后,数据库状态的变化对其是完全透明的。但是,值得注意的是,这里的透明仅仅对于查询动作而言。如果该事务试图修改数据库,同样会受外界事务的影响。【示例19-5】事务的隔离级别仅对查询操作起作用。表students是存储了学生信息的数据表,其数据内容如下所示。SQL select*from students order by student_id;,19.5 本章小结,本章简要介绍了数据一致性以及事务的处理原则。这里,需要区分事务与正确事务的不同。在Oracle中,事务以会话建立,或者以上一次的commit/rollback为开始,以下一个commit或rollback结束。而这个事务是否是一个正确的事务,则要看是否符合事务的处理原则。尤其需要注意的是,不能保持一致性的事务是被严格禁止的。,

    注意事项

    本文(数据库一致性与事务管理.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开