数据库保护课件

PPT
  • 阅读 199 次
  • 下载 0 次
  • 页数 93 页
  • 大小 1.013 MB
  • 2022-12-05 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
数据库保护课件
可在后台配置第一页与第二页中间广告代码
数据库保护课件
可在后台配置第二页与第三页中间广告代码
数据库保护课件
可在后台配置第三页与第四页中间广告代码
数据库保护课件
数据库保护课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 93
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】数据库保护课件.ppt,共(93)页,1.013 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-92419.html

以下为本文档部分文字说明:

第5章数据库保护5.1概述(summarize)5.2安全保护(securityprotection)5.3完整性保护(integralityprotection)5.4事务及事务特性(transactionandit'scharacteristics)5.5并发

控制技术(technologyofcontrolsimultaneously)5.6数据库恢复技术(technologyofrestoringDB)5.1概述(summarize)必要性:共享数据任务:安全性控制(SecurityControl)完整性控制(In

tegrityConstraints)并发控制(ConcurrencyControl)DB恢复(DBRecovery)5.2安全保护(securityprotection)5.2.1概述1.问题的提出信息安全

的重要性人员硬件无意地泄露数据?软件可能改变数据?通信天灾有意地破坏数据?措施5.2安全保护(securityprotection)计算机系统安全范畴硬件安全软件安全数据安全计算机系统三类安全性问题技术安全管理安全政策法

规5.2安全保护(securityprotection)2.一般计算机系统安全控制机制计算机系统安全措施的软件安全涉及到:操作系统网络系统数据库管理系统特点:层层设防分头把关相互配合共保安全泄露改变第一道防线第二道防线第三道防线损坏数据财产预防

性措施检测性措施纠正性措施消极因素威胁危险5.2安全保护(securityprotection)3.DBS安全概念——防止对DB中的数据的非授权使用。是指保护数据库,以防止不合法的使用所造成的数据泄露、更改或破坏。(避免泄露、更改或破坏)。在妥当的时刻,以妥当的形式,向妥当的人,提

供妥当的数据。4.DBS中的一般方法1)用户鉴别2)存取控制3)密文存储4)审计5)子模式隔离5.2安全保护(securityprotection)5.2.2用户鉴别系统提供一定的方式让用户标识自己的名字和身份,系统进行核实,通过鉴定后才提供系统使用权。每次用户要求进入系统时,

由系统将用户提供的身份标识与系统内部记录的用户合法标识进行核对,通过鉴定后才提供对系统的使用权。常用方法•口令•过程识别•上机密码卡•指纹、声音、照片等•回答问题5.2安全保护(securityprotection)1.口令:口令是常用的一种用户标识①固定口令②随机口令③口令时限2.可读声份卡

片声波、指纹、签名、图像3.回答问题用户名用户标识……5.2安全保护(securityprotection)5.2.3存取控制1.存取控制对于获得上机权后又进一步发出存取数据库操作的户,DBMS查找数据字典,根据存取权限对操作的合法性进行检查,若用户的操作请求超出了

定义的权限,系统将拒绝执行此操作。2.方法定义用户权限合法权限检查5.2安全保护(securityprotection)3.自主存取控制(DAC)方法自主存取控制DAC(DiscretionaryAccessControl)在TCSEC/TDI安全级别中,自主存取控制处于C1级。

是由用户或DBA定义存取权限的一种控制策略。目前SQL标准对DAC提供支持,通过SQL的GRANT和REVOKE命令实现。用户权限数据对象操作类型授权语句GRANTREVOKE访问权限由两个要素组成:数据

对象和操作类型系统通过控制它们防止非授权访问5.2安全保护(securityprotection)DB数据对象名:模式、子模式、表、属性(精度)操作类型:Create,Select,update,insert,delete,all其它:如操作时间、范围,…数据对象和操作权限对应表对象对象类型操作

权限属性列TABLESELECT,INSERT,UPDATE,DELETEALLPRIVIEGES视图TABLESELECT,INSERT,UPDATE,DELETEALLPRIVIEGES基本表TABLESELECT,INSERT,UPDATE,ALTER,INDEX,DELET

EALLPRIVIEGES数据库DATABASECREATETAB5.2安全保护(securityprotection)控制访问授权命令的组成SQL语言的数据访问控制命令授权命令GRANT收回授权REVOKE命令格式命令格式用户名数据对象名操作

类型其他GRANT<权限>[,<权限>]...[ON<对象类型><对象名>]TO<用户>[,<用户>|PUBLIC]...[WITHGRANTOPTION];REVOKE<权限>[,<权限>]...[ON<对象类型><对象名>]FROM<用户>[,<用户>|p

ublic]...5.2安全保护(securityprotection)4.强制存取控制(MAC)方法所谓MAC(MandatoryAccessControl)是为保证更高程度的安全性,按照TDI/TCSEC标准中的安全策略的要求

