1、第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系1第第7章章 系统实现技术系统实现技术第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系2本章重要概念系统目录及其与DBMS各子系统的联系。事务的定义,COMMIT和ROLLBACK的语义,事务的ACID性质,事务的状态变迁图。存储器类型,稳定存储器的实现,数据传送过程。恢复的定义、基本原则和实现方法,故障类型,检查点技术,REDO和UNDO操作,运行记录优先原则。第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系3本章重要概念(续1)并发操作带来的三个问题,X锁、PX协议、PXC协议,S锁
2、、PS协议、PSC协议,活锁、饿死和死锁,并发调度,串行调度,并发调度的可串行化,两段封锁法,SQL中事务的存取模式和隔离级别。完整性的定义,完整性子系统的功能,完整性规则的组成。SQL中的三大类完整性约束,SQL3中的触发器技术。安全性的定义、级别,权限,SQL中安全性机制,几种常用的安全性措施,自然环境的安全性。第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系4主要内容和学习要求7.1 7.1 系统目录系统目录(理解)(理解)7.2 7.2 事务事务(综合应用)(综合应用)7.3 7.3 数据库的恢复数据库的恢复(理解)(理解)7.4 7.4 数据库的并发控制数据库的并
3、发控制(了解)(了解)7.5 7.5 并发事务的可串行化和可恢复性(了解)并发事务的可串行化和可恢复性(了解)7.6 7.6 数据库的完整性数据库的完整性(理解)(理解)7.7 7.7 数据库的安全性数据库的安全性(理解)(理解)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系57.1 系统目录系统目录什么是系统目录系统目录的重要性系统目录的内容元数据第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系67.1 系统目录系统目录(续续1)7.1.1 RDBMS系统目录的存储内容系统目录的存储内容n关系名,属性名,属性域(数据类型)n各种约束,主键,辅助键,外
4、键,空值/非空值 n视图的外部级描述,存储结构和索引的内部级描述 n安全性和授权规则 n数据完整性规则 注意:这些数据都以表格的形式存在第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系77.1 系统目录系统目录(续续2)REL_AND_ATTR_CATALOGREL_NAMEATTR_NAMEATTR_TYPEMEMBER_OF_PKMEMBER_OF_FKFK_RELATION关系名属性名属性类型主键外键外键关系RELATION_KEYSRELATION_KEYSREL_NAMEKEY_NUMBERMEMBER_ATTR(a)存储键信息的目录关系RELATION_INDE
5、XESRELATION_INDEXESREL_NAMEINDEX_NAMEMEMBER_ATTRINDEX_TYPEATTR_NOASC_DESC(b)存储索引信息的目录关系VIEW_QUERIERVIEW_QUERIER VIEW_ATTRIBUTESVIEW_ATTRIBUTESVIEW_NAMEQUERY VIEW_NAMEATTR_NAMEATTR_NUM(c)存储视图信息的目录关系某某RDBMS的系统目录内容的系统目录内容第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系87.1 系统目录系统目录(续续3)属性键视图属性视图关系关系基本关系索引属性名键类型d数据类型
6、键编号关系名查询索引类型属性序号索引名属性名K_AR_IR_FI_AK_IR_AR_KV_A外键7.1.2 系统目录的扩充系统目录的扩充ER图图第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系97.1 系统目录系统目录(续续4)DML命令的外命令的外部级到概念级部级到概念级映象映象DDL编译程序编译程序DML优化程序优化程序DML编译程序编译程序DML分析校分析校验程序验程序DBMS处理和检查三级模式两级映象检查查询涉及的关系名属性名等将查询涉及的概念模式转换成内模式,产生访问计划根据物理结构优化查询执行方案将查询中的视图由外部级导到概念级映象处理和检查权限授权和安全程序授
7、权和安全程序7.1.3 系统目录和系统目录和DBMS各子系统的联系各子系统的联系第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系107.2 事务事务(transaction)(transaction)n事务:事务:构成单一逻辑工作单元的操作集合。构成单一逻辑工作单元的操作集合。事务以“BEGIN TRANSACTION”始,以“COMMIT”或“ROLLBACK”终。n事务的性质事务的性质(ACID)n原子性原子性(Atomicity)(Atomicity):事务是一个不可分割的工作单元 n一致性一致性(Consistency)(Consistency):即数据不因事务的执
8、行而被破坏 n隔离性隔离性(Isolation)(Isolation):多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果一样 n持久性持久性(Durability)(Durability):一事务一旦完成全部操作后,它对数据库的所有更新应永久地反映在数据库中 第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系11例子:事务及其性质问题:问题:设银行数据库中有一转账事务T,从账号A转一笔款子($50)到账号B。相应的事务:T T:read(Aread(A););A:=A50 A:=A50;write(Awrite(A););read(B read(B););B:=B
9、+50 B:=B+50;write(Bwrite(B).).T T:BEGIN TRANSACTIONBEGIN TRANSACTION;read(A read(A););A:=A50;A:=A50;write(A write(A););if(A0)if(A0)ROLLBACKROLLBACK;else read(B else read(B););B:=B+50;B:=B+50;write(B write(B););COMMITCOMMIT;7.2 事务事务(续续1)1)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系12事务提交和事务撤销n事务的所有操作都完成了,则事务提
10、交(COMMIT),否则事务撤销(ROLLBACK)nBEGIN TRANSACTION标志事务开始执行nBEGIN TRANSACTION和COMMIT或ROLLBACK一起保证了事务的ACID性质n对数据库访问的两个基本操作:读和写,但完成写操作后,数据可能暂时放在内存中,而非直接写进数据库。7.2 事务事务(续续2)2)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系137.2.3 事务的状态变迁图7.2 事务事务(续续3)3)活动状态活动状态局部提交状态局部提交状态失败状态失败状态提交状态提交状态异常中止状态异常中止状态read/write图图7.4 事务的状态变迁
11、图事务的状态变迁图第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系147.2.3 事务的状态变迁图n活动状态:活动状态:事务开始执行后,立即进入活动状态(Active)n局部提交状态:局部提交状态:事务的最后一个语句执行后,进入局部提交状态(Partially Committed)n失败状态:失败状态:事务没能到达最后一个语句就中止执行,事务进入失败状态(failed)n异常中止状态:异常中止状态:对失败状态的处理进入异常中止状态(Abort)n提交状态:提交状态:局部提交状态的事务经检查的执行提交(COMMIT)操作,把对数据库的的修改全部写到磁盘上,事务成功结束,进入“
12、提交”状态7.2 事务事务(续续3)3)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系157.3 7.3 数据库的恢复数据库的恢复可恢复性可恢复性(Recovery)(Recovery):DBMSDBMS能把数据库从被破坏、不正确的能把数据库从被破坏、不正确的状态恢复到最近一个正确的状态的能力。状态恢复到最近一个正确的状态的能力。7.3.1 7.3.1 存储器结构存储器结构n存储器类型存储器类型n易失性存储器(volatile storage):如内存、cachen非易失性存储器(nonvolatile storage):如磁盘、磁带n稳定存储器(stable stora
13、ge):“决不丢失”的理论概念。n稳定存储器稳定存储器的实现的实现n数据备份:如软件拷贝、磁盘镜像、RAID、双机容错等 n数据银行:将数据写到远程计算机中第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系16n数据访问n块:存储单位块:存储单位n物理块:磁盘中的块物理块:磁盘中的块n缓冲块:内存中的块;所有的缓冲缓冲块:内存中的块;所有的缓冲块组成块组成“磁盘缓冲区磁盘缓冲区”n块操作:块操作:nInput(AInput(A):数据从物理块A传送到内存的缓冲块中。nOutput(BOutput(B):数据从缓冲块B传送到磁盘中恰当的物理块中B缓冲块缓冲块AB物理块物理块in
14、put(A)output(B)图图7.5 7.5 块操作块操作7.3 7.3 数据库的恢复(续数据库的恢复(续1 1)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系17数据访问write(X)xi包含x的块Bx存在,read(X)事务系统开始请求read(X)事务工作区分配X磁盘缓冲区扫描内存磁盘包含包含x的块的块Bx不不存在,存在,Input(B)7.3 7.3 数据库的恢复(续数据库的恢复(续2 2)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系18恢复和原子性的联系银行转账系统银行转账系统A=2000 B=1000事务事务A=A-100B=B+
15、100Output(A)Output(B)断电或其断电或其他故障他故障若没有事务的原子若没有事务的原子性,则重新启动事性,则重新启动事务时要么务时要么A因为再因为再执行一遍而为执行一遍而为1800,要么,要么B因从因从未执行而保持原值未执行而保持原值7.3 7.3 数据库的恢复(续数据库的恢复(续3 3)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系197.3.2 恢复的基本原则和实现方法 n基本原则:基本原则:“冗余”,即数据库重复存储n具体实现方法具体实现方法:n平时做好两件事:平时做好两件事:转储和建立日志 n周期性地对整个数据库进行拷贝。n建立日志数据库。记录事务
16、的开始、结束及数据每一次更新的值。n一旦发生数据库故障,分两种情况进行处理一旦发生数据库故障,分两种情况进行处理 n若数据库已被破坏,则装入last数据库备份,利用日志库执行REDO。n若数据库未被破坏,但某些数据不可靠,则执行UNDO。7.3 7.3 数据库的恢复(续数据库的恢复(续4 4)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系207.3.3 故障类型和恢复方法n事务故障的分类:n可预期的事务故障:如存款余额透支等(用ROLLBACK)n非预期事务故障:如运算溢出、数据错误、并发事务发生死锁等(用UNDO)n系统故障(软故障)n硬件故障、软件错误或掉电等(对未完
17、成事务执行UNDO;对已提交但仍在缓冲区的事务执行REDO)n介质故障(硬故障)n磁盘物理故障或遭受病毒破坏7.3 7.3 数据库的恢复(续数据库的恢复(续5 5)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系217.3.4 检查点方法n检查点方法的恢复算法n按日志文件建立事务重做队列和事务撤销队列n对重做队列中事务进行REDO处理,对撤消队列中事务进行UNDO处理 n运行记录优先原则:n为了安全,运行记录就先写下来。时间时间-事务事务检查点检查点故障点故障点检查点检查点T1T3T2T5T4事务事务T1T1不必恢复不必恢复;事务事务T2T2和事务和事务T4T4必须重做(必
18、须重做(REDOREDO);T3T3和事务和事务T5T5必须撤消(必须撤消(UNDOUNDO)7.3 7.3 数据库的恢复(续数据库的恢复(续6 6)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系227.3.6 SQL对事务的支持n无begin transactionnCommitnRollbackn游标7.3 7.3 数据库的恢复(续数据库的恢复(续7 7)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系237.4 7.4 数据库的并发控制数据库的并发控制时间更新事务T1数据库中A的值更新事务T2T0 100 t1FIND A t2 FIND At3
19、A:=A-30 t4 A:=A*2t5UPD A t6 70UPD At7 200 图7.10 在时间t7丢失了事务T1的更新(FIND表示从DB中读值,UPD表示把值写回到DB)7.4.1 并发操作带来的问题并发操作带来的问题1-丢失更新丢失更新返回第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系247.4 7.4 数据库的并发控制数据库的并发控制(续续1)1)时间更新事务T1数据库中A的值读事务T2t0 100 t1FIND A t2A:=A-30 t3UPD A t4 70FIND At5*ROLLBACK*t6 100 图7.11 事务T2在时间t4读了未提交的A值
20、(70)时间更新事务T1数据库中A的值更新事务T2t0 100 t1FIND A t2A:=A-30 t3UPD A t4 70FIND At5 A:=A*2t6 UPD At7 140 t8*ROLLBACK*t9 100 图7.12 事务T2在时间t4读了未提交的A值,并在时间t8丢失了自己的更新 2.读脏数据问题读脏数据问题第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系25并发操作带来的问题3-错误求和时间读事务T1数据库中A、B、C的值更新事务T2t0 40,50,30 t1FIND A t2SUM:=A t3FIND B t4SUM:=SUM+B t5 FIND
21、 Ct6 C:=C-10t7 UPD Ct8 40,50,20FIND At9 A:=A+10t10 UPD At11 50,50,20COMMITt12FIND C t13SUM:=SUM+C 事务T1进行了不一致的分析 第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系267.4.2 封锁技术n封锁技术:封锁技术:封锁是控制并发执行的主要技术。通常在数据库中每个数据项都有一个锁。对可能应用于某数据项的操作而言,锁描述了该数据项的状态。其作用是使并发事务对数据库中数据项的访问能够同步。n封锁技术中主要有两种封锁:排他型封锁排他型封锁(eXclusive Lock)和共享锁共
22、享锁(Shared Lock)7.4 7.4 数据库的并发控制数据库的并发控制(续续3)3)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系271.排他型封锁(X锁)n定义:定义:若事务T对某数据R实现了X锁,则在T对数据R解除封锁之前,不允许其他事务对该数据加任何类型的锁。n操作:操作:n封锁操作:XFIND Rn解锁操作:XRELEASE RnPX协议协议:欲更新R的事务必先执行“XFIND R”操作以获得对R的X锁,才能读或写R;若未获准X锁,则该事务进入等待队列,直到获准X锁方能继续下去。nPXC协议:协议:X锁的解除应合并到事务结束(COMMIT或ROLLBACK
23、)操作中7.4 7.4 数据库的并发控制数据库的并发控制(续续4)4)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系282.共享型封锁(共享型封锁(S锁)锁)n定义:定义:事务T对某数据加S锁后允许其他事务对该数据加S锁,但在对其所有S锁被解除前决不允许任何事务对该数据加X锁。n操作:操作:n封锁操作:SFIND Rn升级和写操作:UPDX Rn解锁操作:SRELEASE RnPS协议协议:任何读R的事务必先执行“SFIND R”操作获得对R的S锁;当事务获准对R的S锁后,若需更新R必须用“UPDX R”操作把S锁升级为X锁,成功则可更新,否则这个事务进入等待队列。nPS
24、C协议:协议:S锁的解除应合并到事务的结束(COMMIT或ROLLBACK)操作中 7.4 7.4 数据库的并发控制数据库的并发控制(续续5)5)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系29例:使用X锁封锁解决数据丢失时间更新事务T1数据库中A的值更新事务T2t0 100 t1XFIND A t2 XFIND A(失败)wait(等待)t3A:=A-30 waitt4 waitt5UPD A waitt6 70waitt7COMMIT(包括解锁)waitt8 XFIND A(重做)t9 A:=A*2t10 UPD At11 140COMMIT(包括解锁)第第7章章
25、系统实现技术系统实现技术23.1.14四川理工学院计科系30例:使用S锁封锁解决数据丢失时间更新事务T1数据库中A的值更新事务T2t0 100 t1SFIND A t2 SFIND At3A:=A-30 t4 A:=A*2t5UPDX A(失败)t6wait UPDX A(失败)t7wait Waitt8wait Wait第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系313.封锁的相容矩阵注:N=N O,不 相 容 的 请 求 Y=YES,相容的请求 X、S、:分别表示X锁,S锁,无锁 如果两个封锁是不相容的,则后提出封锁的事务要等待。X S XS N N Y N Y Y
26、 Y Y Y T2T1 7.4 7.4 数据库的并发控制数据库的并发控制(续续6)6)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系327.4 7.4 数据库的并发控制数据库的并发控制(续续7)7)4.封锁的粒度n封锁对象的大小称为封锁的粒度(Granularity)n封锁的对象 n逻辑单元:属性值、属性值集合、元组、关系、索引项、整个索引、整个数据库 n物理单元:页(数据页或索引页)、块 n封锁粒度与系统并发度和并发开销密切相关。粒度大,能被封锁的对象就少,并发度就小,但系统的开销也越小;反之,粒度越小,并发度越高,系统开销越大。第第7章章 系统实现技术系统实现技术23
27、.1.14四川理工学院计科系337.4.3 封锁带来的问题1-(活锁)T1XFIND AT2XFIND AT3XFIND AAA已被封锁,不成功,等待A刚被释放,成功时间点A刚被T2释放,成功T1永远等待活锁!解决方法:先来先服务解决方法:先来先服务/提升优先级提升优先级某个事务可能永远处于等待状态,得不到封锁的机某个事务可能永远处于等待状态,得不到封锁的机会会第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系34封锁带来的问题2-饿死事务序列A1A2A3A4A5资源AT2T2永远不能封锁解决方法,改变授权方式:当事务T2中请对数据项A加S锁时,授权加锁的条件是:不存在在数据
28、项A上持有X锁的其他事务;不存在等待对数据项A加锁且先于T2申请加锁的事务 每一个事务均请求A的S锁,成功后一段时间释放请求A的X锁若事务序列中的每个事务都申请对某数据项加S锁,且在授权加锁后一小段时间内释放封锁,此时另有事务T2欲对该数据项加X锁,则将永远轮不上封锁的机会。第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系35封锁带来的问题3-死锁时间事务T1事务T2t0XFIND A t1 XFIND Bt2XFIND B t3waitXFIND At4waitwait死锁若事务依赖图若事务依赖图有环则可能死有环则可能死锁锁T1T2T3T4图7.20 事务的无环依赖图T1
29、T2T3T4图7.21 事务的有环依赖图两个或以上的事务都处于等待状态,且每个事务都在等待另一个事务解除封锁才能继续下去,结果造成任何一个事务都无法继续执行。第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系367.4.4 并发操作的调度事务的调度:事务的调度:事务的执行次序称为“调度”串行调度:串行调度:如果多个事务依次执行,则称为事务的串行调度(Serial Schedule)并发调度:并发调度:如果利用分时的方法,同时处理多个事务,则称为事务的并发调度(Concurrent Schedule)可串行化:可串行化:如果一个并发调度的执行结果与某一串行调度的执行结果等价,那
30、么这个并发调度称为“可串行化的调度”,否则是不可串行化的调度 (不可串行化的例子参见例7.3)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系377.4.4 并发操作的调度n两段封锁协议:两段封锁协议:n在对任何一个数据进行读写操作之前,事务必须获得对该数据的封锁;n在释放一个封锁之后,事务不再获得任何其他封锁 n遵守该协议的事务分为两个阶段:遵守该协议的事务分为两个阶段:获得封锁阶段,也称为“扩展”阶段;释放封锁阶段,也称为“收缩”阶段 n两段封锁协议与可串行化调度的关系:两段封锁协议与可串行化调度的关系:若所有的事务都遵守“两段封锁协议”,则所有可能的并发调度都是可串行
31、化的n两段式封锁是可串行化的充分不必要条件两段式封锁是可串行化的充分不必要条件第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系387.4.5 SQL中事务的存取模式1.事务的存取模式事务的存取模式nREAD ONLY(只读型):事务对数据库的操作只能是读操作。定义这个模式后,表示随后的事务均是只读型。nREAD WRITE(读写型):事务对数据库的操作可读/写。程序开始时默认这种模式 n这两种模式可用下列SQL语句定义:SET TRANSACTION READ ONLY SET TRANSACTION READ WRITE 第第7章章 系统实现技术系统实现技术23.1.14
32、四川理工学院计科系397.4.5 SQL中事务的存取模式2.SQL中事务的隔离级别中事务的隔离级别nSERIALIZABLE(SERIALIZABLE(可串行化可串行化):允许事务并发,但须保证并发可串行化,是默认级别。nREPEATABLE READ(REPEATABLE READ(可重复读可重复读):只许事务读已提交的数据,且两次读之间不许其他事务修改此数据。nREAD COMMITTED(READ COMMITTED(读提交数据读提交数据):允许事务读已提交的数据,但不要求“可重复读”。nREAD UNCOMMITTED(READ UNCOMMITTED(可以读未提交数据可以读未提交数据
33、):允许事务读已提交或未提交的数据。第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系407.6 7.6 数据库的完整性数据库的完整性7.6.1 完整性子系统和完整性规则完整性子系统和完整性规则n数据库的完整性:正确性、有效性和相容性n完整性子系统的主要功能:n监督事务的执行,并测试是否违反完整性规则 n若有违反现象,则采取恰当的操作,譬如拒绝操作、报告违反情况、改正错误等方法来处理 n完整性规则:n什么时候使用规则进行检查(称为规则的“触发条件”)n要检查什么样的错误(称为“约束条件”或“谓词”)n如果查出错误,应该怎么办(称为“ELSE子句”,即违反时要做的动作)第第7章
34、章 系统实现技术系统实现技术23.1.14四川理工学院计科系417.6 7.6 数据库的完整性(续数据库的完整性(续1 1)7.6.2 SQL中的完整性约束中的完整性约束n域约束 用“CREATE DOMAIN”语句定义新的域,并且还可出现CHECK子句 n断言n 若约束与多个关系或与聚合操作有关,则“断言”(Assertions)为用户提供完整性约束定义机制CREAT ASSERTION CHECK()DROP ASSERTION n定义一个新的域COLOR,可用下列语句实现:CREATE DOMAIN COLOR CHARCREATE DOMAIN COLOR CHAR(6 6)DEFAU
35、LT DEFAULT?CONSTRAINTCONSTRAINT V_COLORS V_COLORS CHECKCHECK(VALUE IN VALUE IN(Red,YellowRed,Yellow,BlueBlue,GreenGreen,?);n每位教师开设的课程不能超过10门。CREATE ASSERTIONCREATE ASSERTION ASSE1 CHECK ASSE1 CHECK(10 10=ALL=ALL(SELECT COUNTSELECT COUNT(C#C#)FROM FROM C C GROUP BY TNAMEGROUP BY TNAME););第第7章章 系统实现技术
36、系统实现技术23.1.14四川理工学院计科系427.6 7.6 数据库的完整性(续数据库的完整性(续2 2)n基本表的约束基本表的约束n候选键的定义候选键的定义UNIQUE(列名序列)或 PRIMARY KEY(列名序列)n外键的定义外键的定义FOREIGN KEY(列名序列)REFERENCES ()ON DELETE ON UPDATE n“检查约束检查约束”的定义的定义CHECK(条件表达式)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系43关于外键约束完整性的补充n删除参照表中元组时的考虑删除参照表中元组时的考虑nNO ACTIONnCASCADE方式 nREST
37、RICT方式 nSET NULL方式 nSET DEFAULT方式n修改参照表中主键值时的考虑、修改参照表中主键值时的考虑、nNO ACTIONnCASCADE方式 nRESTRICT方式 nSET NULL方式 nSET DEFAULT方式 第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系44关于数据库完整性的例子学生关系S(S#,SNAME,AGE,SEX,SDEPT)选课关系SC(S#,C#,GRADE)课程关系C(C#,CNAME,CDEPT,TNAME)在教学数据库中,要求S中的元组满足条件:男生年龄在1535岁之间,女生年龄在1530岁之间。对应的语句为:CHE
38、CK(AGE=15 AND((SEX=男 AND AGE=35)OR(SEX=女 AND AGE NEWTUPLE.GRADE)UPDATE SC SET GRADE=OLDTUPLE.GRADEWHERE C#=NEWTUPLE.C#第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系477.7 数据库的安全性7.7.1 安全性问题安全性问题n数据库的安全性是指保护数据库,防止不合法的使用以免数据的泄密、更改或破坏。n安全性级别n环境级:机房和设备应防止人为物理破坏。n职员级:正确授予用户访问数据库的权限。nOS级:应防止未经授权的用户从OS处着手访问数据库。n网络级:网络软
39、件内部的安全。nDBS级:DBS的职责是检查用户的身份是否合法及使用数据库的权限是否正确。第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系48(1)读权限:读权限:允许用户读、但不能改数据。插入权限:插入权限:允许用户插入新数据,但不能改数据。修改权限:修改权限:允许用户改但不能删数据。删除权限删除权限 7.7.2 权限问题权限问题n访问数据的权限 n索引(Index)权限:允许用户创建和删除索引。n资源(Resourse)权限:允许用户创建新的关系。n修改(Alteration)权限:允许用户在关系结构中加入或删除属性。n撤消(Drop)权限:允许用户撤消关系。7.7 数
40、据库的安全性(续)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系49DBAU1U2U3权限的授予和回收DBADBAU1U4U2U5U3权限转授图权限转授图 一个用户拥有权限的充分必要条件是在权限图中从根结点到该用户结点存在一条路经 DBAU1U2U3DBAU1U2U3DBAU1U2U37.7 数据库的安全性(续)权限图的演变权限图的演变 第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系507.7.3 SQL中的安全性机制中的安全性机制n视图:虚表视图:虚表nSQL2中的用户权限及其操作中的用户权限及其操作n用户权限:SELECT INSERT DELE
41、TE UPDATE REFERENCES USAG (ALL PRIVILEGES)n授权语句GRANT ON TO WITH GRANT OPTION n回收语句REVOKE ON FROM RESTRICT|CASCADE 7.7 数据库的安全性(续)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系51SQL中的权限操作实例nGRANT SELECT,UPDATE ON S TO WANG WITH GRANT OPTION nGRANT INSERT(S#,C#)ON SC TO LOU WITH GRANT OPTIONnGRANT REFERENCES(CNO)O
42、N C TO BAO WITH GRANT OPTION nGRANT USAGE ON DOMAIN AGE TO CHEN nREVOKE SELECT,UPDATE ON S FROM WANG CASCADE nREVOKE GRANT OPTION FOR REFERENCES(C#)ON C FROM BAO 第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系527.7.4 常用的安全性措施常用的安全性措施n密级:绝密机密秘密公用n强制存取控制 n 用户i只能查看比它级别低或同级的数据;n 用户i只能修改和它同级的数据 n统计数据库的安全性 n一个查询查到的记录个
43、数至少是n;n两个查询查到的记录的“交”数目至多是mn数据加密法 n普通加密法 n明键加密法 n自然环境的安全性 7.7 数据库的安全性(续)第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系53主要内容n7.1 系统目录 n7.2 事务 n7.3 数据库的恢复n7.4 数据库的并发控制n7.5 并发事务的可串行化和可恢复性n7.6 数据库的完整性n7.7 数据库的安全性n小结小结 第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系54小结n事务以及事务的四个性质n数据库数据的恢复原理、常用技术、故障类型和恢复方法n检查点技术n封锁操作以及封锁带来的问题n并发操作和可串行化n数据库的完整性以及SQL中相应的语句第第7章章 系统实现技术系统实现技术23.1.14四川理工学院计科系55本章的重点篇幅(1)教材中P261的图7.7。(检查点技术)(2)并发操作带来的四个问题,封锁带来的三个问题,并发调度的可串行化。(教材P265-276)(3)SQL中完整性约束的实现:断言(教材P290)。(4)安全性中的授权语句(教材P298)。