数据库保护学习培训课件.ppt

上传人(卖家):林田 文档编号:4114380 上传时间:2022-11-11 格式:PPT 页数:62 大小:584KB
下载 相关 举报
数据库保护学习培训课件.ppt_第1页
第1页 / 共62页
数据库保护学习培训课件.ppt_第2页
第2页 / 共62页
数据库保护学习培训课件.ppt_第3页
第3页 / 共62页
数据库保护学习培训课件.ppt_第4页
第4页 / 共62页
数据库保护学习培训课件.ppt_第5页
第5页 / 共62页
点击查看更多>>
资源描述

1、2022-11-111第6章 数据库保护n数据库中的数据由数据库中的数据由DBMS统一管理控制,为适应数统一管理控制,为适应数据共享的环境,据共享的环境,DBMS必须提供数据的必须提供数据的安全性安全性、完完整性整性、并发控制并发控制和和数据备份恢复数据备份恢复等数据保护能力,等数据保护能力,以保证数据库中的数据安全可靠和正确有效。以保证数据库中的数据安全可靠和正确有效。n本章从五个方面介绍本章从五个方面介绍DBMSDBMS在数据保护方面的措施,在数据保护方面的措施,并结合并结合SQL SERVERSQL SERVER进行说明。进行说明。2022-11-112第6章 数据库保护主要内容n6.1

2、数据安全性数据安全性n6.2数据完整性数据完整性n6.3并发控制并发控制n6.4数据库恢复数据库恢复n6.5数据库复制和镜像数据库复制和镜像n6.6小结小结2022-11-1136.1 数据安全性n数据库系统的安全性是数据库保护的首要问数据库系统的安全性是数据库保护的首要问题。题。n安全性是相对的。安全性是相对的。n加强安全性是应用开发一个重要的方面。加强安全性是应用开发一个重要的方面。n安全性与保密性不可分。安全性与保密性不可分。n本节主要讨论安全性的一般概念和方法,介本节主要讨论安全性的一般概念和方法,介绍绍SQL ServerSQL Server数据库系统的安全性措施。数据库系统的安全性

3、措施。2022-11-1146.1 数据安全性主要内容包括:主要内容包括:n6.1.1 6.1.1 数据安全性概念数据安全性概念n6.1.2 6.1.2 数据库安全保密方式数据库安全保密方式n6.1.3 6.1.3 计算机系统安全措施设置模型计算机系统安全措施设置模型n6.1.4 6.1.4 数据库安全措施数据库安全措施n6.1.5 SQL SERVER6.1.5 SQL SERVER中的安全性措施中的安全性措施2022-11-1156.1.1 数据库安全性概念n数据库的安全性是数据库的安全性是指保护数据库以防止不合法的指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。系统安全使用所

4、造成的数据泄露、更改或破坏。系统安全保护措施是否有效是数据库系统的主要性能指标保护措施是否有效是数据库系统的主要性能指标之一。之一。n安全性问题和保密问题密切相关。前者主要涉及安全性问题和保密问题密切相关。前者主要涉及数据的存取控制、数据的存取控制、修改和传播的技术手段;后者修改和传播的技术手段;后者在很大程度上是法律、政策、伦理、道德等问题。在很大程度上是法律、政策、伦理、道德等问题。一些国家已成立了专门机构对数据的安全保密制一些国家已成立了专门机构对数据的安全保密制订了法律道德准则和政策法规。订了法律道德准则和政策法规。2022-11-1166.1.2 数据库安全保密方式n数据库安全保密方

5、式有:数据库安全保密方式有:系统处理系统处理的和的和物理物理的两个的两个方面。方面。n所谓物理的是指,对于强力逼迫透露口令、在通讯所谓物理的是指,对于强力逼迫透露口令、在通讯线路上窃听、线路上窃听、以至盗窃物理存储设备等行为而采取以至盗窃物理存储设备等行为而采取的将数据编为密码,加强警卫以识别用户身份和保的将数据编为密码,加强警卫以识别用户身份和保护存储设备等措施。护存储设备等措施。n所谓系统处理的是指利用计算机系统方面的技术手所谓系统处理的是指利用计算机系统方面的技术手段。本节主要讲述系统处理方面的数据库安全措施。段。本节主要讲述系统处理方面的数据库安全措施。2022-11-1176.1.3

6、 计算机安全措施设置模型n在一般计算机系统中,安全措施是一级一级层在一般计算机系统中,安全措施是一级一级层层设置的。有如下的模型:层设置的。有如下的模型:2022-11-1186.1.4 数据库安全措施数据库系统的安全措施是建立在计算机系统基础数据库系统的安全措施是建立在计算机系统基础之上的,通常有五个方面。之上的,通常有五个方面。n1.1.用户标识和鉴定用户标识和鉴定n2.2.存取控制存取控制n3.3.定义视图定义视图n4.4.审计审计n5.5.数据加密数据加密2022-11-1196.1.4.1 措施一:用户标识和鉴定n用户标识和鉴定用户标识和鉴定常用的方法有:常用的方法有:(1 1)用一

