欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    数据库保护及SQLServer的数据库保护技术.ppt

    • 资源ID:6050175       资源大小:1.07MB        全文页数:75页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据库保护及SQLServer的数据库保护技术.ppt

    第8章 数据库保护及SQL Server的数据库保护技术,8.3 数据库的并发控制及SQL Server的并发控制机制8.3.1 事务及并发控制的基本概念,事务是多用户系统的一个数据操作基本单元。允许多个事务并行地执行,对并发执行的事务的控制也就称为并发控制。,1.事务的概念,所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。,2.并发控制,一次材料的入库:在入库日记文件中写入材料入库记录,修改库存文件,更新当前库存量一次产品的销售:在销售文件中写入销售记录,修改成品库存文件,更新成品库存量银行的转账业务:从A账户提款,插入取款记录,修改余额 存入B账户。插入存款记录,修改余额,事务反映客观世界中以完整单位提交的一项工作.是现实世界定义的一个逻辑工作单位。,事务处理是保证数据库一致性状态的重要方法。数据库的一致性状态是指所有数据必须满足数据完整性约束条件的状态。,最常见的事务处理是由二次或多次对数据库的操作完成的。,(2)事务的特性,(1)丢失修改丢失更新的实际例子:库存处理T1:(进货入库处理)进库产品400件 库存量=库存量+400T2:(销售出库处理)销售产品40件 库存量=库存量-40,2个事务顺序处理的过程,2个事务并发执行丢失修改的过程,(2)不一致性分析,事例:T1:分析数据 T2:与此同时,T2修改数据,不一致性分析(1),不一致性分析(2),事例:T1:汇总库存产品的库存量 T2:与此同时,T2更新库存中的二种产品,更新事务的结果,不一致分析(2),(3)读未提交数据(脏数据),2个事务顺序处理的过程,T2使用T1未提交数据可能产生的问题,8.3.2 封锁及封锁协议,1.锁的类型(1)排它锁(Exclusive Locks,简称X锁)排它锁也称为独占锁或写锁。一旦事务T对数据对象 A 加上排它锁(X锁),允许T读取和修改 A,其他任何事务不能再对 A 加任何类型的锁,直到 T 释放 A 上的锁为止。(2)共享锁(Share Locks,简称S锁)共享锁又称读锁。如果事务T对数据对象A加上共享锁(S 锁),允许T读取A,但不能和修改 A。其他事务只能再对 A 加S锁,不能加 X 锁,直到事务 T 释放 A 上的 S 锁为止。,数据状态:无锁,共享锁 S,排它锁 X,(2)封锁类型的相容性,NO:不相容的请求YES:相容的请求如果 2 个封锁是不相容的,再提出封锁的事务要等待,(1)一级封锁协议一级封锁协议是事务T在修改数据之前必须先对其加X锁,直到事务结束才释放。,2.封锁协议,对数据加锁需要一些规则主要涉及时间(申请、持有,释放)和锁的类型(S,X),(2)二级封锁协议二级封锁协议是:事务T对要修改数据必须先加X锁,直到事务结束才释放X锁;对要读取的数据必须先加S锁,读完后即可释放S锁。,(3)三级封锁协议三级封锁协议是事务T在读取数据之前必须先对其加S锁,在要修改数据之前必须先对其加X锁,直到事务结束后才释放所有锁。,三封锁协议,一级封锁协议不能防止不一致性分析据,二级封锁协议不能防止不一致性分析据,一级封锁协议不能防止读未提交数据,8.3.3 封锁出现的问题及解决方法,1.活锁和死锁(1)活锁 在多个事务请求对同一数据封锁时,总是使某一用户等待的情况称为活锁。(总是有机会获得锁的事务却永远没得到锁)解决活锁的方法是采用先来先服务的方法,即对要求封锁数据的事务排队,使前面的事务先获得数据的封锁权。,(2)死锁多事务相互等待对方释放封锁,形成交错等待的僵持局面称为死锁。,预防死锁通常有两种方法:一次封锁法:要求每个事务必须一次将所有要使用的数据全部加锁,否则该事务不能继续执行。2)顺序封锁法:预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。死锁的恢复:当死锁出现时,一定要解除它。DBMS 周期地测试数据库是否处于死锁状态将其中一个处理代价小的事务撤消,ROLLBACK这个事务,释放这个事务进行的封锁,使其它事务可能进行下去。(诊断与解除),2.并发调度的可串行性多个事务并发执行的结果与按串行执行的结果相同,这种调度策略称为可串行化的调度,反之称为不可串行化调度。,T1 读 B,A=B+1 回写A,T2 读 A B=A+1 回写B,设初始值:A=B=2,3.两段锁协议1)在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁。2)在释放一个封锁之后,事务不再申请并获得任何其他封锁,事务分为两个阶段:获得封锁(扩展阶段),申请获得锁,不释放锁。释放封锁(收缩阶段),释放封锁,不再申请任何封锁。,并发执行的所有事务均遵守两段封锁协议,则对这些事务的任何并发调度策略是可串行化的,4.封锁的粒度封锁粒度(Granularity)是指封锁对象的大小。逻辑单元:属性值、属性值的集合、元组、关系、数据库物理单元:页,块封锁粒度与系统的并发度和并发控制的开销密切相关。封锁的粒度越小,并发度越高,系统开销也越大;封锁的粒度越大,并发度越低,系统开销也越小。,(1)多粒度封锁,多粒度树,根节点,子节点,允许每个节点独立加锁后裔节点被加以同样类型锁显式封锁:直接加到数据对象上的封锁隐式封锁:上级对象加锁而使该数据对象加锁数据对象加锁,系统要进行三种检查,(2)意向锁,意向锁含义:如果对一个节点加意向锁,则说明下层节点正在被加锁;对任一节点加锁时,必须先对它的上层节点加意向锁。,IS(Intent Share Lock)意向共享锁如果对一个数据对象加 I S 锁,表示它的后裔节点意向加 S 锁,2 I X(Intent Exclusive Lock)意向排它锁如果对一个数据对象加 I X锁,表示它的后裔节点意向加 X 锁,3 S I X(Share Intent Exclusive Lock)共享意向排它锁如果对一个数据对象加 S I X锁,表示对它加S 锁,再加 I X锁,1.SQL Server的事务类型SQL Server的事务分为两种类型:系统提供的事务是指在执行某些语句时,一条语句就是一个事务,它的数据对象可能是一个或多个表(视图),可能是表(视图)中的一行数据或多行数据;用户定义的事务以BEGIN TRANSACTION语句开始,以COMMIT(事务提交)或ROLLBAK(回滚)结束。,8.3.4 SQL Server的并发控制机制,2 锁的级别3 锁的类型,完整性约束条件针对的对象有:关系、元组、列。根据约束对象可分为:表级约束:若干元组间、关系中以及关系之间联系的约束某门课的成绩优秀比例不能超过20%先修课必须是有效值外码必须是有效值,8.2 数据库完整性及SQL Server的完整性控制,数据完整性是指数据的正确性和相容性,为保证数据库的完整性,DBMS必须提供定义检查和控制数据完整性的机制,并把用户定义的数据库完整性约束条件作为模式的一部分存入数据库中。,8.2.1 完整性约束条件及完整性控制,元组级约束:元组中的字段组和字段间联系的约束对于学生表中的学号前4位与入学年份中的年份一致列级约束:取值范围、精度、排序等而制定的约束条件。对于成绩表中的成绩应大于等于0,小于等于100,以上三类对象可以是静态的,也可以是动态的。静态约束:每一确定状态时数据库对象影满足的约束确定,数据库状态稳定时的约束,是重要的一类完整性约束。动态约束:数据处理上的改变以及数据库从一种状态转变成另一种状态时,新旧值之间所应满足的约束条件。,1.静态级约束(1)静态列级约束1)对数据类型的约束。2)对数据格式的约束。3)对取值范围的约束。4)对空值的约束。5)其他约束(默认,唯一,检查),(2)静态元组级约束静态元组级约束是对元组的属性组值的限定,及规定了属性之间的值或结构的相互制约关联。(3)静态表级约束1)实体完整性约束。2)参照完整性约束。3)函数依赖约束。满足3NF但不满足BCNF的关系,例如:学生教师课程(学生,课程,教师)学生,课程教师,教师课程,将学生,课程作为主码,还需表示出教师课程这个函数依赖,create table 课表(学号 char(9),课程名 char(10),教师名 char(6)primary key(学号,课程名),CREATE TRIGGER T_SON 课表FOR INSERTASDECLARE t_name char(6),S_name char(10)SELECT T_name=教师名,S_name=课程名FROM insertedIF EXISTS(SELECT*FROM 课表WHERE 教师名=T_name AND 课程名!=S_name)BEGINPRINT 教师授课不唯一,ROLLBACK TRANSACTIONEND,2.动态级约束(1)动态列级约束修改列定义时的约束。例如;容许空值改为不容许空值,有空值则禁止修改 列长度由10改为8,该列目前存在超过8个长度则禁止修改 2)修改列值时的约束。(2)动态元组级约束动态元组级约束是指修改元组的值时元组中字段组或字段间需要满足某种约束。(3)动态表级约束动态表级约束是加在关系变化前后状态上的限制条件。,3.完整性控制机制的功能及执行约束(1)完整性控制机制应具有的功能1)定义完整性功能,提供定义完整性约束条件的机制。(规则、默认、约束、触发器、事务)2)检查完整性功能,检查用户发出的操作请求,看其是否违背了完整性约束条件。3)控制完整性功能,监视数据操作的整个过程,如果发现有违背了完整性约束条件的情况,则采取一定的动作来保证数据的完整性。,(2)立即执行约束和延迟执行约束立即执行约束有关数据操作语句执行完后立即进行完整性检查为立即执行约束(触发器)延迟执行约束在整个事务执行结束后再进行完整性检查为延迟执行约束。(事务),4.实现参照完整性要考虑的几个问题(1)外码能够接受空值的问题(2)在被参照关系中删除元组的问题,1)级联删除,将参照关系中所有外码值与被参照关系中要删除元组主码值相同的元组一起删除,主码:学号(被参照关系),外码:学号(参照关系),2)受限删除,仅当参照关系中没有任何元组的外码值与被参照关系中要删除元组主码值相同时,才执行删除,主码:学号(被参照关系),外码:学号(参照关系),3)置空值删除(NULLIFIES),将参照关系中相应元组的外码值置为空值,外码:部门号(参照关系),主码:部门号(被参照关系),(3)在参照关系中插入元组时的问题1)受限插入。,外码:部门号(参照关系),主码:部门号(被参照关系),当被参照关系存在相应的远祖,其主码值与插入关系远祖外码值相同时,系统才执行插入操作,否则拒绝此操作,2)递归插入,外码:部门号(参照关系),主码:部门号(被参照关系),在被参照关系中插入插入相应远祖,其主码值等于参照关系插入元组的外码值,然后向参照关系插入元组,(4)修改关系的主码问题1)不允许修改主码。如果需要修改主码值,只能先删除该元组,然后再把具有新主码值的元组插入到关系中。2)允许修改主码。允许修改关系主码,但必须保证主码的惟一性和非空,否则拒绝修改。,(5)修改表是被参照关系的问题。1)级联修改。如果要修改被参照关系中的某个元组的主码值,则参照关系中相应的外码值也作相应的修改。,外码:部门号(参照关系),主码:部门号(被参照关系),2)拒绝修改。如果参照关系中,有外码值与被参照关系中要修改的主码值相同的元组,则拒绝修改。,外码:部门号(参照关系),主码:部门号(被参照关系),3)置空值修改。修改被参照关系的元组,并将参照关系中相应元组的外码值置空值。,外码:部门号(参照关系),主码:部门号(被参照关系),1.事务内部的故障2.系统故障3.介质故障4.计算机病毒5.用户操作错误,8.4 数据库恢复技术与SQL Server的数据恢复机制 8.4.1 故障的种类,1.数据转储(1)静态转储和动态转储1)静态转储:进行的转储操作的过程中,系统不运行其他事务,专门进行数据转储工作。2)动态转储:在转储期间,允许其他事务对数据库进行存取或修改操作。也就是说,转储和用户事务并发执行。(2)海量转储和增量转储海量转储:指每次转储全部数据库。2)增量转储:指每次只转储上一次更新过的数据。,8.4.2 数据恢复的实现技术,2 登记日志文件,日志文件是用来记录对数据库更新的文件日志文件主要用于数据恢复登记日志文件严格按并发事务执行的时间顺序先写日志文件,后写数据库,8.4.3 数据库恢复策略,1 事务故障恢复,事务 T 由于故障,没有运行到正常终止点被撤消。所以对事务 T 应做UNDO撤消处理,从日志文件尾反向搜索事务T的所有更新,做它的逆向操作(插入/删除,删除/插入,修改后/修改前)。,故障点,T,检查点,检查点,系统发生故障时,已经提交的事务没写进数据库,仅保留在内存缓冲区内。造成数据库不一致状态。,2 系统故障恢复,故障,T2,T1,检查点,恢复的步骤:,根据日志文件建立重做队列和撤消队列。从日志文件头搜索,找出在故障前已经提交的事务,记入REDO重做队列。找出故障发生时没有完成的事务,记入UNDO撤消队列。根据2个队列做REDO和UNDO处理,故障,检查点,T1,T2,T3,T4,T5,T1:不必恢复,T2:REDO,T3:UNDO,T4:REDO,T5:UNDO,3 介质故障和病毒破坏的恢复步骤:,重装后援副本故障点开始,反向搜索日志文件,建立REDO队列正向扫描日志文件,根据REDO队列的记录,重新实施对数据库的更新操作。,在发生介质故障或遭受到病毒破坏时,磁盘上的物理数据被破坏。恢复可分为3步,8.1 数据库的安全性及SQL Server的安全管理,8.1.1 数据库安全性控制的一般方法,在计算机系统中,安全,模式是多层设置的 检验是否是计算机系统的合法用户 检验是否是数据库的用户,1.用户标识与鉴别是进入计算机系统时最外层的安全保护,不一定具有数据库的使用权,常见的方法是通过输入用户名和口令字标识用户身份,2.存取控制重要性:DBMS的存取机制时数据库安全的重要保证,它取确保有使用权的用户访问数据库。(1)存取机制的构成1)定义用户权限,并将用户权限登记到数据字典中2)权限检查。当用户提出操作请求时,系统进行权限检查,拒绝用户的非法操作。,(2)存取机制的类别 1)自主存取控制:用户对不同的对象有不同的存取权限不同的用户对同一对象的存取权限不同用户可将自己拥有的权限转授给其他用户 2)强制存取控制每一个数据对象被标以一定的密级每一个用户被授予某一级别的许可,3.自主存取控制方法(1)关系中的用户权限用户权限:包括数据对象和数据操作授权:定义用户的权限称为授权,规定用户对那些数据进行什么样的操作,(2)SQL的数据控制功能SQL的数据控制功能为GRANT语句(授权)和REVOKE语句(收权)。数据对象的创建者自动获得对于该数据对象的所有操作权限。获得数据操作权的用户可以通过GRANT语句把权限转授给其他用户。收权需要使用REVOKE语句。,(3)授权机制的性能用户权限定义中数据对象范围越小授权系统就越灵活。用户权限定义中能够语句的授权系统比较灵活。,(4)自主存取控制的不足之处自主存取控制主要问题是系统对权限的授予状况无法进行有效的控制,因而可能造成数据的无意泄露。,8.1.2 SQL Server的安全体系结构和安全认证模式,1.SQL Server的安全体系结构Windows NT 操作系统的安全防线使用Windows NT帐号登陆(2)SQL Server的运行安全防线使用 SQL Server 帐号登陆(3)SQL Server数据库的安全防线是某数据库的用户(4)SQL Server数据库对象的安全防线对数据对象有操作权限,8.1.3 SQL Server的用户和角色管理,用户:具有合法身份的数据库使用者一个用户可以使用一个或多个数据库角色:具有一定权限用户的组合相同权限的用户定义为一个角色一个用户可以有多个角色,8.1.4 SQL Server的权限管理,系统管理员数据库拥有者数据库对象拥有者数据库对象的一般用户,SQL 的四类用户,1)对象权限的管理针对数据库对象的设置:例如一个表的查询,数据更新,数据插入等权限(P225表8-2)对象权限的管理内容包括:对用户或角色授予、废除、或收回权限,1.SQL Server权限种类SQL Server有两类权限:对象权限和语句权限。,2)语句权限针对数据库设置(涉及一些语句的使用)例如创建数据库,创建默认,创建存储过程等权限(P225表8-3)对象权限的管理内容包括:对用户或角色授予、废除、或收回权限,小结:1 数据库的并发控制事务的概念、特性并发执行可能产生的问题封锁及封锁协议封锁出现的问题及解决方法2 数据库恢复技术故障的种类数据恢复的实现技术数据库恢复策略 3 数据库完整性静态级约束、动态级约束完整性控制机制的功能及执行约束实现参照完整性要考虑的问题4 数据库的安全性数据库安全性控制的一般方法安全体系结构和安全认证模式用户和角色管理权限管理,作业:要求1,2,3,8,9,10,12,13,15,16,17,18提交:7,11,1431,32,33,34,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,

    注意事项

    本文(数据库保护及SQLServer的数据库保护技术.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开