数据库技术及应用05-数据库保护技术课件_第1页
数据库技术及应用05-数据库保护技术课件_第2页
数据库技术及应用05-数据库保护技术课件_第3页
数据库技术及应用05-数据库保护技术课件_第4页
数据库技术及应用05-数据库保护技术课件_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录第一节 安全与保护概述 第二节 数据库的完整性第三节 数据库的安全性 第四节 数据库的并发控制 第五节 数据库的恢复机械工业出版社0 本章从完整性控制、安全性控制、并发控制、数据库恢复四个方面来介绍数据库的安全与保护功能,读者应掌握安全性(Security)、完整性(Integrity)、 并发控制(Concurrent Control)和数据库恢复(Recovery)的含义,掌握这四个方面的分别实现 安全保护功能的方法。机械工业出版社15.1安全与保护概述 DBMS层所提供的如下数据库安全和保护功能:机械工业出版社21安全性(security)保护:即防止非法用户对数据库的非法使用,以避

2、免数据的泄露、篡改或破坏。2完整性 (integrity) 保护:即保证数据的正确性和一致性。3并发控制(concurrent control):即保证多用户能共享数据库,并维护数据的一致性。4数据库恢复(database recovery):即在系统失效后的数据库恢复,配合定时备份数据库,使数据库不丢失数据。机械工业出版社35.2 数据库的完整性(Integrity) 数据库的完整性是指保护数据库中数据的正确性、有效性和相容性,防止错误的数据进入数据库造成无效操作。 比如年龄属于数值型数据,只能含0,1,9,不能含字母或特殊符号;月份只能用112之间的正整数表示;性别只能是男或者女等等。表示

3、同一事实的两个数据应相同,否则就不相容,如一个人不能有两个学号。 维护数据库的完整性非常重要,数据库中的数据是否具备完整性关系到数据能否真实地反映现实世界。因此维护数据的完整性是非常重要的。 机械工业出版社45.2.1数据库的完整性分类 1. 实体完整性 实体完整性也就是对主码的约束,在关系中,主码不能为空,也不允许重复出现。实体完整性的定义可在创建基本表时说明,也可在修改基本表时增加或删除。说明方式有两种:列级说明和表级说明。 2. 参照完整性 参照完整性也就是对外码进行约束,在关系中,外码的取值或者是空值,或者是参照被参照关系的相应属性列的取值。参照完整性简单地说就是表间主码外码的关系,其

4、属于表间规则。 3. 用户定义完整性 用户定义完整性是指用户为了满足特定的要求而做的一些与数据完整性有关的一些定义,主要体现实际运用的业务规则,可在列 级和表级上定义。机械工业出版社55.2.2数据库的完整性约束 为维护数据库的完整性,DBMS必须提供一种机制来检查数据库中数据的完整性。保证数据库中数据的完整性的方法之一是设置 完整性检验,即DBMS检查数据是否满足完整性条件的机制。 机械工业出版社65.2.2.1完整性约束类型 1静态约束 静态约束是指数据库每个确定状态所应满足的约束条件,是反映数据库状态合理性的约束,这是重要的一类完整性约束。又可分为下面三种: 1) 固有约束:指数据模型固

5、有的约束,例如关系的属性应当是原子 的,即满足1NF的约束。 2) 隐含约束:指隐含于数据模式中的约束,一般用DDL语句说明, 并存于数据目录中,例如域完整性约束、实体完整性约束以及引用 完整性约束,都用相应的DDL语句说明。 3) 显式约束:数据完整性是多种多样的,且依赖于数据的语义和应 用,这些约束只有显式地说明,故称显式约束。 机械工业出版社72动态约束 动态约束是指数据库从一种状态转变为另一种状态时,新旧值之间所有应满足的约束条件,动态约束反映的是数据库状态变迁的约束。例如:学生年龄在更改时只能增长,职工工资在调整时不得低于其原来的工资。 机械工业出版社8完整性约束条件的六种类型 :完

6、整性约束条件根据作用对象的粒度和状态 静态列级约束 静态元组约束 静态关系约束 动态列级约束 动态元组约束 动态关系约束 机械工业出版社95.2.2.2完整性约束说明 1. 用过程说明约束 把约束的说明和检验推给应用程序。 2. 用断言说明约束 断言指数据库状态必须满足的逻辑条件。 3. 用触发器说明约束 触发器是建立在某个关系上的一系列SQL语句的集合,并经预先编译后存储在数据库中。 机械工业出版社105.3数据库的安全性 5.3.1用户的标识与鉴别 5.3.2 存取权限控制 对每个用户,可以定义以下两种存取控制权限: (1)数据对象权限:规定了用户使用数据库中数据对象的范围; (2)操作类

