您的位置:自考365 > 复习指导 > 笔记串讲 > 理学 > 自考《数据库原理》串讲—数据库保护

自考《数据库原理》串讲—数据库保护

2007-01-17 16:46   【 】【我要纠错

  第六章 数据库保护

  本章不是重点章节,主要内容包括数据库保护的四种措施,数据库的恢复、并发控制、完整性和安全性。了解这些内容及其在SQL语言中的实现方式。

  一、数据库的恢复( 领会 )

  1、 事务的概念 : 事务是一个操作序列 .这些操作要么什么都做,要么都不做,是一个 不可分割 的工作单位。事务以BEGIN TRANSACTION语句开始,以COMMIT(提交)语句或ROLLBACK(回退或撤消)语句结束。

  一个程序的执行可通过若干事务的执行序列来完成。

  2、 事务的性质 : 原子性 (atomicity)、 一致性 (consistency)、 隔离性 (isolation)和 持久性 (durability)。称为事务的ACID性质。

  通过教材的例子来理解事务的性质 .

  3、故障类型和恢复方法

  4、恢复的基本原则和实现方法

  恢复的基本原则 很简单,就是“ 冗余 ”,即数据的重复存储 .

  实现方法有:

  (1)定期对数据库进行 复制 或转储(dump)。注意几个概念:静态转储、动态转储、海量转储和增量转储。

  (2)建立“ 日志 ”文件。

  (3) 恢复 .发生故障时有两种处理方法,如数据库已破坏,则由DBA装入最近备份的数据库然后利用“日志文件”执行REDO(重做)操作。如数据库未被损坏,但某些数据不可靠,则系统会自动执行UNDO操作恢复数据。

  5、 运行记录优先原则 (即 先记录,再更新,先记完,再结束 )

  (1)至少要等相应的运行记录已经写入“日志”文件后,才能允许事务往数据库在写数据。

  (2)直到事务的所有运行记录都已写入运行“日志”文件后,才能允许事务完成“END TRANSACTION”处理。

  6、SQL中的恢复操作,可上机观察。

  二、数据库的并发控制( 领会 )

  1、并发控制带来的三类问题:

  (1)丢失更新的问题

  (2)不一致分析问题

  (3)“脏数据”的读出。(在数据库技术中,未提交的随后又被撤消的数据为“脏数据”。)

  2、为解决并发控制带来的问题,通常要采用 封锁 (locking)技术,常用的封锁有:排它型封锁( X封锁) 和共享型封锁( S封锁 )两种。

  X封锁的规则称为 PX协议 ,其内容为:任何企图更新记录R的事务必须先执行LOCK X(R)操作,以获得对该记录进行寻址的能力,并对它取得X封锁。如果未获得X封锁,那么这个事务进入等待状态,一直到获准X封锁,事务继续进行。

  简记为: 先锁X,再执行,取不到,就等待。

  PXC协议 :它由PX协议及一条规则“X封锁必须保留到 事务终点 (COMMIT或ROLLBACK)”组成。

  S封锁的规则称为 PS协议 :其内容为:任何要更新记录R的事务必须先执行LOCK S(R)操作,以获得对该记录寻址的能力并对它取得S封锁。如果未获准S封锁,那么这个事务进入等待状态,一直到获准S封锁,事务才继续进行下去。当事务获准对记录R的要封锁后,在记录R修改前必须把S封锁升级为X封锁。

  简记为: 先锁S,再执行,锁不到,就等待,若要修改则升X .

  PSC协议:由PS协议和“将S封锁保持到事务终点”组成。

  3、 活锁 :是指某个事务永远处于等待状态,得不到执行的现象。避免活锁的方法是采用“先来先服务”策略。

  死锁 :有两个或以上的事务处于等待状态,每个事务都在等待另一个事务解除封锁,它才能继续执行下去,结果任何一个事务都无法执行,这种现象就是死锁。

  解除死锁的方法是由DBMS中的“死锁测试程序”来检查,如发现死锁则牺牲一个事务,并做回退操作,解除它的所有封锁。

  4、 两段封锁法 ( 识记 )

  两段封锁协议规定所有事务都要遵守下列规则:(1)在对任何数据进行读写操作之前,事务首先要获得对该数据的封锁;(2)在释放一个封锁之后,事务不再获得任何其他封锁。

  针对课本的例子来理解。

  三、数据库的完整性( 领会 )

  1、数据库的 完整性 是指数据的 正确性和相容性 .数据库中数据发生错误,往往是由非法更新引起的。

  数据库完整性是通过DBMS的 完整性子系统 实现的,它有两个功能:

  (1)监督事务的执行,并测试是否违反完整性规则。

  (2)如有违反,则采取恰当的操作,如拒绝、报告违反情况,改正错误等方法进行处理。

  数据库完整性子系统 是根据“ 完整性规则集 ” 工作的,这些完整性规则包括: 域 完整性规则、 域联系 的规则、 关系完整性 规则(一个比一个大)

  2、SQL中的完整性约束

  在SQL中,表达完整性约束的规则有 主键约束 、 外键约束 、 属性值约束 和 全局约束等 多种形式。

  主键约束:可用主键子句或主键短语 PRIMARY KEY 来定义。

  外键约束:可用外键子句来定义如 FOREIGN KEY (S#) REFERNCE S(S#)

  属性值约束:包括非空值约束( NOT NULL )和基于属性的检查子句( CHECK ) 及域约束子句 如 CREAT DOMAIN AGE SMALLINT CHECK (&#118alue>10)

  全局约束:包括基于元组的检查子句( CHECK )和断言( CREATE ASSERTION 断言名 CHECK 条件)。

  四、数据库的安全性( 识记 )

  数据库的安全性是指保护数据库防止不合法的使用,以免数据的泄漏、非法更改和破坏。

  1、安全性级别:包括 环境级 、 职员级 、 OS级 、 网络级 和 数据库系统级 .

  2、用户或应用程序 使用数据库的方式称为权限 ,权限的种类:

  访问数据权限: 读、插入、修改、删除 四种

  修改数据库模式权限: 索引 (创建或删除索引)、 资源 (创建新关系)、 修改 (增删关系结构属性)和 撤消权限 (撤消关系)

  3、权限的转授与回收:画一个 权限图 ,只要根结点到用户结点之间存在一条 路径 ,那么它就有权限,回收时就是删去某些路径。

  4、SQL中的安全性控制

  SQL中有两个安全机制:一是 视图机制 、二是 授权子系统 .

  视图是从一个或几个 基本表 导出的表,是 虚表 ,视图定义后可以像基本表一样用于查询和删除,但其 更新操作(增、删、改) 会受到限制。

  视图机制 把用户可以使用的数据定义在视图中,这样用户就不能使用视图定义外的其他数据,从而保证了数据库的安全性。视图机制使系统具有 三个优点 : 数据安全性 、 数据独立性 和 操作简便性 .

  授权机制 可以保证用户只能进行其权限范围内的操作。

  6、数据加密可更好地保证数据库中数据的安全性,采用加密算法给把源文变为密文来实现。常用的加密算法有“ 替换方法 ”和 明键加密法 .

  同时,为保证数据库的安全,也应注意自然环境的安全性。

本文转载链接:自考《数据库原理》串讲—数据库保护

分享到:
  • 站内搜索
  • 课程搜索
  • 试题搜索

热门搜索:教材 报名 查分 免考 考试计划