【数据库系统概论】数据库保护_第1页
【数据库系统概论】数据库保护_第2页
【数据库系统概论】数据库保护_第3页
【数据库系统概论】数据库保护_第4页
【数据库系统概论】数据库保护_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、第八章 数据库保护 数据保护主要包括:数据的安全性、完整性、并发控制和数据库恢复。,8.1 安 全 性 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。系统安全保护措施是否有效是数据库系统的主要性能指标之一。,用户,DBMS,OS,DB,用户标识和鉴定,8.1.1 安全性控制的一般方法,存取控制,操作系统安全保护,密码存储,图 8-1,一. 用户标识和鉴定 1. 用一个户用名或者用户标识符号来标明用户身份. 2. 口令(Password). 3. 计算结果.,二.存取控制 1.用户权限 2. 与数据无关的授权定义,表8-2 一个可能的授权定义表的形式,3.依赖于数据

2、对象的内容的授权,表 8-3,8.1.2 两个系统的安全性方法 一. DBTG 系统 DBTG系统向用户提供了子模式,所有用户程序通过子模式存取数据库数据。由于子模式只是模式的一部分,所以它自动地将存取的对象限制在一定范围内,从而提供了安全性。 除开用子模式外,DBTG系统还提供了一整套以存取控制锁与存取控制码为基础的安全设施。,1. 存取控制锁子句格式 ACCESS CONTROL LOCK FOR | 某些 DML 语句| IS literal-1 literal-2 lock-name-1 OR lock-name-2 PROCEDURE db-proc-1 PROCEDURE db-p

3、roc-2,2. 有关说明: (1).格式中的DML语句按条目而异。如: 对于域来说DML语句为READY; 对于记录则DML语句为STORY; 对于系则DML语句为CONNECT,DISCONNECT。,(2). LOCK 有三种形式,3.存取控制码的作用 KEY值是在用户程序中给出的. 如在模式中对记录S有如下规定: RECORD NAME IS S. . ACCECC CONTROL LOCK FOR ERASE IS ENRMT. .,那么在用户程序中就要提供相同的KEY值: PROCEDURE DIVISION. DECLARATIVE S USE FOR ACCESS CONTRO

4、L ON ERASE FOR S. MOVE ENRMT TO DB-ACCESS-CONTROL-KEY END DECLARATIVE S. MOVE S5 TO SNO IN S. FIND ANY S. ERASE S ,二. QBE系统 QBE系统可授予用户四种权限,即插入(I)、删除(D)、更新(U)和检索(P).系统同样用表格的形式规定安全性约束条件.某一关系的所有者在关系框架中输入一个元组.,1. 授权格式: I . AUTR (), I .,2.举例: a. 将检索关系S的权限授予用户WP.,b. 将对关系S的四种存取权限授予用户WP.,c. 任意一个学生可以读SC关系中关于

5、自己的元组.,d. 用户可以插入成绩在90分以上的SC元组.,8.2 完 整 性 数据库的完整性是指数据的正确性和相容性.,8.2.1 完整性约束条件 一.值的约束和结构约束 1.关于对数据值的约束 这类约束条件是指对数据取值类型、范围、精度等的规定。,2.关于数据之间联系的约束 同一关系的不同属性之间可以有一定的联系,从而应满足一定的约束条件. 不同的关系之间也可以有联系,因而不同关系的属性之间也可满足一定的约束条件.,二. 静态约束和动态约束 1.静态约束 2.动态约束,三. 立即执行约束和延时执行约束 1.立即执行约束 2.延时执行约束,完整性的实现应包括两个方面,一是系统要提供定义完整

6、性约束条件的功能,二是提供检查完整性约束条件的方法.,8.2.2 两个系统的完整性方法 一. QBE系统 1. 定义关系S中各属性值的类型、长度,定义关系的码是哪个(些)属性:,图8-6,2. 对于其它的约束条件则在关系名下输入: I. CONSTR () I. 条件表可以包括I.(插入),D.(删除),U.(更新)中的任何一个或全部.,3.举例 (1). 在执行插入、更新操作时要保证所有学生年龄不小于15岁.,(2). 所插入的学生选课元组中学生所选的课程必须为学校开设的课程.,图8-7,图8-8,二. ORACLE 系统 ORACLE系统中实现完整性控制的两个途径 1. 字段的有效性说明

