《[精品]数据库复习资料》由会员分享,可在线阅读,更多相关《[精品]数据库复习资料(7页珍藏版)》请在金锄头文库上搜索。
1、第四章数据库安全TCSEC级另U戈U分:D级,C1级,C2级,B1级,B2级,B3级,A1级存取控制: DAC C2 MAC B1会写权限授予与回收: grant, revoke 语句第五章数据库完整性实体完整性1 实体完整性定义:关系模型的实体完整性:CREATE TABLE 中用PRIMARY KEY定义单属性构成的码有两种说明方法:定义为列级约束条件;定义为表级约束条件 对多个属性构成的码只有一种说明方法:定义为表级约束条件2 实体完整性检查和违约处理:插入或对主码列进行更新操作时,RDBMS 按照实体完整性 规则自动进行检查。包括: 1.检查主码值是否唯一,如果不唯一则拒绝插入或修改2
2、.检查 主码的各个属性是否为空,只要有一个为空就拒绝插入或修改参照完整性1 关系模型的参照完整性定义:在 CREATE TABLE 中用 FOREIGN KEY 短语定义哪些列 为外 码;用 REFERENCES 短语指明这些外码参照哪些表的主码2 参照完整性违约处理:拒绝 (NO ACTION) 执行,默认策略;级联 (CASCADE) 操作;设置 为空值(SET-NULL),对于参照完整性,除了应该定义外码,还应定义外码列是否允许空值用户定义的完整性用户定义的完整性就是针对某一具体应用的数据必须满足的语义要,RDBMS 提供,而不必 由应用程序承担1 属性上 的 约束 条 件的 定义: C
3、REATE TABLE 时定义 : 列值 非空 (NOTNULL), 列 值 唯一 (UNIQUE), 检查列值是否满足一个布尔表达式 (CHECK)2 属性上的约束条件检查和违约处:插入元组或修改属性的值时,RDBMS 检查属性上的约 束条件是否被满足,如果不满足则操作被拒绝执行3 元组上的约束条件的定义:在 CREATE TABLE 时可以用 CHECK 短语定义元组上的约束 条件,即元组级的限制,同属性值限制相比,元组级的限制可以设置不同属性之间的取值的相互约束条件4 元组上的约束条件检查和违约处理:插入元组或修改属性的值时,RDBMS 检查元组上的 约束条件是否被满足,如果不满足则操作
4、被拒绝执行触发器触发器 ( Trigger) 是用户定义在关系表上的一类由事件驱动的特殊过程,由服务器自动激活, 可以进行更为复杂的检查和操作,具有更精细和更强大的数据控制能力1 定义触发器:CREATE TRIGGER 语法格式CREATE TRIGGER 触发器名(BEFORE I AFTER) 触发事件 ON 表名FOR EACH ROW I STATEMENT)WHEN触发条件触发动作体2 激活触发器 触发器的执行,是由触发事件激活的,并由数据库服务器自动执行,一个数据表上可能定义 了多个触发器同一个表上的多个触发器激活时遵循如下的执行顺序:(1) 执行该表上的BEFORE 触发器;(
5、2) 激活触发器的SQL 语句;(3) 执行该表上的AFTER 触发器。3 删除触发器删除触发器的 SQL 语法:DROP TRIGGER 触发器名 ON 表名; 触发器必须是一个已经创建的触发器,并且只能由具有相应权限的用户删除。 第六章关系数据理论1 规范化 完全函数依赖和部分函数依赖:定义 6.2例 1 中 (Sno,Cno)-Grade 是完全函数依赖,(Sno,CnoLSdept 是部分函数依赖因为Sno Sdept成立,且 Sno是(Sno, Cno)的真子集传递函数依赖:定义 6.3在关系 Std(Sno, Sdept, Mname) 中,有: Sno Sdept, Sdept
6、MnameMname 传递函数依赖于 Sno范式第一范式 (1NF) :如果一个关系模式 R 的所有属性都是不可分的基本数据项,则 RG1NF 第二范式 (2NF) :若 ReiNF, 且每一个非主属性完全函数依赖于码,则 RG2NF第三范式(3NF):设关系模式 R,当R上每一个X-A满足下列条件之一时:X 是 R 的超码; A 是主属性,关系模式 R 就是 3NF 模式。BC 范式 (BCNF) :关系模式 RG1NF, 若 X-Y 且 Y Q X 时 X 必含有码,则 R EBCNFo 等价于:每一个决定因素都包含码都含第四范式 (4NF) :关系模式 ReiNF, 如果对于 R 的每个
7、非平凡多值依赖X-Y (Y cX), X有码,贝ijR塑NFo关系模式规范化的基本步骤:1NFI 消除非主属性对码的部分函数依赖消除决定属性集非码的非平凡函数依赖2NFI 消除非主属性对码的传递函数依赖3NFI 消除主属性对码的部分和传递函数依赖BCNFI消除非平凡且非函数依赖的多值依赖4NF2Armstrong公理系统自反律,增广律,传递律函数依赖闭包:定义6.12,定义6.13求属性集闭包的算法:算法6.1例 已知关系模式 RU,玲,其中 U=A, B, C, D, E ; F=AB C, B D, C-E, EC B, AC B。 求(AB) F+。解设 X (0) =AB ;(1) X
8、 =AB U CD=ABCD?(2) X (0) # X (1), X =X (1) UBE=ABCDE 。 X (2) =U,算法终止 一(AB) F+ =ABCDE最小依赖集:定义 6.15极小化过程:定理 6.3例 F=A-B, B-A, B C, A-C, C AFml、Fm2都是F的最小依赖集:Fml= A B, B C, CAFm2= A B, B A, A-C, C AF的最小依赖集Fm不唯一模式的分解具有无损连接性的模式分解:关系模式R的一个分解P = RKU1.F1,R2, Rn,若R与Rl、R2、. 、Rn自然连接的结果相等,则称关系模式R的这个分解P具有无损连接性(Los
9、sless join)保持函数依赖的模式分解:设关系模式R被分解为若干个关系模式R1,R2, RnvUn,Fn 其中 U=U1U U2U.UUn,且不存在 Ui c Uj, Fi 为 F 在 Ui 上的投影), 若F所逻辑蕴含的函数依赖一定也由分解得到的某个关系模式中的函数依赖Fi所逻辑蕴含,则称关系模式 R的这个分解是保持函数依赖的 (Preserve dependency)例:S-L (Sno, Sdept, Sloe)F= Sno Sdept,Sdept 一 Sloc,Sno SloeS-LU2NF分解方法可以有多种:1. S-L 分解为二个关系模式:SN(S no ),SD(Sdept
10、),SO(Sloc)2. SL 分解为下面二个关系模式:NL(S no, Sloc),DL(Sdept, Sloe)3. 将SL分解为下面二个关系模式:ND(Sno, Sdept),L(Sno, Sloe)第3种分解方法具有无损连接性将SL分解为下面二个关系模式ND(Sno, Sdept),DL(Sdept, Sloe)这种分解方法就保持了函数依赖第七章数据库设计数据库设计的基本步骤(p201)I可以独立于任何数据库管理系统进行1. 需求分析2. 概念结构设计3. 逻辑结构设计 I 与选用的 DBMS 密切相关4. 物理结构设计5. 数据库实施6. 数据库运行和维护需求分析 ( P205) :
11、 DFD 数据流程图 DD 数据流概念结构设计 (P209) : E-R 模型逻辑结构设计 (P224): E-R 图向关系模型的转换数据库运行和维护 (P233) : 1.数据库的转储和恢复2. 数据库的安全性、完整性控制3. 数据库性能的监督、分析和改造4. 数据库的重组织与重构造第十章数据库恢复技术事务(P278):是用户定义的一个数据库操作实例,这些操作要么全做要么全不做,是一个不 分割的工作单元。在 SQL 中,定义事务的语句有 3 条BEGIN TRANSACTIONCOMMIT (提交事务的所有操作 )ROLLBACK ( 撤销事务 )/ 原子性 (Atomicity)事务的特性
12、 ( ACID) y 一致性 ( Consistency)(P279)隔离性 ( Isolation)持续性 ( Durability)事务内部的故障系统故障数据库系统中的故障种类 (P280-281) |介质故障计算机病毒UNDO 事务撤销)故障恢复策略 ( P285-286) 事务故障的恢复:反向扫描日志文件逆操作( 系统故障的恢复:正向扫描日志文件故障发生前已提交的事务( REDO ) 反向扫描日志文件未完成的事务( UNDO ) 介质故障的恢复:装入最新的数据库后备副本 装入相应的日志文件副本,重做已完成的事务恢复的实现技术静态转储1. 数据转储 (backup) (P282-283)
13、动态转储2. 登记 H 志文件( Logging ) ( P283-284 ) 登记日志文件时必须遵循两条原则: 登记的次序严格按并发事务执行的时间顺序 必须先写日志文件,后写数据库第十一章并发控制 为何需要并发控制:数据库(共享)事务( ACID ) 交叉并行方式并行执行方式 (P292T、同时并发方式对并发操作进行正确调度 并发控制机制的任务 保证事务的隔离性和一致性P293)丢失修改(写写冲突) 数据三种不一致 J 不可重复读(读写冲突) (P293-294) 读 “脏”数据(写读冲突)读数据X记为R (X ),写数据X记为R (X )数据的不一致性:由于并发操作破坏了事务的隔离性封锁(
14、一般商用的 DBMS 采用此法)并发控制的主要技术 时间戳乐观控制法(验证)悲观控制法(封锁)乐观控制法:用户读数据时不锁定数据。 悲观控制法:锁定系统阻止用户以影响其它用户的方式修改数据。封锁协议:两段锁(并不能避免死锁)和三级锁封锁( P294-296 ) :就是事务 T 在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。基本的封锁类型:排它锁( X 锁)又称为写锁共享锁( S 锁)又称为读锁封锁的方法可能引起活锁和死锁等问题 避免活锁的方法: FIFO 先来先服务( P297 ) 死锁的预防:一次封锁法和顺序封锁法 ( P297-298 ) 死锁的诊断 : 超时法和等待图法( P298 ) 死锁的解除:选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有的锁, 使 其他事务得以继续运行下去。并行调度的可串行性可串行化调度( P299) :多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同。可串行性:是并发事务正确调度的准则,一个给定的并发调度,并且仅当它是可串行化的,才认为是正确调度。可串行化调度的充分条件一个调度 Sc 在保证冲突操作的次序不变的情况下,通过交换两个事务不冲突操作的次序得 到另 一个调度Set如果Sc,是串行的,称 Sc调度为冲突可串行化的调度。一个调度