7、个用户名或用户标识号标明用户身份。)用一个用户名或用户标识号标明用户身份。(2 2)口令)口令(Password)(Password)(3 3)系统提供一个随机数,用户根据预先约定好的)系统提供一个随机数,用户根据预先约定好的某一过程或者函数进行计算,系统根据用户计算某一过程或者函数进行计算,系统根据用户计算结果是否正确进一步鉴定用户身份。结果是否正确进一步鉴定用户身份。n用户标识和鉴定可重复多次用户标识和鉴定可重复多次2022-11-11106.1.4.2 安全措施二:存取控制n对于获得上机权的用户还要根据预先定义好的用对于获得上机权的用户还要根据预先定义好的用户权限进行存取控制,保证用户只

8、能存取他有权户权限进行存取控制,保证用户只能存取他有权存取的数据。所谓用户权限是指不同的用户对于存取的数据。所谓用户权限是指不同的用户对于不同的数据对象允许执行的操作权限,它由两部不同的数据对象允许执行的操作权限,它由两部分组成:数据对象和操作类型。分组成:数据对象和操作类型。数据对象数据对象操作类型操作类型模式、外模式、内模式模式、外模式、内模式建立、修改、检索建立、修改、检索表或者记录、字段表或者记录、字段查找、插入、修改、删除查找、插入、修改、删除2022-11-11116.1.4.3 安全措施三:视图n视图主要用于保证程序的逻辑独立性,也还可将视图主要用于保证程序的逻辑独立性,也还可将

9、机密数据隐藏起来,能提供一定程度的安全保护,机密数据隐藏起来,能提供一定程度的安全保护,但不精细。但不精细。n不同的不同的DBMSDBMS都提供了建立视图的机制。都提供了建立视图的机制。n开发数据系统时应尽可能地为不同的用户建立相开发数据系统时应尽可能地为不同的用户建立相应的视图来访问数据。应的视图来访问数据。2022-11-11126.1.4.4 安全措施四:审计n审计是一种审计是一种预防手段,监测可能的不合法访问。预防手段,监测可能的不合法访问。n审讯追踪技术使用专用文件或数据库自动记录用户审讯追踪技术使用专用文件或数据库自动记录用户对数据库的所有操作,利用这些信息就能找出非法对数据库的所

10、有操作,利用这些信息就能找出非法存取数据的人。存取数据的人。n审讯追踪很费时间和空间,一般审讯追踪很费时间和空间,一般DBMSDBMS只作为一种可只作为一种可选的特性,可灵活地打开或关闭审计功能。选的特性,可灵活地打开或关闭审计功能。n审计功能一般用于安全性要求较高的部门。审计功能一般用于安全性要求较高的部门。2022-11-11136.1.4.5 安全措施五:数据加密n对高度机密性数据,通过采用数据加密技术,对高度机密性数据,通过采用数据加密技术,以密码形式存储和传输,这样即使数据被窃以密码形式存储和传输,这样即使数据被窃取,看到是无法辨识的二进制代码。取,看到是无法辨识的二进制代码。n用户

11、正常检索数据时,首先要提供密码钥匙,用户正常检索数据时,首先要提供密码钥匙,经系统译码后,才能得到可识别的数据。经系统译码后,才能得到可识别的数据。2022-11-11146.1.4.5 安全措施五:数据加密n目前很多数据产品都提供了数据加密例行程序,可目前很多数据产品都提供了数据加密例行程序,可根据用户要求自动对数据进行加密处理根据用户要求自动对数据进行加密处理;另外有一些另外有一些数据库产品虽本身未提供加密程序,但允许用户用数据库产品虽本身未提供加密程序,但允许用户用其他厂商的加密程序来加密数据。其他厂商的加密程序来加密数据。n解密程序本身一定要具有一定的安全性保护措施。解密程序本身一定要