,所采取强制的存取检查手段。MAC在标准中处于C2级。它不是用户能直接感知或进行控制的。适用于对数据有严格而固定密级分类的部门。1)实体类别主体(用户)客体(数据)2)敏感度标记(label)许可证级别(Clea

ranceLevel)密级(ClassificationLevel)绝密(TopSecret)、机密(Secret)可信(Confidential)、公开(Public)5.2安全保护(securitypro

tection)3)存取规则当某一用户(主体)以某一许可证标记进入系统后,系统要求他对任何客体的存取必须遵循如下规则:仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;仅当主体的许可证级别等于或小于客体的密级时,该主体才能写相应的客体。规则禁止拥有高许可证级别的主体更

新低密级的数据对象,从而防止了敏感数据的泄漏。MAC对数据本身进行密级标记,无论数据如何复制,标记与数据是不可分割的整体。只有符合密级标记要求的用户才可以操作相应数据。5.2安全保护(securityprotection)最高密级主体最低密

级主体5.2安全保护(securityprotection)DAC和MAC共同构成DBMS的安全机制安全检查DAC检查MAC检查SQL语法分析&语义检查继续5.2安全保护(securityprotect

ion)5.视图隔离机制视图是虚表,就象架设在用户与基表之间的一道桥梁,用户可以对视图引用的数据进行操作,也可以直接访问基表,但对安全级别要求较高的数据一般通过视图进行访问,从而避免直接访问基表中其他数据。对于终端

用户,虽然数据库中的数据是面向全局的,但通过视图隔离,他只能看到专门为他定义的视图中与自己相关的数据。其他与他无关的数据被子模式即视图隔离或屏蔽了。USER-2通过VIEW-1可以访问COLUMN-1而无法访问COLUMN-2,这就是VIEW-1的屏蔽作用。CR

EATEVIEWVIEW-1ASSELECTCOLUMN-1FROMTABLE-1GRANTALLONVIEW-1TOUSER-25.2安全保护(securityprotection)5.2安全保护(securityprotection)4)攻击审计已发生攻击操作及危害系统

安全事件的检测和审计。追踪恶意破坏活动。2.技术1)静态技术利用软件设计说明书、流程图分析、明确易被攻击的环节。2)动态技术实际运行检测(控制逻辑,…)性能测试(测试用例、仿真程序)3)结果验证数据的选择、收集和分析。5.2安全保护(securityprotection)5.2.5数据加密以

密文形式保存和传输数据(只有知道密钥的用户才能访问)。1.处理流程2.加密方法信息编码信息换位信息替换5.3完整性保护(integralityprotection)5.3.1概述1、定义——数据的正确性,有效性和相容性。指数据库中数据与现实世界的实际情况是相符合的或数据库中数

据自身不存在自相矛盾的现象。A=10A=10U1U1U15.3完整性保护(integralityprotection)2、功能1)完整性要求定义;2)监督事务执行,测试是否违反完整性限制条件;3)若发生违反情况,则进行相应处理(拒绝、报告、纠正、忽略)。现实世界的A与D

B中的A保持一致,且U1、U2、U3等所有用户从DB中查询的结果均为10,则称A具有完整性,否则就是不完整的。5.3完整性保护(integralityprotection)3、完整性类型1)实体完整性2

)参照完整性3)用户定义完整性4.处理由DBMS提供的一种检查数据是否满足语义规定条件(即完整性约束条件)的机制(完整性检查)。――数据的约束条件是语义的体现,DBMS提供完整性约束条件定义机制,并将这些定义作为模式的一部分存入数据库中。SQL语言C

REATETABLE命令的Constraint子句即用以定义完整性约束条件。5.3完整性保护(integralityprotection)5.3.2完整性约束条件1、基本概念①定义:施加于DB中数据之上的语义限制条件.

②约束对象粒度:列级、元组级、关系级③约束对象状态静态:反映DB状态合理性的约束。动态:反映DB状态变迁的约束。④约束时机(Immediateconstraints)(1)立即约束:——一条语句执行完后立即检查。(2)延迟约束:——事务执行结束

后检查。例如:转帐,从A到B后,帐才能平,才能进行检查。5.3完整性保护(integralityprotection)5.3完整性保护(integralityprotection)2、静态列级约束——对一个列的取值域的约束。①数据类型约束(类型、长度、单位、精度)如:姓名XM为Cha

r长8位;年龄NL为Int型,长3位。②数据格式约束如:工作证号前2位表示省,后3位表示县,后4位表示单位顺序号,后5位表示个人顺序号。③值域约束如:成绩CJ≤100,年龄NL≤150,性别XB={男,女}④空值约束是否允许空值列。如:成绩CJ可为空。⑤其它约束5.3完整性保护

(integralityprotection)3、静态元组约束对一个(仅一个)元组中各列值间联系的约束。如:总额≥单价工龄<年龄实发工资=应发工资-总扣款4、静态关系约束——对一个关系中若干元组之间或若干关系的联系的约束。①实体完整性约束②参照完整性约束③函数依赖约束④统计约束如:职工最低工

资不能低于本部门职工平均工资的50%。老板工资不能超过员工平均工资的10倍。5.3完整性保护(integralityprotection)5、动态列级约束——修改列定义或列值时的约束。①修改定义约束——修改定义时新老值间的约束。如:将允许空值列改为不允许空值时,若该列值已有空值,则

