电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

北京工业大学-数据库系统幻灯片-chapter7-系统实现技术

84页
  • 卖家[上传人]:F****n
  • 文档编号:88145324
  • 上传时间:2019-04-19
  • 文档格式:PPT
  • 文档大小:714.50KB
  • / 84 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第七章 系统实现技术,主要内容和学习要求,7.1 系统目录 (了解) 7.2 事务 (综合应用) 7.3 数据库的恢复 (理解) 7.4 数据库的并发控制 (了解) 7.5* 并发事务的可串行化和可恢复性(了解) 7.6 数据库的完整性(理解) 7.7 数据库的安全性(理解) 小结,系统目录,什么是系统目录? 系统目录的重要性 系统目录的内容 元数据,RDBMS系统目录的存储内容,关系名,属性名,属性域(数据类型) 各种约束,主键,辅助键,外键,空值/非空值 视图的外部级描述,存储结构和索引的内部级描述 安全性和授权规则 数据完整性规则 注意:这些数据都以表格的形式存在,某些RDBMS的系统目录内容,REL_AND_ATTR_CATALOG,关系名,属性名,属性类型,主键,外键,外键关系,RELATION_KEYS,(a)存储键信息的目录关系 RELATION_INDEXES,(b)存储索引信息的目录关系 VIEW_QUERIER VIEW_ATTRIBUTES,(c)存储视图信息的目录关系,系统目录的扩充ER图,视图关系,关系,基本关系,索引,属性名,键类型,d,数据类型,键编号,关

      2、系名,查询,索引类型,属性序号,索引名,属性名,K_A,R_I,R_F,I_A,K_I,外键,系统目录和DBMS各子系统的联系,DDL编译程序,DML优化程序,DML命令的外 部级到概念级 映象,DML编译程序,DML分析校 验程序,DBMS,处理和检查三级模式两级映象,检查查询涉及的关系名属性名等,将查询涉及的概念模式转换成内模式,产生访问计划,根据物理结构优化查询执行方案,将查询中的视图由外部级导到概念级映象,处理和检查权限,授权和安全程序,主要内容,7.1 系统目录 7.2 事务 7.3 数据库的恢复 7.4 数据库的并发控制 7.5 并发事务的可串行化和可恢复性 7.6 数据库的完整性 7.7 数据库的安全性 小结,什么是事务?,事务(transaction)是构成单一逻辑工作单元的操作集合 . 原子性(Atomicity):事务是一个不可分割的工作单元。 一致性(Consistency) :即数据不会因事务的执行而遭受破坏 。必须使数据库状态从一个一致状态变为另一个一致状态。 隔离性(Isolation) :在多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果一样

      3、。 持久性(Durability) :一个事务一旦完成全部操作后,它对数据库的所有更新应永久地反映在数据库中。,例子,例:设银行数据库中有一转账事务T,从账号A转一笔款子($50)到账号B。 相应的事务: T:read(A); A:=A50; write(A); read(B); B:=B + 50; write(B).,以下违反了事务的什么性质? 若由于故障和错误,造成事务T执行的结果修改了A值而未修改B值; 若事务执行结束后,A值减少50而B值未变; 若系统暂时处于不一致状态时,第二个事务插件来计算A与B之和或修改A、B的值; 因某种原因,虽然事务成功执行完成,但写入磁盘的数据丢失。,事务提交和事务撤销(1),BEGIN TRANSACTION标志事务开始执行; 事务的所有操作都完成了,则事务提交(COMMIT),否则事务撤销(ROLLBACK); COMMIT:表示事务执行成功地结束,该事务对数据库的所有更新操作都已写入磁盘; ROLLBACK:表示事务执行不成功地结束,该事务对数据库的所有更新必须被撤销,数据库应恢复该事务到初始状态。 BEGIN TRANSACTION和COM

      4、MIT(或ROLLBACK)一起保证了事务的四个性质。,事务提交和事务撤销(2),对数据库访问的两个基本操作:读和写 read(X):把数据X从磁盘的数据库中读到内存的缓冲区 write(X):把数据X从内存缓冲区中写回磁盘的数据库中 注:完成写操作后,数据可能暂时放在内存中,而非直接写进数据库。,T:BEGIN TRANSACTION; read(A); A:=A50; write(A); if (A0) ROLLBACK; else read(B); B:=B + 50; write(B); COMMIT; ,事务状态变迁图,活动状态,局部提交 状态,失败状态,提交状态,异常终止状态,read/write,为了精确地描述事务的工作,这里用事务状态图来描述事务的状态变迁。,主要内容,7.1 系统目录 7.2 事务 7.3 数据库的恢复 7.4 数据库的并发控制 7.5* 并发事务的可串行化和可恢复性 7.6 数据库的完整性 7.7 数据库的安全性 小结,存储器类型(1),易失性存储器(volatile storage): 内存、cache存储器; 故障时,其中的信息会丢失; 但访问速

      5、度快。 非易失性存储器(nonvolatile storage): 磁盘和磁带; 系统故障时,信息不丢失,但本身故障时,信息会丢失; 访问速度较慢。,存储器类型(2),稳定存储器(stable storage) 这是一个理论上的概念。 信息不会丢失。 可通过对非易失性存储器进行技术处理来实现。 稳定存储器的实现 数据备份 : 数据银行:,块的概念,块:内外存数据交换的基本单位。 物理块:磁盘中的块,称为“物理块”。 缓冲块:内存中临时存放物理块内容的块称为“缓冲块”。 所有的缓冲块组成了“磁盘缓冲区”。,块的操作,块的操作 input(A):把物理块A的内容传送到内存的缓冲块中。 Output(B):把缓冲块B的内容传送到磁盘中恰当的物理块中,数据访问,事务,系统,磁盘,恢复和原子性的联系,假设没有事务的原子性,那么重新启动事务时要么A因为再执行一遍而为1800,要么B因从未执行而保持原值,故障时,数据库中A,B值分别为多少?,恢复的基本原则和实现方法,基本原则 :“冗余”,即数据库重复存储 具体实现方法 平时做好两件事:转储和建立日志 周期地(比如一天一次)对整个数据库进行拷贝,转储

      6、到另一个磁盘或磁带一类存储介质中。 建立日志数据库。记录事务的开始、结束及数据每一次插入、删除和修改前后的值,并写到“日志”库中。 一旦发生数据库故障,分两种情况进行处理 如果数据库已被破坏:装入最近的数据库备份,重做更新操作。 如果数据库未被破坏:但某些数据不可靠,则撤消所有不可靠的修改。,故障类型和恢复方法,事务故障 可以预期的事务故障: 非预期事务故障: 系统故障 硬件故障、软件错误或掉电等等; 内存内容丢失,但不破坏数据库; 恢复子系统在系统重新启动时,分2种情况处理:对未完事务,进行UNDO,对已提交事务但更新还在缓冲的事务,进行REDO 介质故障(硬故障) 磁盘物理故障或遭受病毒破坏,检查点(checkpoint)技术,什么是检查点方法? DBMS定时设置检查点,在检查时刻才真正做到把DB的修改写到磁盘,并在日志文件中写入一条检查点记录(以便恢复时使用)。当DB需要恢复时,只有那些在检查点后面的事务需要恢复。 优点:大大减少了DB的恢复时间。,检查点方法,检查点方法的恢复算法: 根据日志文件建立事务重做队列和事务撤销队列 对重做队列中的事务进行REDO处理,对撤消队列中的事

      7、务进行UNDO处理,事务,检查点,故障点,时间,检查点,T1,T3,T2,T5,T4,事务T1不必恢复; 事务T2和事务T4必须重做(REDO);事务T3和事务T5必须撤消(UNDO),tc,tf,如何处理这五类事务?,思考:,如果写数据库和写日志这两个操作之间,发生故障,一个保留,一个丢失,则会发生什么情况? 运行记录优先原则,SQL对事务的支持,无begin transaction Commit Rollback 游标,主要内容,7.1 系统目录 7.2 事务 7.3 数据库的恢复 7.4 数据库的并发控制 7.5* 并发事务的可串行化和可恢复性 7.6 数据库的完整性 7.7 数据库的安全性 小结,并发操作,DBMS的并发控制子系统,负责协调并发事务的执行,保证数据的完整性,同时避免用户得到不正确的数据。 若没有并发控制子系统对事务进行控制,则其并发操作通常会带来四个问题: 丢失更新问题; 读脏数据问题; 错误求和问题; 不可重复读问题,并发操作带来的问题1-丢失更新,图7.10 在时间t7丢失了事务T1的更新,(FIND表示从DB中读值,UPD表示把值写回到DB),并发操作带来

      8、的问题2-读脏数据,并发操作带来的问题2-读脏数据,并发操作带来的问题3-错误求和,事务T1进行了不一致的分析,并发操作带来的问题4不可重复读,COMMIT,200,FIND A,FIND A,A:=A*2,并发操作带来的几个问题如何解决?,解决办法: 封锁技术(Locking):主要技术 排他型锁 共享型锁 时标(Timestamping),排他型封锁(Exclusive Lock) (X锁),X锁定义 如果事务T对某个数据R实现了X锁,那么T对数据R解除封锁之前,不允许其他事务T再对该数据加任何类型的锁。 操作 XFIND R: 对数据R加X锁,并读数据R,然后可对R写 XRELEASE R: 解除对数据R的X锁,使用X锁的规则,PX协议: 任何企图更新记录R的事务必须先执行“XFIND R”操作,以获得对R的X锁,才能读或写记录R;如果未获准X锁,那么这个事务进入等待队列,一直到获准X锁,事务才能继续做下去。 PXC协议 X锁的解除操作应该合并到事务的结束(COMMIT或ROLLBACK)操作中。,例:使用X锁解决数据丢失,共享型封锁(Shared Lock) (S锁),S锁定义

      9、 如果事务T对某数据加上S锁后,仍允许其他事务再对该数据加 S锁,但在对该数据的所有S锁都解除之前不允许任何事务对该数据加X锁。 操作 SFIND R:加S锁,并读数据R;不能写R UPDX R: 把S锁升级为X锁; SRELEASE R:,使用S锁的规则,PS协议 任何要更新记录R的事务必须先执行“SFIND R”操作,以获得对R的S锁。当事务获准对R的S锁后,若要更新记录R必须用“UPDX R”操作,这个操作首先把S锁升级为X锁,若成功则更新记录,否则这个事务进入等待队列。 PSC协议 S锁的解除操作应该合并到事务的结束。,例:使用S锁解决丢失更新,封锁的相容矩阵,注: N=NO,不相容的请求 Y=YES,相容的请求 X、S、:分别表示X锁,S锁,无锁 如果两个封锁是不相容的,则后提出封锁的事务要等待。,T2 T1,封锁的粒度,封锁对象的大小称为封锁的粒度。(granularity) 封锁的对象 逻辑单元:属性值、属性值集合、元组、关系、索引项、整个索引、整个数据库 物理单元 :页(数据页或索引页)、块 封锁粒度与系统并发度和并发控制开销的关系 封锁的粒度越大,系统中能被封锁的对象就越少,并发度就越小,但同时系统的开销也就越小; 相反,粒度越小,并发度越高,系统开销越大。,封锁带来的问题1-“活锁”(1),系统可能使某个事务永远处于等待状态,得不到封锁的机会,这种现象称为“活锁”(Live Lock)。 解决方法:采用“先来先服务”的策略。 如果系统运行时,事务有优先级: 产生的问题:低优先级的事务,可能即使排队也难得到封锁的机会。 解决办法:采用“升级”方法,即当一个事务等待一定时间还轮不上封锁时,可以提高其优先级别。,封锁带来的问题1-活锁(2),T1 XFIND A,T2 XFIND A,T3 XFIND A,A,A已被封锁,不成功,等待,A刚被释放,成功,时间点,A刚被T2释放,成功,T1永远等待 活锁!,解决方法:先来先服务,封锁带来的问题2-饿死(1),有可能存在一个事务序列,其中每个事务都申请对某数据项加S锁,且每个事务在授权加锁后一小段时间内释放封锁,此时

      《北京工业大学-数据库系统幻灯片-chapter7-系统实现技术》由会员F****n分享,可在线阅读,更多相关《北京工业大学-数据库系统幻灯片-chapter7-系统实现技术》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.