12、具有一定的安全性保护措施。n加密与解密很费时,会占用大量系统资源,因此,加密与解密很费时,会占用大量系统资源,因此,一般作为数据库系统的可选功能,允许用户自由选一般作为数据库系统的可选功能,允许用户自由选择。择。2022-11-11156.1.5 SQL SERVER中的安全性措施 SQL SERVER SQL SERVER 具有较健全的安全性机制,设置了四具有较健全的安全性机制,设置了四层安全防线,两种安全认证模式。层安全防线,两种安全认证模式。n1.1.四层安全体系结构(四层安全体系结构(操作系统安全防线操作系统安全防线,运行运行安全防线,数据库的安全防线,数据库对象的安安全防线,数据库的

13、安全防线,数据库对象的安全防线全防线)n2.2.两种安全认证模式(两种安全认证模式(集成安全模式集成安全模式,混合混合 )n3.3.用户与角色管理用户与角色管理n4.4.权限管理权限管理2022-11-11166.2 完整性n数据库的完整性数据库的完整性是指数据的正确性和相容性。是指数据的正确性和相容性。DBMSDBMS必须提供一种功能来保证数据库中数据的完必须提供一种功能来保证数据库中数据的完整性,称为完整性检查,即系统用一定的机制来检整性,称为完整性检查,即系统用一定的机制来检查数据库中的数据是否满足规定的条件。查数据库中的数据是否满足规定的条件。n完整性完整性检查很烦琐,要很细致。检查很

14、烦琐,要很细致。n完整性完整性检查会涉及到很多方面。检查会涉及到很多方面。2022-11-11176.2 完整性n6.26.2.1.1 完整性的概念完整性的概念n6.26.2.2.2 完整性约束条件完整性约束条件n6.26.2.3.3 完整性控制完整性控制n6.26.2.4 SQL SERVER.4 SQL SERVER中的完整性措施中的完整性措施2022-11-11186.2.1 完整性的概念n1.1.数据的完整性和安全性。数据的完整性和安全性。n完整性是为了防止数据库中存在不符合语义的数据,完整性是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出防止错误信息的输入和输出;n安

15、全性是保护数据库防止恶意的破坏和非法的存取,安全性是保护数据库防止恶意的破坏和非法的存取,防止非法用户的不合法操作,当然,完整性和安全防止非法用户的不合法操作,当然,完整性和安全性是密切相关的,特别是从系统实现的方法来看,性是密切相关的,特别是从系统实现的方法来看,某一种机制常既可用于安全性保护亦可用于完整性某一种机制常既可用于安全性保护亦可用于完整性保证。保证。n2.2.完整性包括完整性包括:完整性完整性约束约束条件和完整性条件和完整性控制控制。2022-11-11196.2.2 完整性约束条件n1.1.完整性约束条件是完整性完整性约束条件是完整性控制的控制的核心。核心。n2 2.完整性约束

16、条件完整性约束条件的的对象粒度有列级、元组对象粒度有列级、元组级和关系级。级和关系级。n3.3.状态可以是静态和动态。静态对象的约束状态可以是静态和动态。静态对象的约束反映数据状态合理性的约束,动态对象的约反映数据状态合理性的约束,动态对象的约束反映数据状态变迁的约束。束反映数据状态变迁的约束。2022-11-11206.2.2 完整性约束条件分类 粒度状态粒度状态列级列级元组级元组级关系级关系级静态静态列定义列定义类型、长度类型、长度格式、值域格式、值域空值空值元组级应满足的元组级应满足的条件。条件。实体完整性约束实体完整性约束参照完整性约束参照完整性约束函数依赖约束函数依赖约束统计约束统计

17、约束动态动态改变列定义改变列定义或列值。或列值。元组新旧值之间元组新旧值之间应满足的约束条应满足的约束条件。件。关系新旧状态间关系新旧状态间应满足的约束。应满足的约束。2022-11-11216.2.3 完整性控制1.DBMS1.DBMS完整性控制应具备三方面的功能:定义功能、检查功能、完整性控制应具备三方面的功能:定义功能、检查功能、保证功能。定义功能即能提供定义完整性约束条件机制。保证功能。定义功能即能提供定义完整性约束条件机制。2.2.一般完整性规则的表示形式:(一般完整性规则的表示形式:(D D,O O,A A,C C,P P)nD D代表代表约束条件的数据对象约束条件的数据对象。nO

18、 O代表触发完整性检查是立即检查还是延迟检查。代表触发完整性检查是立即检查还是延迟检查。nA A代表数据对象必须满足的断言或语义约束,是规则主体。代表数据对象必须满足的断言或语义约束,是规则主体。nC C代表选择对代表选择对A A作用的数据对象值的谓词。作用的数据对象值的谓词。nP P代表违反完整性规则时触发执行的操作过程。代表违反完整性规则时触发执行的操作过程。2022-11-11226.2.4 关于参照完整性的实现机制1.1.外码是否可接受空值;外码是否可接受空值;2.2.删除被参照关系元组时考虑删除被参照关系元组时考虑三种处理方法三种处理方法;n第一种处理方法是级联删除第一种处理方法是级

19、联删除 。n第二种处理方法是受限删除。第二种处理方法是受限删除。n第三种处理方法是置空值删除。第三种处理方法是置空值删除。3.修改被参照关系中的主码时也要修改被参照关系中的主码时也要考虑考虑三种处理三种处理方法方法,即即级联级联修改修改、受限受限修改修改、空值、空值修改。修改。2022-11-11236.2.4 SQL SERVER的完整性措施n1.1.实体完整性实体完整性:主码唯一且不为空。主码唯一且不为空。n2.2.参照完整性:外码要么为空要么为被参照关系中参照完整性:外码要么为空要么为被参照关系中主码的一个值。主码的一个值。n3.3.用户自定义完整性(用户自定义完整性(约束、缺省、规则和

20、触发器约束、缺省、规则和触发器4 4种方法实施完整性功能种方法实施完整性功能)。n4.4.触发器触发器:一类靠事务驱动的特殊过程,一旦某个一类靠事务驱动的特殊过程,一旦某个用户定义,任何用户对该数据的增删改操作均由服用户定义,任何用户对该数据的增删改操作均由服务器自动激发相应的触发器,在核心层进行集中的务器自动激发相应的触发器,在核心层进行集中的完整性控制。触发器可实现非常复杂的完整性控制。完整性控制。触发器可实现非常复杂的完整性控制。2022-11-11246.2.4 SQL SERVER触发器例例例1 1:使用带有提醒消息的触发器。当有人试图在:使用带有提醒消息的触发器。当有人试图在 ti

21、tles titles 表表中添加或更改数据时,向客户端显示一条消息。消息中添加或更改数据时,向客户端显示一条消息。消息 50009 50009 是是 sysmessagessysmessages 中的用户定义消息。中的用户定义消息。nUSE pubsUSE pubsnIF EXISTS(SELECT name FROM IF EXISTS(SELECT name FROM sysobjectssysobjects WHERE name=reminder AND type=TR)WHERE name=reminder AND type=TR)n DROP TRIGGER reminder DR

22、OP TRIGGER remindernGOGOnCREATE TRIGGER reminderCREATE TRIGGER remindernON titlesON titlesnFOR INSERT,UPDATEFOR INSERT,UPDATEnAS RAISERROR(50009,16,10)AS RAISERROR(50009,16,10)nGO GO 2022-11-11256.3 并发控制n一个数据库可以供多个用户同时使用,共享数据。一个数据库可以供多个用户同时使用,共享数据。多个用户程序并发地存取同一数据,若对并发操作多个用户程序并发地存取同一数据,若对并发操作不加控制就会存储

23、和读取不正确的数据,会破坏数不加控制就会存储和读取不正确的数据,会破坏数据库的完整性(一致性),据库的完整性(一致性),必须对数据库进行发控必须对数据库进行发控制,才能确保信息不出错。制,才能确保信息不出错。n并发性能的好坏是衡量数据库性能的重要指标。并发性能的好坏是衡量数据库性能的重要指标。n本节主要内容包括:并发控制的基本概念、封锁、本节主要内容包括:并发控制的基本概念、封锁、串行操作和并行操作。串行操作和并行操作。2022-11-11266.3 并发控制n6.3.1 6.3.1 事务事务n6.3.2 6.3.2 并发操作与数据不一致性并发操作与数据不一致性n6.3.3 6.3.3 封锁机

24、制封锁机制n6.3.4 6.3.4 串行操作和并行操作串行操作和并行操作2022-11-11276.3.1 事务1.1.事务事务(TransactionTransaction)是并发控制的单位,是一个)是并发控制的单位,是一个操作序列。这些操作要么都做,要么都不做,是操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。一个不可分割的工作单位。2.2.性质:原子性、一致性、隔离性、持续性。性质:原子性、一致性、隔离性、持续性。3.3.事务控制的三条语句事务控制的三条语句nBEGIN TRANSACTION BEGIN TRANSACTION 表示事务开始表示事务开始nCOMMIT

25、COMMIT 表示事务执行表示事务执行nROLLBACK ROLLBACK 表示事务回滚表示事务回滚2022-11-11286.3.2 并发操作与数据不一致性n对并发操作不进行合适的控制,可能会导致数据库对并发操作不进行合适的控制,可能会导致数据库数据的不一致性。数据一致性级别有数据的不一致性。数据一致性级别有 1.1.丢失修改丢失修改 2.2.不可重复读不可重复读 3.3.读脏数据读脏数据n原因:在于破坏的事务的隔离性,需要进行正确的原因:在于破坏的事务的隔离性,需要进行正确的调度,使事务不受干扰。调度,使事务不受干扰。2022-11-11296.3.2 数据一致性级别n首先考虑飞机订票系统

26、中的一个活动序列首先考虑飞机订票系统中的一个活动序列 1.1.甲售票点读出某航班的机票余额甲售票点读出某航班的机票余额A A,设,设A A1616。2.2.乙售票点读出同一航班的机票余额乙售票点读出同一航班的机票余额A A,也为,也为1616。3.3.甲售票点卖出一张机票,修改余额甲售票点卖出一张机票,修改余额AA-1AA-1所以所以A A为为1515,把,把A A写回数据库。写回数据库。4.4.乙售票点也卖出一张机票,修改余额乙售票点也卖出一张机票,修改余额AA-1AA-1所所以以A A为为1515,把,把A A写回数据库。写回数据库。n结果,卖出两张机票而余额只减少结果,卖出两张机票而余额

27、只减少1 1张张2022-11-11306.3.2 数据不一致性表T T1 1 T T2 2 T T1 1 T T2 2 T T1 1 T T2 2 读读A=16A=16 读读A=50A=50读读B=100B=100求和求和=150=150 读读C=100C=100 C=C C=C*2 2 写回写回C C 读读A=16A=16 读读B=100B=100B=BB=B*2 2写回写回B B 读读C=200C=200 A=A-1 A=A-1写回写回A=15A=15 ROLLBACK ROLLBACKC C恢复为恢复为100100 A=A-1A=A-1写回写回A=15A=15 读读A=50A=50读读

28、B=200B=200求和求和=250=250(验算不对验算不对)a.a.丢失修改丢失修改 (见上例见上例)b.b.不能重复读取不能重复读取c.c.读读“脏脏”数据数据2022-11-11316.3.3 封锁n事务对数据库操作之前,先对数据加锁获得这个数事务对数据库操作之前,先对数据加锁获得这个数据对象的一定控制,其他事务不能更新此数据直到据对象的一定控制,其他事务不能更新此数据直到该事务解锁为止。该事务解锁为止。n封锁的基本类型包括:封锁的基本类型包括:1.1.共享性封锁共享性封锁(share lockshare lock,称,称S S锁,锁,RLOCK)RLOCK)2.2.排他性封锁排他性封

29、锁(exclusion lockexclusion lock,称,称X X锁锁,WLOCK),WLOCK)2022-11-11326.3.3 X锁和S锁的控制方式n封锁类型决定控制方式。封锁类型决定控制方式。T1T1已获得对数据对象的已获得对数据对象的加锁;加锁;T2T2的封锁请求能否被满足。的封锁请求能否被满足。Y Y表示可满足,表示可满足,N N表示不能满足。表示不能满足。2022-11-11336.3.3 用封锁机制解决并发事务问题2022-11-11346.3.3 活锁与死锁n1.1.活锁:某一事务的请求可能永远得不到,该事务活锁:某一事务的请求可能永远得不到,该事务一直处于等待状态。

30、活锁的解决方法:先来先服务一直处于等待状态。活锁的解决方法:先来先服务策略。策略。n2.2.死锁:两个事务处于相互等待状态,永远不能结死锁:两个事务处于相互等待状态,永远不能结束。死锁的解决方法:束。死锁的解决方法:(1 1)将所有数据一次性加锁)将所有数据一次性加锁降低了并发度;降低了并发度;(2 2)预先规定一个封锁顺序;)预先规定一个封锁顺序;(3 3)诊断法。)诊断法。2022-11-11356.3.3 封锁粒度n1.1.对象可以是逻辑单元(如属性值、属性值集合、元对象可以是逻辑单元(如属性值、属性值集合、元组、关系、索引项、整个索引项、整个数据库),也组、关系、索引项、整个索引项、整

31、个数据库),也可是物理单元(如数据页、索引页、块)。可是物理单元(如数据页、索引页、块)。n2.2.封锁粒度越大,封锁的对象越小,并发性越小,系封锁粒度越大,封锁的对象越小,并发性越小,系统开销也越小;相反,封锁粒度越小,封锁的对象越统开销也越小;相反,封锁粒度越小,封锁的对象越多,并发性越高,系统开销也越大。多,并发性越高,系统开销也越大。n3.3.粒度的选择粒度的选择:行:行锁锁。2022-11-11366.3.4 串行操作和并行操作n1.1.对多个事务处理的两种方法:对多个事务处理的两种方法:串行操作和并行操作。串行操作和并行操作。串行操作指一个个地处理一组事务,任意串行操作都可以保串行