不可修改。②修改值约束——修改时新旧值间的约束。如年龄不能修改得更小(只会长大)。6、动态元组约束——修改元组时新旧值间的约束。7、动态关系约束——施加于关系上的前后状态的约束。如:事务的一致性和原子性约束就是保证动态关系约束的技术。5.3完整性保护(integralityprotection)

5.3.3完整性控制1、实体完整性(entityintegrity)——对关系模式候选码施加的完整性控制。①不允许空;②不能重复。例:student(XH,XM,XB,NL)XH为主码,不能为空course(KH,KM)KH为主码,不能为空sc

(XH,KH,CJ)XH,KH不能为空Createtablestudent(XH,Char(6)PrimaryKey,…,)通常用PrimaryKey定义主码,用Unique定义候选码。一般DBMS会在PrimaryKey上自动加上Index在Un

ique上的Index需另行声明5.3完整性保护(integralityprotection)多属码必须用表约束定义单属码可用列约束或表约束定义5.3完整性保护(integralityprotection)2、参照完整性(refer

entialintegrity)——对外码施加的完整性控制。参照关系:外码所在关系,如STUDENT、SC,常称为从表或子表;被参照关系:主码(同时又是另一关系中的外码)所在关系,如student,course常称为主表或父表。CLASSClnoClnameMajor01双学位计算

机02专生本数学04自修物理05研究生化学STUDENTSSnSnameClno991001牛得草01991020草上飞01001001鱼得水04001101雪上飘055.3完整性保护(integralitypr

otection)1)外码分类•父表子表不同,外码为子表的非主属性例:关系模式CLASS(Clno,clname,Major)父表STUDENTS(Sno,Sname,Clno)子表外码Clno是子表STUDENTS的非主属性•父表与子表相同,外码为非主属性EM

PLAYEE(Eno,Ename,dept,Manager)Manager为外码,引用本表的EnoManager为Eno的直接上司,用其Eno表示。5.3完整性保护(integralityprotection)•父表子表不同,外码为子表的主属性STUDENTS(Sno,Sname,C

lno)父表COURSEES(Cno,cname,Score)父表SC(Sno,cno,Grade)子表外码Sno,Cno,为子表SC的主属性2)外码的取值•NULL(只有外码为子表非主属性时可取空值)•为父表中的某值的引用5

.3完整性保护(integralityprotection)3)控制策略(A)插入策略•在从表中插入元组•受限插入:仅当父表中存在插入元组在外码值的相应元组时,系统执行插入操作,否则拒绝此插入操作。•递归插入若父表中不存在与插入元

组相对应的相应元组,则首先向父表中插入相应元组,然后再向子表中插入该元组。5.3完整性保护(integralityprotection)(B)修改策略•修改父表主码•置空修改将从表中相关记录在外码上的值全部置为NULL

。例如:要将CLASS表中的Clno=‘01’改为‘101’,则由DBMS自动将STUDENTS表中的所有Clno=‘01’的记录的Clno属性置NULL。•拒绝修改拒绝执行此类操作。5.3完整性保护(integralityprotecti

on)•关联修改将从表中相关记录在外码上的值一起自动修改。例如:要将CLASS表中的Clno=‘01’改为‘101’,则由DBMS自动将STUDENTS表中的所有Clno=‘01’的记录的Clno都修改为‘101’。•修改从表外码•拒绝修改/受限插入如果父表中存在待修改值,

则执行,否则不允许执行此类修改操作。例如:Sno=‘991001’的学生的Clno=‘05’,将其clno改为‘01’,则执行,如果改为‘AA’,则拒绝执行。(CLASS表中不存在clno=‘AA’的记录)5.3完整性保护(integralityprotection)•递归插入如果父表中不存在待修

改值,则先在父表中自动插入一条包含修改值的记录,然后再修改从表外码。例如:上例中将Sno=‘991001’的学生的clno改为‘AA’的操作。用此控制策略,将先在CLASS表中插入clno=‘AA’的记录,然后将S

TUDENTS中的Sno=‘991001’的学生的clno改为‘AA’。(C)删除策略•删除父表元组•置空删除(NULLIFIES)删除父表中元组的同时,自动将子表中的相关元组的外码置NULL值。例如:删除CLASS表clno=‘01’的元组时,D

BMS自动将STUDENTS表中所有clno=‘01’的元组的clno改为NULL值。5.3完整性保护(integralityprotection)•受限删除(RESTRICTED)发出警告,拒绝执行此类操作。•关联删除(CASCADES)删除父表中元组的同时,自动删除子表中的相关元组。例如:删除

CLASS表clno=‘01’的元组时,DBMS自动将STUDENTS表中所有clno=‘01’的元组一起删除。株连九族式。5.3完整性保护(integralityprotection)3、用户定义完整性(integrityo

fuserdefinition)1)空值控制——对给定属性施加不允许空值限制(NOTNULL)2)单个属性控制(Check约束)为:(CJisNull)OR(CJBETWEENOAND100)3)多属性控制如:XB=‘男’ANDNL<=304)触发器(Trigger)Trigger则

