版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章数据库维护5.1概述(summarize)5.2平安维护(securityprotection)5.3完好性维护(integralityprotection)5.4事务及事务特性(transactionandit'scharacteristics)5.5并发控制技术(technologyofcontrolsimultaneously)5.6数据库恢复技术(technologyofrestoringDB)管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.1概述(summarize)必要性:共享数据
义务:
平安性控制(SecurityControl)
完好性控制(IntegrityConstraints)
并发控制(ConcurrencyControl)
DB恢复(DBRecovery)管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.2平安维护(securityprotection)5.2.1概述1.问题的提出信息平安的重要性
人员硬件无意地泄露数据?软件能够改动数据?通讯天灾有意地破坏数据?措施
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.2平安维护(securityprotection)计算机系统平安范畴硬件平安软件平安数据平安计算机系统三类平安性问题技术平安管理平安政策法规管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.2平安维护(securityprotection)2.普通计算机系统平安控制机制计算机系统平安措施的软件平安涉及到:操作系统网络系统数据库管理系统特点:层层设防分头把关相互配合共保平安
泄露改动第一道防线第二道防线第三道防线损坏数据财富预防性措施检测性措施纠正性措施消极要素
要挟危险管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.2平安维护(securityprotection)3.DBS平安概念——防止对DB中的数据的非授权运用。是指维护数据库,以防止不合法的运用所呵斥的数据泄露、更改或破坏。(防止泄露、更改或破坏)。在妥当的时辰,以妥当的方式,向妥当的人,提供妥当的数据。
4.DBS中的普通方法1)用户鉴别2)存取控制3)密文存储4〕审计5〕子方式隔离管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.2平安维护(securityprotection)5.2.2用户鉴别系统提供一定的方式让用户标识本人的名字和身份,系统进展核实,经过鉴定后才提供系统运用权。每次用户要求进入系统时,由系统将用户提供的身份标识与系统内部记录的用户合法标识进展核对,经过鉴定后才提供对系统的运用权。常用方法口令过程识别上码卡指纹、声音、照片等回答以下问题
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.2平安维护(securityprotection)1.口令:口令是常用的一种用户标识
①固定口令②随机口令③口令时限2.可读声份卡片声波、指纹、签名、图像3.回答以下问题用户名用户标识……管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.2平安维护(securityprotection)5.2.3
存取控制1.存取控制对于获得上机权后又进一步发出存取数据库操作的户,DBMS查找数据字典,根据存取权限对操作的合法性进展检查,假设用户的操作恳求超出了定义的权限,系统将回绝执行此操作。
2.方法定义用户权限合法权限检查
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.2平安维护(securityprotection)3.自主存取控制(DAC)方法自主存取控制DAC〔DiscretionaryAccessControl〕在TCSEC/TDI平安级别中,自主存取控制处于C1级。是由用户或DBA定义存取权限的一种控制战略。目前SQL规范对DAC提供支持,经过SQL的GRANT和REVOKE命令实现。用户权限数据对象操作类型授权语句GRANTREVOKE访问权限由两个要素组成:数据对象和操作类型系统经过控制它们防止非授权访问管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.2平安维护(securityprotection)DB数据对象名:方式、子方式、表、属性(精度)操作类型:Create,Select,update,insert,delete,all其它:如操作时间、范围,…数据对象和操作权限对应表对象
对象类型
操作权限
属性列
TABLE
SELECT,INSERT,UPDATE,DELETEALLPRIVIEGES
视图
TABLE
SELECT,INSERT,UPDATE,DELETEALLPRIVIEGES
基本表
TABLE
SELECT,INSERT,UPDATE,ALTER,INDEX,DELETEALLPRIVIEGES
数据库
DATABASE
CREATETAB
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.2平安维护(securityprotection)控制访问授权命令的组成SQL言语的数据访问控制命令授权命令GRANT收回授权REVOKE命令格式命令格式
用户名数据对象名操作类型其他GRANT<权限>[,<权限>]...[ON<对象类型><对象名>]
TO<用户>[,<用户>|PUBLIC]...[WITHGRANTOPTION];REVOKE<权限>[,<权限>]...
[ON<对象类型><对象名>]
FROM<用户>[,<用户>|public]...管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.2平安维护(securityprotection)4.强迫存取控制(MAC)方法所谓MAC〔MandatoryAccessControl〕是为保证更高程度的平安性,按照TDI/TCSEC规范中的平安战略的要求,所采取强迫的存取检查手段。MAC在规范中处于C2级。它不是用户能直接感知或进展控制的。适用于对数据有严厉而固定密级分类的部门。1)实体类别主体(用户)客体〔数据〕2)敏感度标志〔label〕答应证级别〔ClearanceLevel〕密级〔ClassificationLevel〕绝密〔TopSecret〕、〔Secret〕可信〔Confidential〕、公开〔Public〕
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.2平安维护(securityprotection)
3〕存取规那么当某一用户〔主体〕以某一答应证标志进入系统后,系统要求他对任何客体的存取必需遵照如下规那么:仅当主体的答应证级别大于或等于客体的密级时,该主体才干读取相应的客体;仅当主体的答应证级别等于或小于客体的密级时,该主体才干写相应的客体。规那么制止拥有高答应证级别的主体更新低密级的数据对象,从而防止了敏感数据的走漏。MAC对数据本身进展密级标志,无论数据如何复制,标志与数据是不可分割的整体。只需符合密级标志要求的用户才可以操作相应数据。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.2平安维护(securityprotection)最高密级主体最低密级主体管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.2平安维护(securityprotection)DAC和MAC共同构成DBMS的平安机制平安检查DAC检查MAC检查SQL语法分析&语义检查继续管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.2平安维护(securityprotection)5.视图隔离机制视图是虚表,就象架设在用户与基表之间的一道桥梁,用户可以对视图援用的数据进展操作,也可以直接访问基表,但对平安级别要求较高的数据普统统过视图进展访问,从而防止直接访问基表中其他数据。对于终端用户,虽然数据库中的数据是面向全局的,但经过视图隔离,他只能看到专门为他定义的视图中与本人相关的数据。其他与他无关的数据被子方式即视图隔离或屏蔽了。
USER-2经过VIEW-1可以访问COLUMN-1而无法访问COLUMN-2,这就是VIEW-1的屏蔽作用。
CREATEVIEWVIEW-1
ASSELECTCOLUMN-1FROMTABLE-1
GRANTALLONVIEW-1TOUSER-2管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.2平安维护(securityprotection)管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.2平安维护(securityprotection)4)攻击审计已发生攻击操作及危害系统平安事件的检测和审计。追踪恶意破坏活动。
2.技术1)静态技术
利用软件设计阐明书、流程图分析、明确易被攻击的环节。
2)动态技术
实践运转检测(控制逻辑,…)
性能测试(测试用例、仿真程序)
3)结果验证
数据的选择、搜集和分析。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.2平安维护(securityprotection)5.2.5数据加密以密文方式保管和传输数据(只需知道密钥的用户才干访问)。1.处置流程2.加密方法
信息编码信息换位信息交换管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.3完好性维护(integralityprotection)5.3.1概述1、定义——数据的正确性,有效性和相容性。指数据库中数据与现实世界的实践情况是相符合的或数据库中数据本身不存在自相矛盾的景象。A=10A=10U1U1U1管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.3完好性维护(integralityprotection)
2、功能1〕完好性要求定义;2〕监视事务执行,测试能否违反完好性限制条件;3〕假设发生违反情况,那么进展相应处置〔回绝、报告、纠正、忽略〕。现实世界的A与DB中的A坚持一致,且U1、U2、U3等一切用户从DB中查询的结果均为10,那么称A具有完好性,否那么就是不完好的。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.3完好性维护(integralityprotection)3、完好性类型1)实体完好性2)参照完好性3)用户定义完好性4.处置由DBMS提供的一种检查数据能否满足语义规定条件〔即完好性约束条件〕的机制〔完好性检查〕。――数据的约束条件是语义的表达,DBMS提供完好性约束条件定义机制,并将这些定义作为方式的一部分存入数据库中。SQL言语CREATETABLE命令的Constraint子句即用以定义完好性约束条件。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.3完好性维护(integralityprotection)5.3.2
完好性约束条件
1、根本概念①定义:施加于DB中数据之上的语义限制条件.②约束对象粒度:列级、元组级、关系级③约束对象形状静态:反映DB形状合理性的约束。动态:反映DB形状变化的约束。④约束时机〔Immediateconstraints〕〔1〕立刻约束:——一条语句执行完后立刻检查。〔2〕延迟约束:——事务执行终了后检查。例如:转帐,从A到B后,帐才干平,才干进展检查。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.3完好性维护(integralityprotection)管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.3完好性维护(integralityprotection)2、静态列级约束——对一个列的取值域的约束。①数据类型约束〔类型、长度、单位、精度〕如:姓名XM为Char长8位;年龄NL为Int型,长3位。②数据格式约束如:任务证号前2位表示省,后3位表示县,后4位表示单位顺序号,后5位表示个人顺序号。③值域约束如:成果CJ≤100,年龄NL≤150,性别XB={男,女}④空值约束能否允许空值列。如:成果CJ可为空。⑤其它约束
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.3完好性维护(integralityprotection)3、静态元组约束对一个〔仅一个〕元组中各列值间联络的约束。如:总额≥单价工龄<年龄实发工资=应发工资-总扣款4、静态关系约束——对一个关系中假设干元组之间或假设干关系的联络的约束。①实体完好性约束②参照完好性约束③函数依赖约束④统计约束如:职工最低工资不能低于本部门职工平均工资的50%。老板工资不能超越员工平均工资的10倍。
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.3完好性维护(integralityprotection)5、动态列级约束——修正列定义或列值时的约束。①修正定义约束——修正定义时新老值间的约束。如:将允许空值列改为不允许空值时,假设该列值已有空值,那么不可修正。②修正值约束——修正时新旧值间的约束。如年龄不能修正得更小(只会长大)。
6、动态元组约束——修正元组时新旧值间的约束。
7、动态关系约束——施加于关系上的前后形状的约束。如:事务的一致性和原子性约束就是保证动态关系约束的技术。管理资源吧〔glzy8〕,提供海量管理资料免费下载!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在Unique上的Index需另行声明
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.3完好性维护(integralityprotection)多属码必需用表约束定义单属码可用列约束或表约束定义管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.3完好性维护(integralityprotection)2、参照完好性〔referentialintegrity〕——对外码施加的完好性控制。参照关系:外码所在关系,如STUDENT、SC,常称为从表或子表;被参照关系:主码〔同时又是另一关系中的外码〕所在关系,如student,course常称为主表或父表。CLASSClnoClnameMajor01双学位计算机02专生本数学04自修物理05研讨生化学STUDENTSSnSnameClno991001牛得草01991020草上飞01001001鱼得水04001101雪上飘05管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.3完好性维护(integralityprotection)1〕外码分类父表子表不同,外码为子表的非主属性例:关系方式CLASS(Clno,clname,Major)父表STUDENTS(Sno,Sname,Clno)子表外码Clno是子表STUDENTS的非主属性父表与子表一样,外码为非主属性EMPLAYEE〔Eno,Ename,dept,Manager〕Manager为外码,援用本表的EnoManager为Eno的直接上司,用其Eno表示。
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.3完好性维护(integralityprotection)父表子表不同,外码为子表的主属性STUDENTS(Sno,Sname,Clno)父表COURSEES〔Cno,cname,Score〕父表SC〔Sno,cno,Grade〕子表外码Sno,Cno,为子表SC的主属性2〕外码的取值NULL〔只需外码为子表非主属性时可取空值〕为父表中的某值的援用
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.3完好性维护(integralityprotection)3〕控制战略(A)插入战略在从表中插入元组受限插入:仅当父表中存在插入元组在外码值的相应元组时,系统执行插入操作,否那么回绝此插入操作。递归插入假设父表中不存在与插入元组相对应的相应元组,那么首先向父表中插入相应元组,然后再向子表中插入该元组。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.3完好性维护(integralityprotection)(B)修正战略修正父表主码置空修正将从表中相关记录在外码上的值全部置为NULL。例如:要将CLASS表中的Clno=‘01’改为‘101’,那么由DBMS自动将STUDENTS表中的一切Clno=‘01’的记录的Clno属性置NULL。回绝修正回绝执行此类操作。
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.3完好性维护(integralityprotection)关联修正将从表中相关记录在外码上的值一同自动修正。例如:要将CLASS表中的Clno=‘01’改为‘101’,那么由DBMS自动将STUDENTS表中的一切Clno=‘01’的记录的Clno都修正为‘101’。修正从表外码回绝修正/受限插入假设父表中存在待修正值,那么执行,否那么不允许执行此类修正操作。例如:Sno=‘991001’的学生的Clno=‘05’,将其clno改为‘01’,那么执行,假设改为‘AA’,那么回绝执行。〔CLASS表中不存在clno=‘AA’的记录〕管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.3完好性维护(integralityprotection)递归插入假设父表中不存在待修正值,那么先在父表中自动插入一条包含修正值的记录,然后再修正从表外码。例如:上例中将Sno=‘991001’的学生的clno改为‘AA’的操作。用此控制战略,将先在CLASS表中插入clno=‘AA’的记录,然后将STUDENTS中的Sno=‘991001’的学生的clno改为‘AA’。(C)删除战略删除父表元组置空删除〔NULLIFIES〕删除父表中元组的同时,自动将子表中的相关元组的外码置NULL值。例如:删除CLASS表clno=‘01’的元组时,DBMS自动将STUDENTS表中一切clno=‘01’的元组的clno改为NULL值。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.3完好性维护(integralityprotection)受限删除〔RESTRICTED〕发出警告,回绝执行此类操作。关联删除〔CASCADES〕删除父表中元组的同时,自动删除子表中的相关元组。例如:删除CLASS表clno=‘01’的元组时,DBMS自动将STUDENTS表中一切clno=‘01’的元组一同删除。株连九族式。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.3完好性维护(integralityprotection)3、用户定义完好性〔integrityofuserdefinition〕1〕空值控制——对给定属性施加不允许空值限制〔NOTNULL〕2〕单个属性控制〔Check约束〕为:〔CJisNull〕OR(CJBETWEENOAND100)3〕多属性控制如:XB=‘男’ANDNL<=304〕触发器〔Trigger〕Trigger那么是基于对表的操作〔动作〕的;当指定的表上发生特定的操作,系统便激活Trigger程序。产品均支持T管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.4事务及事务特性(transactionandit'scharacteristics)5.4.1事务〔transaction〕1、定义构成一个独立逻辑任务单位的数据库操作集。一条SQL语句;一组SQL语句序列;一个包含对DB操作的运用程序。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.4事务及事务特性(transactionandit'scharacteristics)2、构成方式①显式BEGINTRANSACTION……SQL语句ENDTRANSACTION/COMMIT/ROLLBACK其中:COMMIT提交,事务对DB的修正写回到磁盘上的DB中去。ROLLBACK:回滚,吊销对DB之修正,恢复到事务开场形状。②缺省一条或多条SQL语句COMMIT/ROLLBACK管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.4事务及事务特性(transactionandit'scharacteristics)5.4.2事务的ACID性质1、原子性〔Atomicity〕①定义事务是一个不可分割的任务单元,其对DB的操作要么都做,要么都不做。②目的保证DB数据的一致性〔转帐问题〕。③技术日志+ROLLBACK〔UNDO〕〔不测终止〕;并发控制〔交叉执行〕。④实现实现由DBMS自动完成。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.4事务及事务特性(transactionandit'scharacteristics)2、一致性〔consistency〕
①定义
事务的执行必需是将DB从一个正确〔一致〕形状转换到另一个正确〔一致〕形状。
如:转帐问题中,A有100万人民币是一个正确形状,减去50万,转到B帐上50万,DB从一个正确形状转变到另一个正确形状,这两个操作,假设只做其中一个,那么不能实现DB从一个正确形状转到另一个正确形状,破坏了事务一致性。
②目的
保证DB数据一致性〔丧失更新、读脏、读不可反复〕。
③技术
并发控制。
④实现
用户定义事务〔保证相关操作在一个事务中〕;
DBMS自动维护之。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.4事务及事务特性(transactionandit'scharacteristics)3、隔离性〔isolation〕①定义一个事务中对DB的操作及运用的数据与其它并发事务无关,并发执行的事务间不能相互关扰。②目的防止链式夭折。③技术并发控制。④实现DBMS自动实现。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.4事务及事务特性(transactionandit'scharacteristics)4、耐久性〔durability〕
①定义
一个已提交事务对DB的更新是永久性的,不受后来缺点的影响。
②目的:保证DB可靠性
③技术
备份+日志。
④实现:DBMS恢复子系统自动实现。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)并发操作调度:保证多用户并发操作数据库中信息时的正确性、一致性所采取的措施。封锁:一种并发调度的技术。
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)5.5.1并发操作调度1.
问题的提出1)丧失更新〔lostupdate〕
——两个以上事务从DB中读入同一数据并修正之,其中一事务的提交结果破坏了另一事务的提交结果,导致该事务对DB的修正被丧失。
2)不可反复读〔readnorepeatable〕
——同一事务反复读同一数据,但获得结果不同。
3)读“脏〞数据(readdirty)
——读未提交的随后又被吊销(Rollback)的数据。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)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对数据的修正丧失。时间
T1
DB中A值
T2
注:A=16表示从DB中读入A值。
t1
读A=16
16
……t2
……读A=16
t3
计算A:=A-1
……存盘COMMIT
15
t4
15
计算A:=A-1存盘COMMIT
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)2〕不可反复读不可反复读是指事务1读取数据后,事务2执行更新操作,使事务1无法再现前一次读取结果。详细地讲,不可反复读包括三种情况:事务1读取某一数据后,事务2对其做了修正,当事务1再次读该数据时,得到与前一次不同的值。事务1按一定条件从数据库中读取某些数据记录后,事务2删除了其中部分记录,当事务1再次按一样条件读取数据时,发现某些记录奥秘地消逝了。事务1按一定条件从数据库中读取某些数据记录后,事务2插入了一些记录,当事务1再次按一样条件读取数据时,发现多了一些记录。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)时间T1
DB中值T2t1
读A=50读B=100计算S:=A+B=150A=50B=100S=150
t2
A=50B=200S=150
读B=100计算B:=2*B=200COMMIT
t3
读A=50读B=200计算S:=A+B=250
事务T1验算结果不正确
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)
3〕读“脏〞数据指事务T1修正某一数据,并将其写回磁盘〔并未提交,OS的I/O调度结果〕,事务T2读取同一数据后,T1由于某种缘由被撤销,这时T1修正正的数据恢复原值,T2读到的数据与数据库中的数据出现不一致,T2读得的不稳定的瞬间数据称为“脏〞数据。例如:T1将C值修正为200,T2读C为200,假设T1被撤销,其修正作废,C应恢复为100,这时再看T2读到的C值就成了无根据的数据。
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)产生上述三类数据不一致的缘由:并发操作破坏了事务的隔离性。因此对事务的并发操作必需加以控制,才干防止此类景象的发生。并发控制:用正确的方法调度并发操作,使一个事务的执行不受其他事务的干扰,从而防止数据的不一致景象。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)2.正确性规范1〕单个事务
——假设非并发的执行,每个事务都能保证DB的正确性。
〔上述问题,都是因事务并发执行产生〕
2〕多个事务
——多个事务以恣意串行方式执行都能保证DB的正确性。时间T1
DB中A值T2
注:无论是T1、T2顺序或是T2、T1顺序,结果A都为14t1读A=1616……t2A:=A-1t3COMMIT15……t415A=15t515A:=A-1t614COMMIT管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)显然,任何一事务并发执行时制止其它事务执行,总能保证DB正确性,但不利于数据共享。3〕可串行化调度〔Serializability〕——当且仅当多个事务并发执行的结果与该事务任一串行执行的结果一样时,那么该并发执行是可串行化的。
3.并发控制〔可串行化调度〕方法
1〕加锁控制〔Locking〕
2〕乐观假设〔Optimistic〕
3〕时标〔timestamping〕
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)5.5.2封锁1、封锁并发控制的一种技术。2、封锁规那么①对将要存取的数据须先恳求加锁,加锁胜利才干存取;②已被加锁的数据不能再加不相容锁;③一旦退出运用应适时释放锁;④未被加锁的数据不可对之解锁。3、封锁类型1)排它锁〔X锁:exclusivelock〕又称写锁假设事务Ti持有数据Di的X锁,那么Ti可读、写Di,其它任何事务不能再对Di加任何锁,直至Ti释放该X锁。X锁用于写维护,防止丧失更新。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)2)共享锁〔S锁:sharelock〕又称读锁假设事务Ti持有数据Di的S锁,那么其它事务仍可对Di加S锁,但不可加X锁,直到Ti释放该S锁。一旦施加S锁,读可共享但其它事务不可改。S锁用于读操作。封锁类型的相容矩阵T1T2XS-Y相容的请求N不相容的请求XNNYSNYY-YYY管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)4.恳求时机1)事务开场时恳求〔常用〕·无死锁;·锁开销少;·并发性低2)一个SQL语句开场时·并发性高;·锁开销大;·易产生死锁;·提交频繁5.封锁粒度〔granularity〕——被封锁数据的范围逻辑单元:整个DB、整个关系、整个索引、元组、索引项、属性值集、属性值。物理单元:块、数据页、索引页。评价:1〕粒度大:被封锁对象少,并发性差,开销小。2〕粒度小:被封锁对象多,并发性高,开销大。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)6.封锁粒度选择的普通战略1〕需常存取多个关系的大量元组时宜采用DB级粒度;2〕需常存取单个关系大量元组时宜采用关系级粒度;3〕需常存取单个关系少量元组时宜采用元组级粒度;4〕普通不采用属性级粒度;5〕物理单元普通不宜采用。7.封锁协议〔Lockingprotocol〕1)概念〔何谓封锁协议〕——恳求、持有和释放锁的规那么。2)目的——实现正确的并发操作调度。3)类别①支持一致性维护的三级封锁协议;②支持并行调度可串行化的两段锁协议;③防止死锁协议。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)5.5.3三级封锁协议1.1级封锁协议
1〕战略
事务Ti在修正数据Di之前须先对Di加X锁,直到事务Ti终了〔commit/rollback〕才释放。
2〕功能
防止丧失修正;
保证Ti可恢复〔假设不测终止,那么rollback后才可释放〕。
3〕问题:不能防止不可反复读和读“脏〞数据。
〔1级协议仅对修正操作,假设读那么不加锁〕管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)遵照一级封锁协议的一种调度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=200C=2004)Xlock(A)=FROLLBACK5)COMMITCOMMITUNLOCK(C)6)Xlock(A)=FUnlock(B)7)Unlock(A)A=50B=2008)Xlock(A)=T读A=15Xlock(S1)=TS1:=A+B=2509)A:=A-1=1410)COMMITS!=S1写丢失避免了!不可重复读读“脏”数据管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)2.2级封锁协议1)战略1级封锁协议加上事务Ti在读取Di之前必需对Di加S锁,读完后即可释放该S锁。2)功能·防止丧失修正;·防止读脏。3)问题:不能防止读不可反复〔读完即释放,重读时能够其它事务对之修正〕。
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)遵照二级封锁协议的一种调度
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=150ROLLBACK4)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)Unlock(B)C=1008)9)Xlock(S1)=.T.S1:=A+B=250S!=S1不可重复读不能避免读“脏”数据避免了管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)3.3级封锁协议
1)战略
在1级封锁协议上加上事务Ti读Di前须先对Di加S锁,直至Ti终了后才释放该S锁。
2)功能
·防止丧失修正;
·防止读“脏〞;
·防止读不可反复。
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)遵照三级封锁协议的一种调度
T1T2T1T21)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(S1)=.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可重复读读“脏”数据避免了管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)三级封锁协议的主要区别在于何种操作需求恳求封锁,以及获得封锁后何时释放锁〔持锁时间〕。分别采用三级封锁协议中不同级别的协议,得到的一致性保证是不同的。X锁S锁一致性保证操作结束释放事务结束释放操作结束释放事务结束释放不丢失修改不读脏数据可重复读一级√√二级√√√√三级√√√√√管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)5.5.4死锁〔deadlock〕1.含义两个或两个以上事务均处于等待形状,每个事务都在等待其中另一个事务封锁的数据,导致任何事务都不能继续执行的景象称为死锁。2.产生条件
①互斥〔排它性控制〕;
②不可剥夺〔释放锁前,其它事务不能剥夺〕;
③部分分配〔每次恳求一部分,恳求新的锁时,又占用已
获得者〕;
④环路〔循环链中,每事务获得的数据同时又被另一事务
恳求〕。
管理资源吧〔glzy8〕,提供海量管理资料免费下载!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的锁…(等待)一直等待下去管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)3.预防:——防止产生条件之一发生〔破坏产生死锁的条件〕
①一次封锁法
——每个事务事先一次获得所需数据的全部锁。
如:T1获得一切数据A、B锁,T1延续执行,T2等待;T1执行完后释放A、B锁,T2继续执行,不会发生死锁。
特征:·简单;无死锁;粒度大;并发度低;
·难以确定封锁对象。
〔DB数据变化,不能预先确定封锁对象,只好扩展封锁范围〕
②顺序封锁法
——事务按预先确定的数据封锁顺序实行封锁。如:B树从根开场
特征:·无死锁;
·顺序难以确定;
·〔运转中才发现要封锁对象〕封锁对象难以确定。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)4.诊断与解除①等待图法;构造事务的等待图;周期性检测该等待图;判别存在回路否;存在,那么吊销某一事务;选择一个处置死锁代价最小的事务〔NP难度问题〕;释放一切锁,使其它事务继续运转。②超时法当一个事务的等待时间超越规定的时限,那么以为发生死锁,撤销该事务。实现简单存在问题能够误判死锁;时限规范难以把握管理资源吧〔glzy8〕,提供海量管理资料免费下载!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.
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)2、预防方法FCFS:FirstComeFirstServer先来先效力。对于事务有优先级的系统,可设置一个最长等待时间,与优先级结合,调度事务的执行。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)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=3管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)下面给出几种不同的调度战略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写回BUnlock(B)SLOCK(B)Y=B=2
Unlock(B)
Xlock(A)A=Y+1=3写回A
Unlock(A)SLOCK(A)X=A=2Unlock(A)
Xlock(B)B=X+1=3写回B
Unlock(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)串行化调度串行化调度不可串行化调度可串行化调度管理资源吧〔glzy8〕,提供海量管理资料免费下载!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)扩展阶段收缩阶段管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.5并发控制技术(technologyofcontrolsimultaneously)3.战略①在对任何数据读、写之前,须先获得该数据锁〔且〕;②在释放一个封锁之后,该事务不能再恳求任何其它锁。4.目的:实现并发操作调度的可串行化。事务遵照两段锁协议是可串行化调度的充分条件,而不是必要条件。即假设并发事务都遵照两段锁协议,那么对其的任何并发调度战略都是可串行化的;假设对并发事务的一个调度是可串行化的,但该事务不一定符合两段锁协议〔释放一个锁之后又继续去获得另一个锁的事务依然能够产生正确结果〕。
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.6数据库恢复技术(technologyofrestoringDB)什么是DB恢复将因破坏或缺点而导致的DB数据的错误形状恢复到最近一个正确形状的技术。·目的1、坚持事务原子性;2、坚持事务耐久性。
管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.6数据库恢复技术(technologyofrestoringDB)5.6.1DBS缺点1.事务缺点:事务执行时未能到达预期的终点。1〕分类逻辑错误〔事务程序本身的错误〕数据输入错、溢出、资源缺乏、运用程序错误。系统错误死锁等。2〕特征导致事务夭折;夭折事务对DB的部分修正能够已写入DB。〔DB处于不正确或不一致形状〕管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.6数据库恢复技术(technologyofrestoringDB)2、系统缺点:呵斥系统停顿运转的任何事件,使得系统要重新启动。1〕分类硬件的缺点〔CPU等〕;软件缺点〔DBMS,OS,APS〕;操作失误;停掉电。2〕特征内存数据丧失;外存数据不受影响;一些尚未完成事务的结果能够已送入DB〔提交过程之中〕;已完成事务的结果能够部分还未送入DB〔提交过程之中〕;已完成事务的结果全部未送入DB〔未及提交〕。
〔DB处于不正确或不一致形状〕管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.6数据库恢复技术(technologyofrestoringDB)3.介质缺点指外存储器缺点。1〕分类:磁盘损坏磁头碰撞强磁场干扰等2〕特征数据库遭到破坏,正存取的数据的事务遭到影响能够性小破坏性最大
4.计算机病毒管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.6数据库恢复技术(technologyofrestoringDB)5.6.2恢复技术(备份+日志)5.6.2.1备份技术1、备份方式1〕静态备份〔转储:dump〕——DBS中无事务运转时进展转储。特征:·转储期间不对DB进展任何操作;·一定得到一个一致性副本。优点:简单缺陷:·暂停一切事务运转;·降低DB可用性。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.6数据库恢复技术(technologyofrestoringDB)2〕动态备份——转储与事务并发执行·特征:转储期间可对DB进展存取与修正操作。·优点:不影响事务运转。·缺陷:不能保证获得一致性副本。如转储时,某个值为100,但另一事务以后对之修正,这样正备份的副本是与DB中实践值不一致的过时数据。2、备份战略1〕海量备份
·方法:定期或不定期将DB全部数据转储。
·优点:简单。
·缺陷:·反复转储;
·转储量大;
·停顿运转〔静态转储〕。管理资源吧〔glzy8〕,提供海量管理资料免费下载!5.6数据库恢复技术(technologyofrestoringDB)2〕增量备份〔incrementalclumping〕
·方法:每次转储上次转储后更新过的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 孩子抚养费支付协议书
- 产品买卖合同书(杯子)
- 建筑施工钢材采购合同范本
- 儿童摄影合同
- 姜堰区劳动用工合同
- 中建2024建筑工程专项验收指导手册(试行)
- 高三一轮复习课件 地质构造与构造地貌 (从不同尺度)
- 高中地理选修三43旅游常识和导游基础知识练习
- 浙江省杭州市二中钱江校区2023-2024学年高一下学期寒假作业检测(开学考试)数学试卷
- 工程项目施工现场自纠自查报告
- 冠脉介入进修汇报
- 蒋诗萌小品《谁杀死了周日》台词完整版
- 铁道运输实训总结报告
- 小学生生涯规划班会课教案设计
- 人教部编版五年级上册语文第三单元测试卷(含答案解析)
- MOOC 光纤光学-华中科技大学 中国大学慕课答案
- 抗球虫药1课件
- 儿童民航知识课件
- ESG投资与可持续金融
- 对科学施肥方法的
- 毕业生个人求职自荐信经典版
评论
0/150
提交评论