数据库原理及应用 ——,十一五”
国家级规划教材哦 1
第 4章 数据库安全及维护
本章重点内容
数据库安全性问题的基本概念和保证数据安全性的基本措施
数据库并发情况下的数据安全及处理方法
数据发生故障情况下的恢复技术数据库原理及应用 ——,十一五”
国家级规划教材哦 2
4.1 数据库安全性
4.1.1 基本概念
数据库的安全性:指保护数据库以防止不合法的使用所造成的数据泄露,更改或破坏 。
安全性问题和保密问题是密切相关的 。
4.1.2 安全措施的设置模型
在计算机系统中,安全措施通常是一级一级层层设置的。
用 户 D B M S OS DB
用户标识和鉴别存取控制 操作系统安全保护数据密码存储数据库原理及应用 ——,十一五”
国家级规划教材哦 3
4.1.2 安全措施的设置模型
1,用户标识和鉴别
首先,系统提供一定的方式让用户标识自己的名字或身份 。 系统进行核实,通过鉴定后才提供机器使用权 。 常用的方法有:
用一个用户名或者用户标识号来标明用户身份,
系统鉴别此用户是否为合法用户 。
口令 ( Password)
系统提供一个随机数,用户根据预先约定好的某一过程或者函数进行计算,系统根据用户计算结果是否正确进一步鉴定用户身份
4.1 数据库安全性数据库原理及应用 ——,十一五”
国家级规划教材哦 4
4.1.2 安全措施的设置模型
2,存取控制
当用户通过了用户标识和鉴定后,要根据预先定义好的用户权限进行存取控制,保证用户只能存取他有权存取的数据。这里的用户权限是指不同的用户对于不同的数据对象允许执行的操作权限,
它由两部分组成,一是数据对象,二是操作类型,
定义用户的存取权限就是要设置该用户可以在那些数据对象上进行哪些类型的操作。
数据对象 操作类型模式、外模式、内模式 建立、修改、使用(检索)
表或者记录、字段 查找、插入、修改、删除
4.1 数据库安全性数据库原理及应用 ——,十一五”
国家级规划教材哦 5
4.1.2 安全措施的设置模型
2,存取控制
在非关系系统中,外模式,模式,内模式的建立,
修改均由数据库管理员 ( DBA) 负责,一般用户无权执行这些操作,因此存取控制的数据对象仅限于数据本身 。 在关系系统中 DBA可以把建立,修改基本表的权力授予用户 。 所以,关系系统中存取控制的数据对象不仅有数据,而且有模式,外模式,内模式等数据字典中的内容 。
数据库中存取控制的一般方法和技术:
– 定义用户存取权限称为授权 ( Authorization),这些定义经过编译后存储在数据字典中 。
– 合法权限检查。
4.1 数据库安全性数据库原理及应用 ——,十一五”
国家级规划教材哦 6
4.2.1 基本概念
1,数据库的完整性
数据库的完整性:指数据的正确性和相容性,
DBMS必须提供一种功能来保证数据库中数据的完整性,这种功能亦称为完整性检查,即系统用一定的机制来检查数据库中的数据是否满足规定的条件,这种条件在数据库中称为完整性约束条件,
这些完整性约束条件将作为模式的一部分存入数据库中 。
2,数据的完整性和安全性的区别
数据的完整性和安全性是两个不同的概念,完整性和安全性又是密切相关的。
4.2 数据库的完整性数据库原理及应用 ——,十一五”
国家级规划教材哦 7
4.2.2 完整性约束
完整性约束条件可以进行以下分类:
1.值的约束和结构的约束
值的约束是对数据的值的限制,结构的约束是指对数据之间联系的限制 。
⑴ 关于对数据值的约束 。
这类约束条件是指对数据取值类型,范围,精度等的规定,例如:
对某个属性和属性组合规定某个值集 。
规定某属性值的类型和格式 。
规定某属性的值的集合必须满足某种统计条件 。
⑵ 关于数据之间联系的约束
4.2 数据库的完整性数据库原理及应用 ——,十一五”
国家级规划教材哦 8
4.2.2 完整性约束
2.静态约束和动态约束
静态约束,是指对数据库每一确定状态的数据所应满足的约束条件 。
动态约束,是指数据库从一种状态转变为另一种状态时新,旧值之间所应满足的约束条件 。
3.立即执行约束和延迟执行约束
立即执行约束,是指在执行用户事务时,对事务中某一更新语句执行完后马上此数据所应满足的约束条件进行完整性检查 。
延迟执行约束,是指在整个事务执行结束后方对此约束条件进行完整性检查,结果正确方能提交。
4.2 数据库的完整性数据库原理及应用 ——,十一五”
国家级规划教材哦 9
4.2.2 完整性约束
4,完整性的实现应包括两个方面:
系统要提供定义完整性约束条件的功能;
系统提供检查完整性约束条件的方法。
4.2 数据库的完整性数据库原理及应用 ——,十一五”
国家级规划教材哦 10
4.3.1 基本概念
1,事务
事务 ( Transaction) 是并发控制的单位,是一个操作序列 。 这些操作要么都做,要么都不做,是一个不可分割的工作单位 。
事务通常以 BEGIN TRANSACTION开始,以 COMMIT
或 ROLLBACK操作结束 。
事务和程序是两个概念 。
2,数据一致性级别的概念
数据的不一致性,因多个事务对同一数据地交叉修改(并发操作)而引起地数据不正确或数据修改丢失就称为数据的不一致性。
4.3 并发控制数据库原理及应用 ——,十一五”
国家级规划教材哦 11
丢失修改 不能重复读取 读“脏”数据
T1 T2 T1 T2 T1 T2
①读
A=20
①读 A=50
读 B=100
求和 =150
①读 C=100
C=C*2
写回 C
② 读 A=20 ② 读 B=100
B=B*2
写回 B
② 读
C=200