7、型权限:规定了用户在可使用数据对象上能执行的操作;机械工业出版社11表5-1:关系系统中的存取权限数据对象操作类型模式模式建立、修改、检索 外模式建立、修改、检索 内模式建立、修改、检索数据表查找、插入、修改、删除 属性列查找、插入、修改、删除 机械工业出版社125.3.3 视图机制 在关系数据库系统中,视图是提供给用户以多种角度观察数据库中数据的重要机制,是从一个或几个基表(或视图)导出的表,它与基表不同,是一个虚表。 5.3.4 跟踪审查 跟踪审查是一种后监视措施,它跟踪数据库的访问活动,以发现数据库的非法访问,达到安全防范的目的。 5.3.5 数据加密存储 数据加密就是将明文数据经过一定

8、的变换变成密文数据。 机械工业出版社135.4数据库的并发控制 5.4.1 事务及特性 1事务 在SQL中,用户显式定义事务的语句有如下3条:BEGIN TRANSACTION:该语句显式地定义一个事务的开始。在应用程序的某处嵌入此语句,就表示一个新的事务已经开始。COMMIT:该语句显式地提交一个事务,并表示该事务已正常结束。所谓提交事务,就是将该事务对数据库的所有更新操作结果永久地保存到磁盘上的物理数据库中去。因此,此语句用于事务的正常结束情况。ROLLBACK:该语句显式地回滚一个事务,且表示事务因执行失败而结束。所谓回滚事务,就是撤消该事务对数据库的所有更新操作,使数据库恢复到该事务开

9、始时的状态。因此,此语句用于事务执行失败的结束情况。机械工业出版社142事务的特性原子性一致性隔离性持续性一个事务是不可分割的数据库逻辑工作单位,事务中包括的所有操作要么都做,要么都不做,即不允许事务部分地完成。 事务的执行结果必须使数据库从一个一致性状态变到另一个一致性状态。数据库的一致性状态指数据库中的数据满足完整性约束。一个事务的执行不能被其他事务干扰,即一个事务内部的操作及其所使用的数据对并发执行的其他事务是隔离的。 一个事务一旦提交,它对数据库中数据的改变应该是永久性的,其他操作或故障不对其产生任何影响 。 事务具有四个特性,即原子性、一致性、隔离性和持续 性,又常简称为ACID特性

10、。机械工业出版社15例: BEGIN TRANRead A AA-S If A0 /*A款不足*/ Then Begin Display “A款不足” ROLLBACK End Else Begin BB+S Display “拨款完成” COMMIT End 这个事务有两个可能的出口:以ROLLBACK(撤消)命令结束,即撤消事务的影响,这相当于“nothing”;以COMMIT(提交)命令结束,这相当于“all”。 只有在COMMIT之后,事务对数据库所产生的变化才对其他事务开放。 机械工业出版社165.4.2数据库的并发控制 DBMS的并发控制是以事务为单位进行的。 5.4.3 并发的目

11、的改善系统的资源利用率。改善短事务的响应时间。 机械工业出版社175.4.4并发所引起的问题 并发操作所带来的数据不一致可以分为四种情况: 1丢失修改(lost update):事务T1 时间 事务T2 读A=16 t1 t2 读A=16 A=A-1 t3写回A =15 t4 A=A-4 写回A=12(覆盖了T1对A的修改)机械工业出版社182脏读(dirty read):事务T1 时间 事务T2 读B=100 t1 B=B*2=200 写回B=200 t2 读B=200(读入T1的脏数据) ROLLBACK t3 B恢复为100 机械工业出版社193不可重复读(unrepeatable re

12、ad): 事务T1 时间 事务T2 读A=50 t1 读B=100 求和S =150 t2 读B=100 B=B*2,写回B=200 读A=50 t3读B=200 求和S =250 4.产生幽灵数据机械工业出版社205.4.5并发控制方法 5.4.5.1 封锁技术 封锁是防止其他事务访问指定资源的一种手段。封锁(locking)是实现并发控制的一个非常重要的技术。所谓封锁就是在一段时间内禁止某些用户对数据对象作某些操作以避免产生数据的不一致性问题,即事务T在对某个数据对象如表、元组等进行操作之前,先向系统发出请求,封锁其所要使用的数据。加锁成功后,事务T就对数据对象有了一定的控制权,在事务T释