32、操作指一个个地处理一组事务,任意串行操作都可以保证数据的一致性。并行操作指利用分时的方法同时处理多个证数据的一致性。并行操作指利用分时的方法同时处理多个事务事务 。n2.2.调度:把并发操作的若干事务的全部事务按某一顺序排定调度:把并发操作的若干事务的全部事务按某一顺序排定的运行次序的运行次序n3.3.当且仅当某组事务的一定交叉调度产生的结果和这些事务当且仅当某组事务的一定交叉调度产生的结果和这些事务的某一串行调度的结果相同,则称这个交叉调度是的某一串行调度的结果相同,则称这个交叉调度是可串行化可串行化的。的。n4.4.只有可串行化的并行操作是正确的,而不可串行化的将破只有可串行化的并行操作是

33、正确的,而不可串行化的将破坏数据的一致性坏数据的一致性(可串行化是并行事务正确性的准则)。(可串行化是并行事务正确性的准则)。2022-11-1137 6.3.4 两段锁协议n作用:保证可串行性。作用:保证可串行性。n内容:内容:所有事务应遵守下列规则:在对任何数据进行读、写所有事务应遵守下列规则:在对任何数据进行读、写操作之前,事务首先要获得该数据的封锁,操作之前,事务首先要获得该数据的封锁,而且在释放一而且在释放一个封锁以后,事务不再获得任何其他封锁。个封锁以后,事务不再获得任何其他封锁。n“两段两段”锁的含义:锁的含义:事务分为两个阶段,第一个阶段获得封事务分为两个阶段,第一个阶段获得封

