网站大量收购闲置独家精品文档,联系QQ:2885784924

第六章 文件管理.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 文件管理.ppt

第六章 文件管理 文件和文件系统 文件的逻辑结构 外存分配方式 目录管理 文件存储空间的管理 文件共享与文件保护 数据一致性控制 数据一致性控制 数据一致性是数据应用中必须解决一个重要问题 数据一致性控制 事务 检查点 并发控制 重复数据的数据一致性问题 事务 事务(Transaction)是用于访问和修改各种数据项的一个程序单位 事务也可以被看作是一系列相关读和写操作 只有对分布在不同位置的同一数据所进行的读和写(含修改)操作全部完成时,才能再以托付操作(Commit Operation)来终止事务。 只要有一个读、写或修改操作失败,便须执行夭折操作(Abort Operation) 为使夭折的事务不引起数据不一致,须将事务内刚被修改的数据项恢复为原来的情况,称为回退(roll back) 因此,事务具有原子性 事务 事务的原子性 该事务中的所有操作要么全部被成功地完成而且操作结果被永久地储存,要么这个事务对数据或其他事务没有任何影响 事务 事务记录(Transaction Record) 事务记录用来记录事务运行时数据项修改的全部信息,又称为运行记录(log) 或 日志 主要包括如下内容 事务名: 用于标识该事务的惟一名字 数据项名: 它是被修改数据项的惟一名字 旧值: 修改前数据项的值 新值: 修改后数据项将具有的值 事务 例,银行数据库系统。设T0是从帐号A向B转储50元钱的事务。其定义如下: T0: read(A); A= A-50; write(A); read(B); B=B+50; write(B); 事务 若A,B的初值分别为1000,2000,则日志中有关T0的信息如下: T0,start T0,A,1000,950 T0,B,2000,2050 T0,commit 事务 恢复算法 undo〈Ti〉该过程把所有被事务Ti修改过的数据,恢复为修改前的值 即,日志中每个型为T,X,V1,V2的记录中,把数据项X的值改为V1 redo〈Ti〉该过程能把所有被事务Ti修改过的数据,设置为新值 即,日志中每个型为T,X,V1,V2的记录中,把数据项X的值改为V2 事务 在上例中,若故障发生在T0,commit写入日志之前,则应执行undoT0操作,结果A和B的值被恢复成1000和2000 若故障发生在T0,commit写入日志之后,则应执行redoT0操作,结果A和B的值被写成950和2050 数据一致性控制 事务 检查点 并发控制 重复数据的数据一致性问题 检查点 检查点(Check Points)的作用 当系统发生故障时,需要确定哪些事务需要redo,哪些事务需要undo。如检查所有日志,存在两个问题 有哪些信誉好的足球投注网站所有日志将耗费大量时间 很多需要redo处理的事务已将它们的更新操作结果写到系统中,而又重新执行了这些操作,浪费了大量时间 引入检查点的主要目的,是使对事务记录表中事务记录的清理工作经常化 检查点 主要做如下工作 将驻留在易失性存储器(内存)中的当前事务记录表中的所有记录,输出到稳定存储器中 将驻留在易失性存储器中的所有已修改数据,输出到稳定存储器中 将事务记录表中的〈检查点〉记录,输出到稳定存储器中 每当出现一个〈检查点〉记录时,系统便执行上小节所介绍的恢复操作,利用redo和undo过程实现恢复功能 检查点 新的恢复算法 在引入检查点后,发生故障时只需对最后一个检查点之后的事务记录进行处理,即只要处理在最近建立检查点之后开始执行或处于活动状态的事务,其集合为T 对所有在T中的事务TK, 如果在事务记录表中出现了〈TK托付〉记录,则执行redo〈TK〉操作; 反之,如果在事务记录表中并未出现〈TK托付〉记录,则执行undo〈TK〉操作 数据一致性控制 事务 检查点 并发控制 重复数据的数据一致性问题 并发控制 由于事务具有原子性,只有当一个事务执行完后才允许另一个事务执行,这种特性称为顺序性(Serializability) 如,订票系统 用于实现事务顺序性的技术称为并发控制(Concurrent Control) 数据库和文件系统中常用较简单的同步机制-锁 利用互斥锁实现顺序性 为每一个共享对象设置一个互斥锁(Exclusive Lock) 当一事务Ti要访问某对象时,先要获得该对象的互斥锁 并发控制 利用互斥锁和共享锁实现顺序性 一个共享文件允许一个事务写,但可以允许多个事务读 互斥锁只允许一个事务对相应对象执行读或写 共享锁(Shared Lock)允许多个事务对相应对象读,而不允许任何一个事务对对象执行写操作 得到共享锁的事务可以读数据,得到互斥锁的事务可以写数据 并发控制 若事务Ti在数据项Q上要求一个A型锁,事务Tj在Q上已有了

文档评论(0)

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

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

1亿VIP精品文档

相关文档