是基于对表的操作(动作)的;当指定的表上发生特定的操作,系统便激活Trigger程序。产品均支持T5.4事务及事务特性(transactionandit'scharacteristics)5.4.1事务(transaction)1、定义构成一个独立逻辑工作单位的数据库操作集。一条SQ

L语句;一组SQL语句序列;一个包含对DB操作的应用程序。5.4事务及事务特性(transactionandit'scharacteristics)2、构成方式①显式BEGINTRANSACTION…

…SQL语句ENDTRANSACTION/COMMIT/ROLLBACK其中:COMMIT提交,事务对DB的修改写回到磁盘上的DB中去。ROLLBACK:回滚,撤消对DB之修改,恢复到事务开始状态。②缺省一条或多条SQL语句COMMIT/R

OLLBACK5.4事务及事务特性(transactionandit'scharacteristics)5.4.2事务的ACID性质1、原子性(Atomicity)①定义事务是一个不可分割的工作单元,其对DB的操作要么都做,要么都不做。②目标保证DB数据的一致性(转帐问题)。③技

术日志+ROLLBACK(UNDO)(意外终止);并发控制(交叉执行)。④实现实现由DBMS自动完成。5.4事务及事务特性(transactionandit'scharacteristics)2、一致性(consistency)①定义事务的执

行必须是将DB从一个正确(一致)状态转换到另一个正确(一致)状态。如:转帐问题中,A有100万人民币是一个正确状态,减去50万,转到B帐上50万,DB从一个正确状态转变到另一个正确状态,这两个操作,若只做其中一个,则不能实现DB从一个正确状态转到另一个正确状态,破坏了事务一致性。②

目标保证DB数据一致性(丢失更新、读脏、读不可重复)。③技术并发控制。④实现用户定义事务(保证相关操作在一个事务中);DBMS自动维护之。5.4事务及事务特性(transactionandit'scharacteristics)

3、隔离性(isolation)①定义一个事务中对DB的操作及使用的数据与其它并发事务无关,并发执行的事务间不能互相干扰。②目标防止链式夭折。③技术并发控制。④实现DBMS自动实现。5.4事务及事务特性(transactionandit'sc

haracteristics)4、持久性(durability)①定义一个已提交事务对DB的更新是永久性的,不受后来故障的影响。②目标:保证DB可靠性③技术备份+日志。④实现:DBMS恢复子系统自动实现。5.5并发控制技术(technologyofcontrolsi

multaneously)并发操作调度:保证多用户并发操作数据库中信息时的正确性、一致性所采取的措施。封锁:一种并发调度的技术。5.5并发控制技术(technologyofcontrolsimultaneously)5.5.1并发操作

调度1.问题的提出1)丢失更新(lostupdate)——两个以上事务从DB中读入同一数据并修改之,其中一事务的提交结果破坏了另一事务的提交结果,导致该事务对DB的修改被丢失。2)不可重复读(readnorepeata

ble)——同一事务重复读同一数据,但获得结果不同。3)读‚脏‛数据(readdirty)——读未提交的随后又被撤消(Rollback)的数据。5.5并发控制技术(technologyofcontrolsim

ultaneously)1)丢失更新丢失修改是指事务1与事务2从数据库中读入同一数据并修改,事务2的提交结果破坏了事务1提交的结果,导致事务1的修改被丢失。例:在图中,事务1与事务2先后读入同一个数据A=16,事务1执行A←A-

1,并将结果A=15写回,事务2执行A←A-1,并将结果A=15写回。事务2提交的结果覆盖了事务1对数据库的修改,从而使事务1对数据的修改丢失。时间T1DB中A值T2注:A=16表示从DB中读入A值。

t1读A=1616……t2……读A=16t3计算A:=A-1……存盘COMMIT15t415计算A:=A-1存盘COMMIT5.5并发控制技术(technologyofcontrolsimultaneou

sly)5.5并发控制技术(technologyofcontrolsimultaneously)2)不可重复读不可重复读是指事务1读取数据后,事务2执行更新操作,使事务1无法再现前一次读取结果。具体地讲,不可重复读包括三种情况:事

务1读取某一数据后,事务2对其做了修改,当事务1再次读该数据时,得到与前一次不同的值。事务1按一定条件从数据库中读取某些数据记录后,事务2删除了其中部分记录,当事务1再次按相同条件读取数据时,发现某些记录神秘地

消失了。事务1按一定条件从数据库中读取某些数据记录后,事务2插入了一些记录,当事务1再次按相同条件读取数据时,发现多了一些记录。5.5并发控制技术(technologyofcontrolsimultaneo

usly)时间T1DB中值T2t1读A=50读B=100计算S:=A+B=150A=50B=100S=150t2A=50B=200S=150读B=100计算B:=2*B=200COMMITt3读A=50读B=200计算S:=A+B=250事务T1验算结果不正确5.5