13、放它的锁之前,其他的事务就不能更新此数据对象。基本的封锁一般有排它锁和共享锁两种类型。机械工业出版社21排它锁:又称X锁或写锁,如果某事务对某数据建立了排它锁,则该事务能对该数据对象进行读、修改、插入和删除等操作,而其他事务则不能。封锁类型共享锁:又称S锁或读锁,如果某事务对数据建立了共享锁,则此时该事务能对该数据对象进行读操作,但不能进行修改等更新操作,而其他事务只能对该数据对象加S锁,而不能加X锁,即其他事务只能对该数据对象进行读操作。机械工业出版社22 表5-2 封锁类型的相容矩阵2.封锁粒度3.封锁协议XS无锁XooYesSoYes Yes无锁YesYesYesT1T2排它锁与共享锁的

14、控制方式可以用如表5-2所示的相容矩阵来表示。机械工业出版社23封锁协议一级封锁协议若某事务T要修改某个数据对象,则必须先对该数据对象加X锁,直到事务结束后才释放。此种封锁协议可防止“丢失修改”所产生的数据不一致性问题。 一级封锁协议加上某事务T若要读取某个数据对象之前,必须先对该数据对象加S锁,读完后即可释放S锁,这样可进一步防止“读脏数据”的问题。 一级封锁协议加上某事务T若要读取某个数据对象之前,必须先对该数据对象加S锁,且直到该事务结束后才可释放S锁,这样可进一步防止数据“不可重复读”的问题。 二级封锁协议三级封锁协议机械工业出版社24事务T1 时间 事务T2 对A 加X锁获得 t1

15、读A=16 t2 t3 要对A加X锁 等待 修改A=A-1 t4 等待 写回A=15 释放对A的X锁 t5 等待 t6 获得对A的X锁 t7 读A=15 t8 修改A=A-4,写回A=11 释放对A的X锁图5-4 没有丢失修改机械工业出版社25事务T1 时间 事务T2 对C加X锁获得 t1 读C=50 t2 求C=C*2 t3 写回C=100 t4 要对C加S锁 等待 回滚 t5 等待(C恢复为50) 释放C的锁 t6 等待 t7 获得C的S锁 t8 读C=50 释放C的S锁 图5-5 不读“脏”数据机械工业出版社26事务T1 时间 事务T2 对A、B分别加S锁获得 t1 读A =50,B=1

16、00 t2 求和S=100 t3 要对B加X锁 等待 读A =50,B=100 t4 等待 求和S= 150 将和值写回到数据库中 t5 等待 释放A的锁 t6 等待 释放B的锁 t7 获得B的X锁 t8 读B=100 修改B=B*2,写回B=200 t9 释放C的S锁 图5-6 可重复读 机械工业出版社27X锁锁一致性保证 操作结束释放 事务结束释放 操作结束释放事务结束释放不丢失修改不读脏数据 可重复读 一级封锁协议 二级封锁协议三级封锁协议 表5-2封锁协议级别机械工业出版社28活锁:如果事务T1封锁了数据对象R后,事务T2也请求封锁R,于是T2等待。接着T3也请求封锁R。当T1释放了加

17、在R上的锁后,系统首先批准了T3的请求,T2只得继续等待。接着T4也请求封锁R,T3释放R上的锁后,系统又批准了T4的请求,依次类推,因此,事务T2就有可能这样永远地等待下去。 封锁问题死锁:如果事务T1封锁了数据对象A,T2封锁了数据对象B之后,T1又申请封锁数据对象B,且T2又申请封锁数据对象A。因T2已封锁了B,于是T1等待T2释放加在B上的锁。因T1已封锁了A,T2也只能等待T1释放加在A上的锁。T1和T2这两个事务永远不能结束,这就是死锁问题。 机械工业出版社295.4.5.2 时标技术 所谓时标(timestamping),即时间标记,是由计算机系统生成的一个随时间增长的整数,可以用系统的时钟,也可以专门设计一个计数器,每进入一个事务就加一。5.4.6 并发调节的可串行性 定义5.1 多个事务的并发执行是正确的,当且仅当其结果与按某一 次序串行执行它们时的结果相同,我们称这种调度策略为可串行化(serializable)的调度。 机械工业出版社305.4.7两段锁协议 两段锁协议(Two-Phase Lockin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论