A=A-1
写回
A=19
③ ③
ROLLBAC
K
C恢复为 100
④ A=A-1
写回
A=19
④读 A=50
读 B=200
求和 =250

并发操作举例数据库原理及应用 ——,十一五”
国家级规划教材哦 12
并发操作可能会产生以下几种不一致性:
– 丢失修改
– 不能重复读取
– 读,脏,数据
3,并发控制
– 并发控制:就是要用正确的方式调度并发操作,避免造成数据的不一致性,使一个用户事务的执行不受其它事务的干扰 。 另一方面,对数据库的应用有时允许某些不一致性 。
– 并发控制的主要方法是采用封锁机制( Locking)。
4.3 并发控制数据库原理及应用 ——,十一五”
国家级规划教材哦 13
4.3.2 封锁
封锁,事务对数据库操作之前,先对数据加锁以便获得这个数据对象的一定控制,使得其他事务不能更新此数据,直到该事务解锁为止 。
1,封锁的类型
– 共享性封锁 ( 共享锁,或称 S锁 ),也称读锁 ( RLOCK),
若事务 T对数据对象 A加上 S锁,则事务 T可以读取 A但不能修改 A,其他事务只能对 A加 S锁,而不能加 X锁,直道 T释放 A上的 S锁 。 这就保证了其他事务可以读 A,但在 T释放 A上的锁之前不能修改 A。
– 排他性封锁 (排他锁,或称 X锁 )— 也称写锁 ( WLOCK):
若事务 T对数据对象 A加上 X锁,则只允许 T读取和修改 A,
其他任何事务都不能再对 A加任何类型的锁,直道 T释放 A
上的锁。这就保证了其他事务在 T释放 A上的锁之前不能在读取和修改 A。
4.3 并发控制数据库原理及应用 ——,十一五”
国家级规划教材哦 14
2,封锁类型的控制方式
– 封锁类型决定控制方式,用相容矩阵表示控制方式。
X锁 S锁 -
X锁 N N Y
S锁 N Y Y
- Y Y Y
T2
T1
4.3 并发控制数据库原理及应用 ——,十一五”
国家级规划教材哦 15
3,用封锁机制解决购买火车票问题数据库原理及应用 ——,十一五”
国家级规划教材哦 16
4.3.2 封锁
4,活锁与死锁
( 1) 活锁,某一事务的请求可能永远得不到,该事务一直处于等待状态。
( 2) 死锁,两个事务处于相互等待状态,
永远不能结束。
举例:见下页
4.3 并发控制数据库原理及应用 ——,十一五”
国家级规划教材哦 17
数据库原理及应用 ——,十一五”
国家级规划教材哦 18
4.3.2 封锁
死锁解决方法:
将所有数据一次性加锁 —— 降低了并发度 。
预先规定一个封锁顺序 。
诊断法:检测是否有死锁发生,如有则设法解除。
4.3 并发控制数据库原理及应用 ——,十一五”
国家级规划教材哦 19
4.3.3 并发调度的串行操作和并行操作
1,对多个事务处理的两种方法
串行操作,一个个地处理,一组事务的任意串行操作都可以保证数据的一致性 。
并行操作,利用分时的方法同时处理多个事务 。
2,调度
把并发操作的全部事务按某一顺序运行 。
3,串行调度
若多个事务按照某一次序串行的执行,则称事务的调度是串行的 。
4,并行调度
若多个事务同时交叉地并行执行,则称事务的调度是并行的。
4.3 并发控制数据库原理及应用 ——,十一五”
国家级规划教材哦 20
4.4.1 故障的种类
1,事务内部的故障
事务内部的故障有的是可以通过事务程序本身发现的,有的是非预期的,不能由事务程序处理的 。
例如,IF dw_1.Update() > 0 THEN
Commit;
ELSE
MessageBox("学费管理 ","对不起,无法对数据保存 !")
Rollback;
END IF
4.4 数据恢复数据库原理及应用 ——,十一五”
国家级规划教材哦 21
事务内部更多的故障是非预期的,是不能由应用程序处理的。系统就要强行回滚此事务,即撤消该事务已经作出的任何对数据库的修改,使得该事务好象根本没有启动一样。
2,系统范围内的故障
3,介质故障
4,计算机病毒
数据恢复的基本原理十分简单,采用的主要技术手段是冗余。
4.4 数据恢复数据库原理及应用 ——,十一五”
国家级规划教材哦 22
4.4.2 转储和恢复
1,什么是转储和恢复
转储,是数据库恢复中采用的基本技术 。
所谓转储即 DBA( 数据库管理员 ) 定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程 。 这些备用的数据文本称为后备副本或后援副本 。
恢复,当数据库遭到破坏后就可以利用后备副本把数据库恢复,这时,数据库只能恢复到转储时的状态,从那以后的所有更新事务必须重新运行才能恢复到故障时的状态。
4.4 数据恢复数据库原理及应用 ——,十一五”
国家级规划教材哦 23
4.4.2 转储和恢复
2,转储的分类
静态转储,指转储期间不允许 ( 或不存在 ) 对数据库进行任何存取,修改活动 。
动态转储,指转储期间允许对数据库进行存取或修改 。
即转储和用户事务可以并发执行 。 动态转储可克服静态转储的缺点,但是,转储结束时后援副本上的数据并不能保证正确有效 。 为此,必须把转储期间各事务对数据库的修改活动登记下来,建立日志文件 ( log file) 。 这样,后援副本加上日志文件就能把数据库恢复到某一时刻的正确状态 。
4.4 数据恢复数据库原理及应用 ——,十一五”
国家级规划教材哦 24
4.4.2 转储和恢复
2,转储的分类
海量转储,海量转储是指每次转储全部数据库 。
增量转储,增量转储则指每次只转储上次转储后更新过的数据。如果数据库很大,事务处理又十分频繁,则增量转储方式是很有效的。
4.4 数据恢复数据库原理及应用 ——,十一五”
国家级规划教材哦 25
4.4.3 日志文件
日志文件,是用来记录对数据库每一次更新活动的文件 。
在动态转储方式中必须建立日志文件,后援副本和日志文件综合起来才能有效地恢复数据库 。 在静态转储方式中,也可以建立日志文件,当数据库被破坏后可重新装入后援副本把数据库恢复到转储结束时刻的正确状态,然后利用日志文件,把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤消处理 。 这样不必重新运行那些已完成的事务程序就可把数据库恢复到故障前某一时刻的正确状态 。
4.4 数据恢复数据库原理及应用 ——,十一五”
国家级规划教材哦 26
日志文件使用
1,登记日志文件 ( logging)
事务在运行过程中,系统把事务开始,事务结束 ( 包括 COMMIT和 ROLLBACK),以及对数据库的插入,删除,修改等每一个操作作为一个登记记录 ( log记录 ) 存放到日志文件中 。 每个记录包括的主要内容有:执行操作的事务标识,操作类型,
更新前数据的旧值 ( 对插入操作而言此项为空值 ),更新后的新值 ( 对删除操作而言此项为空值 ) 。
登记的次序严格按并行事务操作执行的时间次序,同时遵循,先写日志文件,的规则 。
4.4 数据恢复数据库原理及应用 ——,十一五”
国家级规划教材哦 27
日志文件使用
2,用日志文件恢复事务
利用日志文件恢复事务的过程分为二步:
( 1) 从头扫描日志文件 。
( 2) 对尚未结束的事务进行撤消 ( 也称为
UNDO) 处理 。
对已经结束的事务进行重做 ( REDO) 处理 。
4.4 数据恢复数据库原理及应用 ——,十一五”
国家级规划教材哦 28
4.4.3 用转储和日志文件恢复数据库
– 利用转储和日志文件可以有效的恢复数据库,
当数据库本身被破坏时(如硬故障和病毒破坏),可重装转储的后备副本,然后运行日志文件,执行事务恢复,这样就可以重建数据库。当数据库本身没被破坏,但内容已经不可靠时(如发生事务故障和系统故障)可利用日志文件恢复事务,从而使数据库回到某一正确状态,这时不必重装后备副本。前一种情况需要 DBA执行恢复过程,后一种情况一般无需 DBA介入而由系统自动执行。
4.4 数据恢复数据库原理及应用 ——,十一五”
国家级规划教材哦 29
本章小结
数据的安全性是数据库的一个重要指标,它是保护数据以防止不合法的使用所造成的数据泄漏、更改和破坏的有效手段。保证数 据安全性的主要措施有用户标识与鉴别、存取控制等安全措施。
数据库的完整性控制包括完整性约束的定义及其对完整性约束的检查和处理。当对数据库进行更新操作时,系统会检查用户的操作是否违反了完整性约束,若违反了完整性约束,就采取一定的 措施来保证数据的完整性。
数据的安全性和完整性是两个不同的概念,学习时应注意加以区 别。
数据库并发控制的最小单位是事务,也是数据库中一个重要概念。
应掌握事务的定义、特性和调度方式,以及事务并发执行所带来的三个问题:丢失修改,不能重复读取,读“脏”数据。解决这些问题的方法是封锁。封锁分为排它锁和共享锁,在封锁的过程 中可能发生活锁和死锁现象。对这些基本概念应加深理解。
数据库系统在运行过程中会遇到各种故障,掌握常见的故障类型 和一般故障恢复技术。