并发控制技术(technologyofcontrolsimultaneously)3)读‚脏‛数据指事务T1修改某一数据,并将其写回磁盘(并未提交,OS的I/O调度结果),事务T2读取同一数据后,T1由于某种原因

被撤销,这时T1修改过的数据恢复原值,T2读到的数据与数据库中的数据出现不一致,T2读得的不稳定的瞬间数据称为‚脏‛数据。例如:T1将C值修改为200,T2读C为200,若T1被撤销,其修改作废,C应恢复为10

0,这时再看T2读到的C值就成了无根据的数据。5.5并发控制技术(technologyofcontrolsimultaneously)产生上述三类数据不一致的原因:并发操作破坏了事务的隔离性。因此对事务的并发操作必须加以控制,才能避免

此类现象的发生。并发控制:用正确的方法调度并发操作,使一个事务的执行不受其他事务的干扰,从而避免数据的不一致现象。5.5并发控制技术(technologyofcontrolsimultaneously)2.正确性标准1)单个事务——若非并发的执行,每个事务都能保证DB的

正确性。(上述问题,都是因事务并发执行产生)2)多个事务——多个事务以任意串行方式执行都能保证DB的正确性。时间T1DB中A值T2注:无论是T1、T2顺序或是T2、T1顺序,结果A都为14t1读A=1616……t2A:=A-1t3C

OMMIT15……t415A=15t515A:=A-1t614COMMIT5.5并发控制技术(technologyofcontrolsimultaneously)显然,任何一事务并发执行时禁止其它事务执行,总能保证DB正确性

,但不利于数据共享。3)可串行化调度(Serializability)——当且仅当多个事务并发执行的结果与该事务任一串行执行的结果相同时,则该并发执行是可串行化的。3.并发控制(可串行化调度)方法1)加锁控制(Locking)2

)乐观假设(Optimistic)3)时标(timestamping)5.5并发控制技术(technologyofcontrolsimultaneously)5.5.2封锁1、封锁并发控制的一种技术。2、封锁规则①对将要存取的数据须先申请加锁,加锁成功才能存取;②

已被加锁的数据不能再加不相容锁;③一旦退出使用应适时释放锁;④未被加锁的数据不可对之解锁。3、封锁类型1)排它锁(X锁:exclusivelock)又称写锁若事务Ti持有数据Di的X锁,则Ti可读、写Di,其它任何事务不能再对Di加任何锁,直至Ti释放该X锁。X锁用于写保护,防止丢失更新

。5.5并发控制技术(technologyofcontrolsimultaneously)2)共享锁(S锁:sharelock)又称读锁若事务Ti持有数据Di的S锁,则其它事务仍可对Di加S锁,但不可加X锁,直到Ti释放该S锁。一旦施加S锁,读可共享但其它事务不可改。S锁用于读操作。

封锁类型的相容矩阵T1T2XS-Y相容的请求N不相容的请求XNNYSNYY-YYY5.5并发控制技术(technologyofcontrolsimultaneously)4.申请时机1)事务开始时申请(常用)·无死锁;·锁开销少;·并发性低2)一个SQL语句开始时·并发性高;·

锁开销大;·易产生死锁;·提交频繁5.封锁粒度(granularity)——被封锁数据的范围逻辑单元:整个DB、整个关系、整个索引、元组、索引项、属性值集、属性值。物理单元:块、数据页、索引页。评价:1)粒度大:被封锁对象少,并发性差,开销小。2)粒度

小:被封锁对象多,并发性高,开销大。5.5并发控制技术(technologyofcontrolsimultaneously)6.封锁粒度选择的一般策略1)需常存取多个关系的大量元组时宜采用DB级粒度;2)需常存取单个关系大量元组时宜采用关系级粒度;3)需常存取单个关系少量元组时宜采用元

组级粒度;4)一般不采用属性级粒度;5)物理单元一般不宜采用。7.封锁协议(Lockingprotocol)1)概念(何谓封锁协议)——申请、持有和释放锁的规则。2)目的——实现正确的并发操作调度。3)类别①支持一致性维护的三级封锁协议;②支持并行调度可串行化的两

段锁协议;③避免死锁协议。5.5并发控制技术(technologyofcontrolsimultaneously)5.5.3三级封锁协议1.1级封锁协议1)策略事务Ti在修改数据Di之前须先对Di加X锁,直到事务Ti结束(commit/r

ollback)才释放。2)功能防止丢失修改;保证Ti可恢复(若意外终止,则rollback后才可释放)。3)问题:不能防止不可重复读和读‚脏‛数据。(1级协议仅对修改操作,若读则不加锁)5.5并发控制技术(technologyofcont

rolsimultaneously)遵循一级封锁协议的一种调度T1T2T1T2T1T21)Xlock(A)=T读A=16A=50B=100Xlock(C)=TC=1002)Xlock(A)=FC:=2*C=2003)A:=A-1=15Xlock(S)=TS:=A+B=150B=2

00C=2004)Xlock(A)=FROLLBACK5)COMMITCOMMITUNLOCK(C)6)Xlock(A)=FUnlock(B)7)Unlock(A)A=50B=2008)Xlock(A)=T读A=15