34、锁,锁,也称扩展阶段;第二阶段是释放封锁,也称收缩阶段。也称扩展阶段;第二阶段是释放封锁,也称收缩阶段。n定理:定理:若所有事务均遵守两段锁协议,则这些事务的所有并若所有事务均遵守两段锁协议,则这些事务的所有并行调度都是可串行化的。行调度都是可串行化的。2022-11-1138 6.3.4 两段锁协议例n例:例:T T1 1的封锁序列;的封锁序列;nRlockRlock A ARlockRlock B BWlockWlock C CUnlock BUnlock BUnlock Unlock A AUnlock C;()Unlock C;()nT T2 2的封锁序列;的封锁序列;nRlockRl

35、ock A AUnlock AUnlock ARlockRlock B BWlockWlock C CUnlock Unlock C CUnlock B;(Unlock B;()n两段锁协议两段锁协议是可串行化调度的充分条件而不是必要条件。是可串行化调度的充分条件而不是必要条件。2022-11-11396.3.4 三级封锁协议三级封锁协议是保证数据一致性的封锁协议。三级封锁协议是保证数据一致性的封锁协议。n1.1.一级封锁协议:一级封锁协议:事务事务T T在修改数据在修改数据R R之前必须先对其加之前必须先对其加X X锁,锁,直到事务结束才释放。可防数据丢失。直到事务结束才释放。可防数据丢失。

36、n2.2.二级封锁协议:二级封锁协议:一级封锁协议加上事务一级封锁协议加上事务T T在读取数据在读取数据R R之之前必须先对其加前必须先对其加S S锁,读完后即释放锁,读完后即释放S S锁。可防数据丢失和锁。可防数据丢失和读脏数据。读脏数据。n3.3.三级封锁协议:三级封锁协议:一级封锁协议加上事务一级封锁协议加上事务T T在读取数据在读取数据R R之之前必须先对其加前必须先对其加S S锁,直到事务结束才释放锁,直到事务结束才释放S S锁。可防数据锁。可防数据丢失、读脏数据及不可重复读。丢失、读脏数据及不可重复读。2022-11-11406.2.4 SQL SERVER的并发措施n1.事务分三

37、种:事务分三种:显式事务、隐性事务显式事务、隐性事务或或自动提交事务自动提交事务。n2.数据库必须至少包含一个数据文件和一个事务日志文件。数据库必须至少包含一个数据文件和一个事务日志文件。数据和事务日志信息从不混合在同一文件中,并且每个文件数据和事务日志信息从不混合在同一文件中,并且每个文件只能由一个数据库使用。只能由一个数据库使用。n3.SQLServer锁可在数据库内的不同粒度级别上应用,允锁可在数据库内的不同粒度级别上应用,允许一个事务锁定不同类型的资源,可为行、页、键、键范围、许一个事务锁定不同类型的资源,可为行、页、键、键范围、索引、表或数据库加锁。索引、表或数据库加锁。n4.SQL

38、Server有多种锁模式:有多种锁模式:共享锁、更新锁、排它锁、共享锁、更新锁、排它锁、意向锁、架构锁和大容量更新锁。意向锁、架构锁和大容量更新锁。2022-11-11416.2.4 SQL SERVER的锁模式锁模式锁模式描述描述共享锁共享锁(S(S锁锁)用于不更改或不更新数据的操作(只读操作),如用于不更改或不更新数据的操作(只读操作),如 SELECT SELECT 语句。语句。更新锁更新锁(U(U锁锁)用于可更新的资源中。防止当多个会话在读取、锁定以及随用于可更新的资源中。防止当多个会话在读取、锁定以及随后可能进行的资源更新时发生常见形式的死锁。后可能进行的资源更新时发生常见形式的死锁

39、。排它锁排它锁(X(X锁锁)用于数据修改操作,例如用于数据修改操作,例如 INSERTINSERT、UPDATE UPDATE 或或 DELETEDELETE。确保不会同时对同一资源进行多重更新。确保不会同时对同一资源进行多重更新。意向锁意向锁用于建立锁的层次结构。意向锁的类型为:意向共享用于建立锁的层次结构。意向锁的类型为:意向共享 (IS)(IS)、意向排它意向排它 (IX)(IX)以及与意向排它共享以及与意向排它共享 (SIX)(SIX)。架构锁架构锁在执行依赖于表架构的操作时使用。架构锁的类型为:架构在执行依赖于表架构的操作时使用。架构锁的类型为:架构修改修改 (SchSch-M)-M

40、)和架构稳定性和架构稳定性 (SchSch-S)-S)。大容量更新锁大容量更新锁(BU)(BU)向表中大容量复制数据并指定了向表中大容量复制数据并指定了 TABLOCK TABLOCK 提示时使用。提示时使用。2022-11-11426.4 数据库恢复n数据库的备份和恢复是保护数据库的一项重要措施,数据库的备份和恢复是保护数据库的一项重要措施,DBMSDBMS必须提供功能支持。必须提供功能支持。n备份备份是在日常数据库维护时经常要做的工作,它是是在日常数据库维护时经常要做的工作,它是将当前磁盘上的数据库数据复制到另一个存储介质将当前磁盘上的数据库数据复制到另一个存储介质上。上。n恢复恢复是当数

41、据库被破坏时利用备份将数据库还原到是当数据库被破坏时利用备份将数据库还原到正确的状态。正确的状态。n备份要求制定备份策略。备份要求制定备份策略。2022-11-11436.4 数据库恢复n6.4.16.4.1 数据库恢复概念数据库恢复概念n6.4.26.4.2 故障的种类故障的种类n6.4.3 6.4.3 恢复的原理:转储和恢复恢复的原理:转储和恢复n6.4.4 6.4.4 数据库转储的分类数据库转储的分类n6.4.5 6.4.5 日志文件日志文件n6.4.6 6.4.6 检查点检查点n6.4.7 6.4.7 恢复的策略恢复的策略n6.4.8 SQL Server6.4.8 SQL Serve

42、r的备份恢复的备份恢复2022-11-11446.4.1 数据库恢复概念n尽管系统中采取了各种保护措施来防止数据库的安全性和完整尽管系统中采取了各种保护措施来防止数据库的安全性和完整性被破坏,保证并行事务的正确执行,但是计算机系统中硬件性被破坏,保证并行事务的正确执行,但是计算机系统中硬件的故障、软件的错误、操作员的失误以及故意的破坏仍是不可的故障、软件的错误、操作员的失误以及故意的破坏仍是不可避免的,这些故障轻则造成运行事务非正常地中断,影响数据避免的,这些故障轻则造成运行事务非正常地中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分库中数据的正确性,重则破坏数据库,使数据

43、库中全部或部分数据丢失,数据丢失,因此数据库管理系统必须具有把数据库从错误状因此数据库管理系统必须具有把数据库从错误状态恢复到某一已知的正确状态(亦称为完整状态或一致状态)态恢复到某一已知的正确状态(亦称为完整状态或一致状态)的功能,这就是的功能,这就是数据库的恢复数据库的恢复。2022-11-11456.4.1 数据库恢复概念n恢复子系统是数据库管理系统的一个重要组成部分,恢复子系统是数据库管理系统的一个重要组成部分,而且还相当庞大,常常占整个系统代码的百分之十以而且还相当庞大,常常占整个系统代码的百分之十以上(如上(如IMSIMS,DB2DB2)。)。n故障恢复是否考虑周到和行之有效,故障

44、恢复是否考虑周到和行之有效,是数据库系统是数据库系统性能的一个重要指标。性能的一个重要指标。2022-11-11466.4.2 故障的种类 数据库系统中可能发生各种各样的故障,大致可以数据库系统中可能发生各种各样的故障,大致可以分以下几类:分以下几类:n1.1.事务内部故障。事务内部故障有的是可以通过事事务内部故障。事务内部故障有的是可以通过事务程序本身发现的,有的是非预期的,不能由事务程序本身发现的,有的是非预期的,不能由事 务程序处理的。务程序处理的。n2.2.系统范围内故障。系统范围内故障。n3.3.介质故障。介质故障。n4.4.计算机病毒。计算机病毒。2022-11-11476.4.3

45、 恢复的基本原理:冗余n恢复的基本原理十分简单,可以用一个词来概括,恢复的基本原理十分简单,可以用一个词来概括,即冗余(备份),这就是说,数据库中任何一部分即冗余(备份),这就是说,数据库中任何一部分的数据可以根据存储在系统别处的冗余数据来重建。的数据可以根据存储在系统别处的冗余数据来重建。尽管恢复的基本原理很简单但实现技术的细节却相尽管恢复的基本原理很简单但实现技术的细节却相当复杂。当复杂。n转储即转储即DBADBA定期地将整个数据库复制到磁带或另一定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。转储是十分耗费时间和个磁盘上保存起来的过程。转储是十分耗费时间和资源的,不能频繁进行,

46、资源的,不能频繁进行,DBADBA应该根据数据库使用应该根据数据库使用情况确定一个适当的转储周期。情况确定一个适当的转储周期。2022-11-11486.4.4 数据库转储的分类1.1.转储分为静态转储和动态转储。转储分为静态转储和动态转储。n静态转储静态转储是指转储期间不允许(或不存在)对数据库进行任何是指转储期间不允许(或不存在)对数据库进行任何存取、修改活动。存取、修改活动。n动态转储动态转储是指转储期间允许对数据库进行存取或修改,即转储是指转储期间允许对数据库进行存取或修改,即转储和用户事务可以并发执行。和用户事务可以并发执行。n静态转储简单,但转储必须等待用户事务结束才能进行,同样,

47、静态转储简单,但转储必须等待用户事务结束才能进行,同样,新的事务必须等待转储结束才能执行,这会降低数据库的可用新的事务必须等待转储结束才能执行,这会降低数据库的可用性。性。n动态转储可克服静态转储的缺点,但是,转储结束时后援副本动态转储可克服静态转储的缺点,但是,转储结束时后援副本上的数据并不能保证正确有效。上的数据并不能保证正确有效。2022-11-11496.4.4 数据库转储的分类n2.转储又分为转储又分为海量海量转储和转储和增量增量转储。海量转储是指转储。海量转储是指每次转储全部数据库。增量转储则指每次只转储上每次转储全部数据库。增量转储则指每次只转储上次转储后更新过的数据。次转储后更

48、新过的数据。2022-11-11506.4.5 日志文件n日志文件是用来记录对数据库每一次更新活动的文日志文件是用来记录对数据库每一次更新活动的文件。件。在动态转储方式中必须建立日志文件。后援副本和日志文件在动态转储方式中必须建立日志文件。后援副本和日志文件综合起来才能有效地恢复数据库。综合起来才能有效地恢复数据库。在静态转储方式中,也可以建立日志文件,当数据库毁坏后在静态转储方式中,也可以建立日志文件,当数据库毁坏后可重新装入后援副本把数据库恢复到转储结束时刻的正确状可重新装入后援副本把数据库恢复到转储结束时刻的正确状态,然后利用日志文件,把已完成的事务进行重做处理,对态,然后利用日志文件,

49、把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤消处理。这样不必重新运故障发生时尚未完成的事务进行撤消处理。这样不必重新运行那些已完成的事务程序就可把数据库恢复到故障前某一时行那些已完成的事务程序就可把数据库恢复到故障前某一时刻的正确状态。刻的正确状态。2022-11-11516.4.5.1 登记日志文件规则n事务在运行过程中,系统会把事务开始、事务结束(包括事务在运行过程中,系统会把事务开始、事务结束(包括COMMITCOMMIT和和ROLLBACKROLLBACK)以及对数据库的插入、删除、修改)以及对数据库的插入、删除、修改等操作作为一个记录(等操作作为一个记录(loglog

50、记录)存放到日志文件中。每个记记录)存放到日志文件中。每个记录包括:执行操作的事务标识,操作类型,更新前数据的旧值,录包括:执行操作的事务标识,操作类型,更新前数据的旧值,或更新后的新值。或更新后的新值。n登记次序规则:严格按并行事务操作执行的时间次序和登记次序规则:严格按并行事务操作执行的时间次序和先写日先写日志文件。志文件。n因为,写一个修改到数据库中和写一个表示这个修改的因为,写一个修改到数据库中和写一个表示这个修改的log记记录到日志文件中是两个不同的操作,有可能在这两个操作之间录到日志文件中是两个不同的操作,有可能在这两个操作之间发生故障,如果先写了数据库修改,发生故障,如果先写了数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(数据库保护学习培训课件.ppt)为本站会员(林田)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|