7、2. 定义触发器,(1)触发器的三个级别 (2)触发的五种事件 .进入时 .查询 .修改 .退出 .按键,(3). 触发器中所用的SELECT语句格式 SELECT 目标列 INTO :块名.字段 FROM 表名 WHERE 子句 GROUP BY 子句,比标准的SELECT语句有两点扩充.,例1. 每当在学生选课SC表中加入一个记录时,保证C#与课程表C中的某个C#相同,S#与学生表S中的某个S#相同.,在SC表对应的块上定义一个pre-insert触发器. SELECT X FROM S,C WHERE S.S# =:SC.S# AND C.C# =:SC.C#;,例2. 只能删除没有选课

8、的学生.,在S表对应的块上定义一个pre-delete触发器: SELECT X FROM SC WHERE SC.S# =:S.S#,例3. 计算机系的学生年龄在16岁到25岁之间. 在S表对应块的年龄字段上定义一个post-change触发器: SELECT X FROM DUAL WHERE :S.SD =CS AND :S.SA BETWEEN 16 AND 25;,8.3 并 发 控 制 8.3.1 基本概念 一. 事务的概念 二. 数据一致性级别的概念,(a) 丢失修改,(b) 不能重复读,(c) 读脏数据,图8-10,8.3.2 封锁(Locking) 一.基本的封锁类型 1.排

9、它锁(Exclusive locks),简记为X锁 2.共享锁(Share locks),简记为S锁 可以用相容矩阵(图8-11)来表示这些控制方式.,图8-11 封锁类型的相容矩阵,二.利用封锁机制解决事务并发操作带来的相关问题 1.封锁机制执行并发控制时的约定 (1).事务T在读、写数据对象R时首先要发出Slock或Xlock请求,事务T获得所要的锁后才能读、写R. (2).事务T结束时才释放锁. 2.利用封锁机制解决图8-10中的三个问题.(图8-12),三.建立不同的约定,形成不同级别的封锁协议,表 8-5 不同级别的封锁协议,四.封锁尺度(granularity),8.3.3 活锁和

10、死锁 一.活锁产生的原因和解决方法 1.活锁产生的原因 2.避免活锁的方法 二.产生死锁的原因及解决方法 1.产生死锁的原因 2.解决死锁的方法 (1).要求每个事务一次就将所有要使用的数据全部加锁,否则就不能执行. (2).预先规定一个封锁顺序,所有的事务都必须按这个顺序对数据执行封锁. (3).诊断死锁,解除死锁.,课间休息,注意时间,8.3.4 可 串 行 性 计算机系统对并行操作的调度是随机的,不同的调度会产生不同的结果.哪个结果是正确的呢?,事务T1: 读B; A=B+1; 写回A; 事务T2: 读A; B=A+1; 写回B; 设A,B初值均为2,按T1-T2次序串行的执行它们时,结

11、果是A=3, B=4. 若按T2-T1次序串行的执行它们时,结果是A=4, B=3.,1.串行调度 2. 可串行化,8.3.5 两段锁协议 一.基本概念,二. 两段锁协议规定所有的事务应遵循的规则: 1.在对任何数据进行读写之前,事务首先要获得对该数据的封锁. 2. 在释放一个封锁之后,事务不在获得任何其他封锁.,例如: T1的封锁序列是: S lock AS lock BX lock CUn lock BUn lock AUn lock C; T2的封锁序列是: S lock AUn lock AS lock BX lock CUn lock CUn lock B;,定理: 若所有事务均遵守两段协议,则这些事务的所有交叉调度都是可串行化的.,8.4 恢 复 8.4.1 故障的种类 一.事务内部的故障 事务故障意味着事务没有达到预期的终点,因此数据库可能处于不正确状态.系统就要滚回此事务,即撤销该事务已经作出的任何对数据库的修改,使得该事务好象根本没有启动一样

温馨提示

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

评论

0/150

提交评论