Xlock(S1)=TS1:=A+B=2509)A:=A-1=1410)COMMITS!=S1写丢失避免了!不可重复读读“脏”数据5.5并发控制技术(technologyofcontrolsimultaneously)2.2级封锁协议1)策略1级封锁协议加上事务Ti在读取Di之前必须对Di加S

锁,读完后即可释放该S锁。2)功能·防止丢失修改;·防止读脏。3)问题:不能防止读不可重复(读完即释放,重读时可能其它事务对之修改)。5.5并发控制技术(technologyofcontrolsimultaneo

usly)遵循二级封锁协议的一种调度T1T2T1T21)SLOCK(A)=.T.A=50SLOCK(B)=.T.B=100Xlock(C)=.T.C=100C:=2*C=2002)Unlock(A)Unlock(B)SLOCK(C)=.F.3)Xlock(S)=.T.S:=A+B=15

0ROLLBACK4)Xlock(B)=.T.B=100B=B*2=200SLOCK(C)=.F.5)COMMITUNLOCK(C)6)Unlock(B)SLOCK(C)=.T7)SLOCK(A)=.T.SLOCK(B)=.T.A=50B=200Unlock(A)Un

lock(B)C=1008)9)Xlock(S1)=.T.S1:=A+B=250S!=S1不可重复读不能避免读“脏”数据避免了5.5并发控制技术(technologyofcontrolsimultaneously)3.3级封锁协议1)策略在1级封锁协议上加上事务Ti读Di前须先对Di加S锁

,直至Ti结束后才释放该S锁。2)功能·防止丢失修改;·防止读‚脏‛;·防止读不可重复。5.5并发控制技术(technologyofcontrolsimultaneously)遵循三级封锁协议的一种调度T1T2

T1T21)SLOCK(A)=.T.A=50SLOCK(B)=.T.B=100Xlock(C)=.T.C=100C:=2*C=2002)Xlock(B)=.F.SLOCK(C)=.F.3)Xlock(S)=.T.S:=A+B=150ROLLBACK4)SLOCK(C)=.F.5)Xlock(S

1)=.T.A=50B=100S1:=A+B=150COMMITUNLOCK(C)6)Unlock(A)Unlock(B)Unlock(B)SLOCK(C)=.T7)Xlock(B)=.T.B=100B=B*2=

200C=1008)S=S1可重复读读“脏”数据避免了5.5并发控制技术(technologyofcontrolsimultaneously)三级封锁协议的主要区别在于何种操作需要申请封锁,以及获得封锁后

何时释放锁(持锁时间)。分别采用三级封锁协议中不同级别的协议,得到的一致性保证是不同的。X锁S锁一致性保证操作结束释放事务结束释放操作结束释放事务结束释放不丢失修改不读脏数据可重复读一级√√二级√√√√三级√√√√√5.5并发控制技术(technolog

yofcontrolsimultaneously)5.5.4死锁(deadlock)1.含义两个或两个以上事务均处于等待状态,每个事务都在等待其中另一个事务封锁的数据,导致任何事务都不能继续执行的现象称为死锁。2.产生条件①

互斥(排它性控制);②不可剥夺(释放锁前,其它事务不能剥夺);③部分分配(每次申请一部分,申请新的锁时,又占用已获得者);④环路(循环链中,每事务获得的数据同时又被另一事务请求)。5.5并发控制技术(technologyofcontrolsimultaneously)T1、T2是两个均须修改

数据A、B的事务,如果用户程序遵循三级封锁协议,但申请锁的顺序是随机的,则有可能出现下列情况——死锁T1T2XLOCK(A)=.T.READA(A)XLOCK(B)=.T.READ(B)XLOCK(B)=.F.(等待)T1等待获

得B的锁XLOCK(A)=.F.(等待)T2等待获得A的锁XLOCK(B)=.F.(等待)T1等待获得B的锁…(等待)XLOCK(A)=.F.(等待)T2等待获得A的锁…(等待)一直等待下去5.5并发控制

技术(technologyofcontrolsimultaneously)3.预防:——防止产生条件之一发生(破坏产生死锁的条件)①一次封锁法——每个事务事先一次获得所需数据的全部锁。如:T1获得所有数据A、B锁,

T1连续执行,T2等待;T1执行完后释放A、B锁,T2继续执行,不会发生死锁。特征:·简单;无死锁;粒度大;并发度低;·难以确定封锁对象。(DB数据变化,不能预先确定封锁对象,只好扩大封锁范围)②顺序封锁法——事务按预先确定的数据封锁顺序实行封锁。如:

B树从根开始特征:·无死锁;·顺序难以确定;·(运行中才发现要封锁对象)封锁对象难以确定。5.5并发控制技术(technologyofcontrolsimultaneously)4.诊断与解除①等待图法;•构造事务的等待图;•周期性检测该等待图;•判

断存在回路否;•存在,则撤消某一事务;•选择一个处理死锁代价最小的事务(NP难度问题);•释放所有锁,使其它事务继续运行。②超时法当一个事务的等待时间超过规定的时限,则认为发生死锁,撤销该事务。•实现简单•存在问题可能误判死锁;时限标准难以把握5.5

并发控制技术(technologyofcontrolsimultaneously)5.5.5活锁(livelock)1、含义——事务因故永远处于等待状态。如:T1T2T3T4…TnLOCK(R)=.T.LOCK(R)=.

F.LOCK(R)=.F.LOCK(R)=.F.UNLOCK(R)LOCK(R)=.F.LOCK(R)=.T.LOCK(R)=.F.LOCK(R)=.F.…LOCK(R)=.F.LOCK(R)=.F.UNLOCK(R)LOCK(R)=.F.…(等待)LOCK(R)=.T.5

.5并发控制技术(technologyofcontrolsimultaneously)2、预防方法FCFS:FirstComeFirstServer先来先服务。对于事务有优先级的系统,可设置一个最长等待时间,与优先级结合,调度事务的执行。5.5并发控制技术(technology

ofcontrolsimultaneously)5.5.6两段锁协议-2PL:two-phaselocking1.可串行性可串行性是事务并发执行正确性的判断准则,给定一个并发调度,当且仅当它是可串行化的,才认为它是正确的。假设有两个事务:T1T2,数据库中A、B的初值均为2;T1:读B;

A=B+1;写回AT2:读A;B=A+1;写回B串行调度只有两种可能:·T1――T2结果为:A=3,B=4·T2――T1结果为:A=4,B=35.5并发控制技术(technologyofcontrolsi

multaneously)下面给出几种不同的调度策略T1T2T1T2T1T2T1T2SLOCK(B)Y=B=2Unlock(B)Xlock(A)A=Y+1=3写回AUnlock(A)SLOCK(A)X=A=3Unlock(A)Xlock(B)

B=X+1=4写回BUnlock(B)SLOCK(B)Y=B=3Unlock(B)Xlock(A)A=Y+1=4写回AUnlock(A)SLOCK(A)X=A=2Unlock(A)Xlock(B)B=X+1=3写回BUnloc

k(B)SLOCK(B)Y=B=2Unlock(B)Xlock(A)A=Y+1=3写回AUnlock(A)SLOCK(A)X=A=2Unlock(A)Xlock(B)B=X+1=3写回BUnlock(B)SLOCK(B)Y=B=2Unlock(B)Xlock(A)A=Y+1=3

写回AUnlock(A)SLOCK(A)等待等待等待X=A=3Unlock(A)Xlock(B)B=X+1=4写回BUnlock(B)串行化调度串行化调度不可串行化调度可串行化调度5.5并发控制技术(technologyofcontrolsimultaneously)2.含义事务分为两个阶段

:·第一阶段称为扩展阶段(获得锁);·第二阶段称为收缩阶段(释放锁)。遵循两段锁协议的事务,其封锁序列可以为:SLOCK(A)SLOCK(B)XLOCK(C)UNLOCK(B)UNLOCK(A)UNLOCK(C)不遵循两段锁协议的事务,其封锁序列可能为:SLOCK(A)UNLOCK(A)SLOCK

(B)XLOCK(C)UNLOCK(B)UNLOCK(C)扩展阶段收缩阶段5.5并发控制技术(technologyofcontrolsimultaneously)3.策略①在对任何数据读、写之前,须先获得该数据锁(且);②在释放一个封锁之后,该事务不能再申请任何其它锁。4.目标

:实现并发操作调度的可串行化。事务遵循两段锁协议是可串行化调度的充分条件,而不是必要条件。即若并发事务都遵循两段锁协议,则对其的任何并发调度策略都是可串行化的;若对并发事务的一个调度是可串行化的,但该事务不一定符合两段锁协议(

释放一个锁之后又继续去获得另一个锁的事务仍然可能产生正确结果)。5.6数据库恢复技术(technologyofrestoringDB)什么是DB恢复将因破坏或故障而导致的DB数据的错误状态恢复到最近一个正确状态的技术。·目标1、保持事务原子性;2、保持事务持久

性。5.6数据库恢复技术(technologyofrestoringDB)5.6.1DBS故障1.事务故障:事务执行时未能达到预期的终点。1)分类•逻辑错误(事务程序本身的错误)数据输入错、溢出、资源缺乏、应用程序错误。•系统错误死锁等。2)特征•导

致事务夭折;•夭折事务对DB的部分修改可能已写入DB。(DB处于不正确或不一致状态)5.6数据库恢复技术(technologyofrestoringDB)2、系统故障:造成系统停止运转的任何事件,使得系统要重新启动。1)分类•硬件的故障(CPU等);•软件故障(

DBMS,OS,APS);•操作失误;•停掉电。2)特征•内存数据丢失;•外存数据不受影响;•一些尚未完成事务的结果可能已送入DB(提交过程之中);•已完成事务的结果可能部分还未送入DB(提交过程之中);•

已完成事务的结果全部未送入DB(未及提交)。(DB处于不正确或不一致状态)5.6数据库恢复技术(technologyofrestoringDB)3.介质故障指外存储器故障。1)分类:•磁盘损坏•磁头碰撞•强磁场干扰等2)特征•数据库遭到破坏,正存取的数据的事务受

到影响•可能性小•破坏性最大4.计算机病毒5.6数据库恢复技术(technologyofrestoringDB)5.6.2恢复技术(备份+日志)5.6.2.1备份技术1、备份方式1)静态备份(转储:dump)——DBS中无事务运行时进行转储。特征:·转储期间不对DB进行任

何操作;·一定得到一个一致性副本。优点:简单缺点:·暂停一切事务运行;·降低DB可用性。5.6数据库恢复技术(technologyofrestoringDB)2)动态备份——转储与事务并发执行·特征:转储期间可对DB进行存取与修改操作。·优点:不影响事务

运行。·缺点:不能保证获得一致性副本。如转储时,某个值为100,但另一事务此后对之修改,这样正备份的副本是与DB中实际值不一致的过时数据。2、备份策略1)海量备份·方法:定期或不定期将DB全部数据转储。·

优点:简单。·缺点:·重复转储;·转储量大;·停止运行(静态转储)。5.6数据库恢复技术(technologyofrestoringDB)2)增量备份(incrementalclumping)·方法:每次转储上次转储后更新过的数据。·优点:备份量小。·缺点:恢复过程较复杂。3)

写副本·方法:每次写时,同时写另一个副本。·优点:简单。·缺点:重复写,操作效率下降。5.6数据库恢复技术(technologyofrestoringDB)5.6.2.2日志(logging)1、日志概念——记录事务对D

B的更新操作的文件称之为日志文件。2、日志文件类型1)以记录为单位的日志文件;2)以数据块为单位的日志文件。3、记录为单位日志文件内容1)事务开始标记(一个日志记录);2)事务结束标记(一个日志记录);3)每个事务的所有更新操作(

每个操作一个日志记录)。5.6数据库恢复技术(technologyofrestoringDB)4、每个日志记录内容:1)事务标识;2)操作类型;3)操作对象;4)更新前数据旧值;5)更新后数据新值。5、数据块为单位日志文件内容1)数据块(整块)更新前内容;2)数据块

更新后内容。5.6数据库恢复技术(technologyofrestoringDB)6、日志管理1)按事务执行时间顺序记日志;2)须先写日志后写DB。7、用途1)事务恢复2)DB故障恢复3)破案5.6数据库恢复技术(technologyof

restoringDB)5.6.2.3恢复策略1、事务故障恢复——因各种故障导致事务未执行完而abort时的恢复。1)目标:维护原子性2)恢复步骤①反向扫描日志文件:——查事务执行过的更新操作;②执行该事务的UNDO;③循环执行上述操作并同样处理,直至事务开始标记。3)特点:DBMS自动

完成5.6数据库恢复技术(technologyofrestoringDB)2、DB故障恢复1)系统故障恢复—撤消故障发生时未完成事务和重做已完成事务的恢复。①目标:持久性②步骤·正向扫描日志文件;·找出故障发生前已提交事务,该事务标识记入RED0队列;·找出故障发生时未完成事务,该事务

标识记入UNDO队列;·对UNDO队列中事务进行UNDO;(反向扫描日志文件,执行该事务的UNDO操作);·对RED0队列中事务进行RED0;·正向扫描日志文件,执行该事务的RED0操作。③特点:DBMS自动完成。5.6数据库恢复技术(techno

logyofrestoringDB)2)介质故障恢复——DB和日志文件破环时的恢复。①目标:持久性②方法a、向前恢复(未提交事务)·装入后备副本;—先恢复到最近备份时的正确状态;·装入系统日志文件;·正向扫描日志文件;·利用日志文件后映像(该

备份点以后做了哪些操作)执行RED0。(前一个副本+REDO)5.6数据库恢复技术(technologyofrestoringDB)b、向后恢复(已提交事务)·装入后备副本;·装入日志文件;——备份结束时刻的日志

文件;·反向扫描日志文件;·利用日志文件中前映像排除对DB的改变。(前映像+UND0)c、重运行·装入最新后备副本;·重新运行最近一次备份以来的事务。优点:简单,无日志,只需登记已执行事务。缺点:·时间长;·重运行事务执行顺序可能变化。5.6数据库恢复技术(tech

nologyofrestoringDB)5.6.2DB镜像(DBmirror)1、原因介质故障:中断运行,周期备份,恢复麻烦。2、方法利用自动复制技术。3、策略1)整个DB/关键数据复制到另一个介质(镜像磁盘);2)DB更新时,DBMS自动将更新结果复制到该

副本;3)故障发生时,利用该镜像磁盘进行恢复。5.6数据库恢复技术(technologyofrestoringDB)4、优点1)无需关闭系统(自动进行镜像复制);2)无需重装副本;3)提高可用性;4)提高并发

性。5、缺点频繁复制更新,效率下降。5.6数据库恢复技术(technologyofrestoringDB)ReadReadReadReadReadRead复制恢复主数据库镜像应用1应用1应用4应用3应用2应用4应用3应用2镜像主数据库

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?