数据库系统课件系统实现技术.ppt

上传人:沈*** 文档编号:64426126 上传时间:2022-03-21 格式:PPT 页数:57 大小:403KB
收藏 版权申诉 举报 下载
数据库系统课件系统实现技术.ppt_第1页
第1页 / 共57页
数据库系统课件系统实现技术.ppt_第2页
第2页 / 共57页
数据库系统课件系统实现技术.ppt_第3页
第3页 / 共57页
资源描述:

《数据库系统课件系统实现技术.ppt》由会员分享,可在线阅读,更多相关《数据库系统课件系统实现技术.ppt(57页珍藏版)》请在装配图网上搜索。

1、第七章 系统实现技术 本章重要概念(一) (1)系统目录及其和DBMS各子系统的联系。(2)事务的定义,COMMIT和ROLLBACK的语义,事务的ACID性质,事务的状态变迁图。(3)存储器类型,稳定存储器的实现,数据传送过程。 (4)恢复的定义、基本原则和实现方法,故障的类型,检查点技术,REDO和UNDO操作,运行记录优先原则。 本章重要概念(二)(5)并发操作带来的三个问题,X锁、PX协议、PXC协议,S锁、PS协议、PSC协议,活锁、饿死和死锁,并发调度,串行调度,并发调度的可串行化,两段封锁法,SQL中事务的存取模式和隔离级别。(6)完整性的定义,完整性子系统的功能,完整性规则的组

2、成。SQL中的三大类完整性约束,SQL3中的触发器技术。 (7)安全性的定义、级别,权限,SQL中的安全性机制,几种常用的安全性措施,自然环境的安全性。 主要内容和学习要求n7.1 系统目录 (理解)n7.2 事务 (综合应用)n7.3 数据库的恢复 (理解)n7.4 数据库的并发控制 (了解)n7.5 并发事务的可串行化和可恢复性(了解)n7.6 数据库的完整性(理解)n7.7 数据库的安全性(理解)n小结 系统目录n什么是系统目录n系统目录的重要性n系统目录的内容n元数据RDBMS系统目录的存储内容n关系名,属性名,属性域(数据类型) n各种约束,主键,辅助键,外键,空值/非空值 n视图的

3、外部级描述,存储结构和索引的内部级描述 n安全性和授权规则 n数据完整性规则 注意:这些数据都以表格的形式存在某些RDBMS的系统目录内容REL_AND_ATTR_CATALOGREL_NAMEATTR_NAMEATTR_TYPEMEMBER_OF_PKMEMBER_OF_FKFK_RELATION关系名属性名属性类型主键外键外键关系RELATION_KEYSREL_NAMEKEY_NUMBERMEMBER_ATTR(a)存储键信息的目录关系RELATION_INDEXESREL_NAMEINDEX_NAMEMEMBER_ATTRINDEX_TYPEATTR_NOASC_DESC(b)存储索引

4、信息的目录关系VIEW_QUERIER VIEW_ATTRIBUTESVIEW_NAMEQUERY VIEW_NAMEATTR_NAMEATTR_NUM(c)存储视图信息的目录关系系统目录的扩充ER图属性键视图属性视图关系关系基本关系索引属性名键类型d数据类型键编号关系名查询索引类型属性序号索引名属性名K_AR_IR_FI_AK_IR_AR_KV_A外键系统目录和DBMS各子系统的联系DDL编译程序DML优化程序DML命令的外部级到概念级映象DML编译程序DML分析校验程序DBMS处理和检查三级模式两级映象检查查询涉及的关系名属性名等将查询涉及的概念模式转换成内模式,产生访问计划根据物理结构优

5、化查询执行方案将查询中的视图由外部级导到概念级映象处理和检查权限授权和安全程序主要内容n7.1 系统目录 n7.27.2 事务事务 n7.3 数据库的恢复n7.4 数据库的并发控制n7.5 并发事务的可串行化和可恢复性n7.6 数据库的完整性n7.7 数据库的安全性n小结 事务n定义事务(transaction)是构成单一逻辑工作单元的操作集合 n性质n原子性(Atomicity):事务是一个不可分割的工作单元 n一致性(Consistency) :即数据不会应事务的执行而遭受破坏 n隔离性(Isolation) :在多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果一样 n持久性(

6、Durability) :一个事务一旦完成全部操作后,它对数据库的所有更新应永久地反映在数据库中 例子:事务及其性质问题:设银行数据库中有一转账事务T,从账号A转一笔款子($50)到账号B。相应的事务: T:read(A); A:=A50; write(A); read(B); B:=B + 50; write(B). n原子性(A,B同时被修改或同时保持原值)n一致性(A+B的值不变)n隔离性n持久性事务提交和事务撤销n事务的所有操作都完成了,则事务提交(COMMIT),否则事务撤销(ROLLBACK)nBEGIN TRANSACTION标志事务开始执行nBEGIN TRANSACTION和

7、COMMIT或ROLLBACK一起保证了事务的四个性质n对数据库访问的两个基本操作:读和写,但完成写操作后,数据可能暂时放在内存中,而非直接写进数据库。主要内容n7.1 系统目录 n7.2 事务 n7.3 7.3 数据库的恢复数据库的恢复n7.4 数据库的并发控制n7.5 并发事务的可串行化和可恢复性n7.6 数据库的完整性n7.7 数据库的安全性n小结 存储器类型 n易失性存储器(volatile storage)内存、cache存储器 n非易失性存储器(nonvolatile storage)磁盘和磁带 n稳定存储器(stable storage)这是一个理论上的概念。存储在稳定存储器中的

8、信息是决不会丢失的。 n稳定存储器的实现n数据备份 n数据银行 块和块的操作n块、物理块和缓冲块n块的操作ninput(A):把物理块A的内容传送到内存的缓冲块中。nOutput(B):把缓冲块B的内容传送到磁盘中恰当的物理块中 B内存AB磁盘input(A)output(B)图7.5 块操作数据访问write(X)xi包含x的块Bx存在, read(X)事务系统开始请求read(X)事务工作区分配X磁盘缓冲区扫描内存磁盘包含x的块Bx存在,Input(B)恢复和原子性的联系银行转账系统A=2000 B=1000事务A=A-100B=B+100Output(A)Output(B)断电或其他故障

9、假设没有事务的原子性,那么重新启动事务时要么A因为再执行一遍而为1800,要么B因从未执行而保持原值恢复的基本原则和实现方法 n基本原则 :“冗余”,即数据库重复存储n具体实现方法 n平时做好两件事:转储和建立日志 n周期地(比如一天一次)对整个数据库进行拷贝,转储到另一个磁盘或磁带一类存储介质中。 n 建立日志数据库。记录事务的开始、结束及数据每一次插入、删除和修改前后的值,并写到“日志”库中。n 一旦发生数据库故障,分两种情况进行处理 n如果数据库已被破坏,则装入last数据库备份,再利用日志库将这两个数据库状态之间的所有更新重新做一遍。n如果数据库未被破坏,但某些数据不可靠,则撤消所有不

10、可靠的修改,把数据库恢复到正确的状态。 故障类型和恢复方法n事务故障n可以预期的事务故障,如存款余额透支等n非预期事务故障,如运算溢出、数据错误、死锁等n系统故障硬件故障、软件错误或掉电等等n介质故障(硬故障)磁盘物理故障或遭受病毒破坏检查点方法n什么是检查点方法n检查点方法的恢复算法n根据日志文件建立事务重做队列和事务撤销队列n对重做队列中的事务进行REDO处理,对撤消队列中的事务进行UNDO处理 - 事务检查点故障点时间检查点T1T3T2T5T4事务T1不必恢复;事务T2和事务T4必须重做(REDO);事务T3和事务T5必须撤消(UNDO) SQL对事务的支持n无begin transac

11、tionnCommitnRollbackn游标主要内容n7.1 系统目录 n7.2 事务 n7.3 数据库的恢复n7.4 7.4 数据库的并发控制数据库的并发控制n7.5 并发事务的可串行化和可恢复性n7.6 数据库的完整性n7.7 数据库的安全性n小结 并发操作带来的问题1-丢失更新时间更新事务T1数据库中A的值更新事务T2T0 100 t1FIND A t2 FIND At3A:=A-30 t4 A:=A*2t5UPD A t6 70UPD At7 200 图7.10 在时间t7丢失了事务T1的更新(FIND表示从DB中读值,UPD表示把值写回到DB) 并发操作带来的问题2-读脏数据时间更

12、新事务T1数据库中A的值读事务T2t0 100 t1FIND A t2A:=A-30 t3UPD A t4 70FIND At5*ROLLBACK* t6 100 图7.11 事务T2在时间t4读了未提交的A值(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丢失了自己的更新 并发操作带来的问题3-错误求和时间读事务T1数据库中A、B、C的值更新事务T2t0

13、 40,50,30 t1FIND A t2SUM:=A t3FIND B t4SUM:=SUM+B t5 FIND Ct6 C:=C-10t7 UPD Ct8 40,50,20FIND At9 A:=A+10t10 UPD At11 50,50,20COMMITt12FIND C t13SUM:=SUM+C 事务T1进行了不一致的分析 解决方法n封锁技术n时标X锁和S锁nX锁定义n操作nXFIND RnXRELEASE RnPX协议:任何企图更新记录R的事务必须先执行“XFIND R”操作,以获得对R的X锁,才能读或写记录R;如果未获准X锁,那么这个事务进入等待队列,一直到获准X锁,事务才能继

14、续做下去。 nPXC协议X锁的解除操作应该合并到事务的结束(COMMIT或ROLLBACK)操作中 nS锁定义n操作nSFIND RnUPDX RnSRELEASE RnPS协议任何要更新记录R的事务必须先执行“SFIND R”操作,以获得对R的S锁。当事务获准对R的S锁后,若要更新记录R必须用“UPDX R”操作,这个操作首先把S锁升级为X锁,若成功则更新记录,否则这个事务进入等待队列 nPSC协议S锁的解除操作应该合并到事务的结束 例:使用X锁封锁解决数据丢失时间更新事务T1数据库中A的值更新事务T2t0 100 t1XFIND A t2 XFIND A(失败) wait(等待)t3A:=

15、A-30 waitt4 waitt5UPD A waitt6 70waitt7COMMIT(包括解锁) waitt8 XFIND A(重做)t9 A:=A*2t10 UPD At11 140COMMIT(包括解锁)例:使用S锁封锁解决数据丢失时间更新事务T1数据库中A的值更新事务T2t0 100 t1SFIND A t2 SFIND At3A:=A-30 t4 A:=A*2t5UPDX A(失败) t6wait UPDX A(失败)t7wait Waitt8wait Wait封锁的相容矩阵注: N = N O , 不 相 容 的 请 求 Y=YES,相容的请求 X、S、:分别表示X锁,S锁,无

16、锁 如果两个封锁是不相容的,则后提出封锁的事务要等待。X S XS N N Y N Y Y Y Y Y T2T1 封锁的粒度n 封锁对象的大小称为封锁的粒度(granularity) n封锁的对象 n逻辑单元:属性值、属性值集合、元组、关系、索引项、整个索引、整个数据库 n物理单元 :页(数据页或索引页)、块 n封锁粒度与系统并发度和并发控制开销密切相关。粒度越大,系统中能被封锁的对象就越少,并发度就越小,但同时系统的开销也就越小;相反,粒度越小,并发度越高,系统开销越大 封锁带来的问题1-(活锁)T1XFIND AT2XFIND AT3XFIND AAA已被封锁,不成功,等待A刚被释放,成功

17、时间点A刚被T2释放,成功T1永远等待活锁!解决方法:先来先服务封锁带来的问题2-饿死事务序列A1A2A3A4A5资源AT2T2永远不能封锁解决方法,改变授权方式:当事务T2中请对数据项Q加S锁时,授权加锁的条件是: 不存在在数据项Q上持有X锁的其他事务; 不存在等待对数据项Q加锁且先于T2申请加锁的事务 每一个事务均请求A的S锁,成功后一段时间释放请求A的X锁封锁带来的问题3-死锁时间事务T1事务T2t0XFIND A t1 XFIND Bt2XFIND B t3waitXFIND At4waitwait死锁若事务依赖图有环则可能死锁T1T2T3T4图7.20 事务的无环依赖图T1T2T3T

18、4图7.21 事务的有环依赖图并发操作的调度n事务的调度 :事务的执行次序称为“调度” n串行调度:如果多个事务依次执行,则称为事务的串行调度(Serial Schedule) n并发调度:如果利用分时的方法,同时处理多个事务,则称为事务的并发调度(Concurrent Schedule)n可串行化 :如果一个并发调度的执行结果与某一串行调度的执行结果等价,那么这个并发调度称为“可串行化的调度”,否则是不可串行化的调度 两段封锁协议n 在对任何一个数据进行读写操作之前,事务必须获得对该数据的封锁; n在释放一个封锁之后,事务不再获得任何其他封锁 n遵守该协议的事务分为两个阶段:获得封锁阶段,也

19、称为“扩展”阶段;释放封锁阶段,也称为“收缩”阶段 n如果所有的事务都遵守“两段封锁协议”,则所有可能的并发调度都是可串行化的 SQL中事务的存取模式n READ ONLY(只读型):事务对数据库的操作只能是读操作。定义这个模式后,表示随后的事务均是只读型。 nREAD WRITE(读写型):事务对数据库的操作可以是读操作,也可以是写操作。定义这个模式后,表示随后的事务均是读写型。在程序开始时默认这种模式 n这两种模式可用下列SQL语句定义: SET TRANSACTION READ ONLY SET TRANSACTION READ WRITE SQL中事务的隔离级别nSERIALIZABL

20、E(可串行化):允许事务并发执行,但须保证并发调度可串行化,是默认级别。nREPEATABLE READ(可重复读):只许事务读已提交的数据,且两次读之间不许其他事务修改此数据。事务可以不可串行化。nREAD COMMITTED(读提交数据):允许事务读已提交的数据,但不要求“可重复读”。nREAD UNCOMMITTED(可以读未提交数据):允许事务读已提交或未提交的数据。n上述四种级别可以用下列SQL语句定义: SET TRANSACTION ISOLATION LEVEL SERIALIZABLESET TRANSACTION ISOLATION LEVEL REPEATABLE REA

21、DSET TRANSACTION ISOLATION LEVEL READ COMMITTEDSET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED主要内容n7.1 系统目录 n7.2 事务 n7.3 数据库的恢复n7.4 数据库的并发控制n7.5 并发事务的可串行化和可恢复性n7.6 7.6 数据库的完整性数据库的完整性n7.7 数据库的安全性n小结 完整性子系统和完整性规则 n数据库的完整性n完整性子系统的主要功能 n监督事务的执行,并测试是否违反完整性规则 n若有违反现象,则采取恰当的操作,譬如拒绝操作、报告违反情况、改正错误等方法来处理 n完整

22、性规则 n什么时候使用规则进行检查(称为规则的“触发条件”) n要检查什么样的错误(称为“约束条件”或“谓词”) n如果查出错误,应该怎么办(称为“ELSE子句”,即违反时要做的动作) SQL中的完整性约束1-域约束和断言n域约束 用“CREATE DOMAIN”语句定义新的域,并且还可出现CHECK子句 n断言n如果完整性约束牵涉面较广,与多个关系有关,或者与聚合操作有关,那么SQL2提供“断言”(Assertions)机制让用户书写完整性约束 nCHECK ASSERTION CHECK() nDROP ASSERTION n定义一个新的域COLOR,可用下列语句实现:CREATE DOM

23、AIN COLOR CHARCREATE DOMAIN COLOR CHAR(6 6) DEFAULT DEFAULT ?CONSTRAINTCONSTRAINT V_COLORS V_COLORS CHECKCHECK(VALUE IN VALUE IN (RedRed, ,YellowYellow, ,BlueBlue,GreenGreen,?););n每位教师开设的课程不能超过10门。CREATE ASSERTIONCREATE ASSERTION ASSE1 CHECK ASSE1 CHECK(10 = ALL10 = ALL(SELECT COUNTSELECT COUNT(C#C#

24、)FROM C FROM C GROUP BY GROUP BY TNAMETNAME);); SQL中的完整性约束2-基本标的约束n候选键的定义UNIQUE(列名序列)或 PRIMARY KEY(列名序列)n外键的定义FOREIGN KEY(列名序列)REFERENCES () ON DELETE ON UPDATE n“检查约束”的定义CHECK(条件表达式) 关于外键约束完整性的补充n删除参照表中元组时的考虑nNO ACTIONnCASCADE方式 nRESTRICT方式 nSET NULL方式 nSET DEFAULT方式n修改参照表中主键值时的考虑、nNO ACTIONnCASCAD

25、E方式 nRESTRICT方式 nSET NULL方式 nSET DEFAULT方式 关于数据库完整性的例子学生关系S(S#,SNAME,AGE,SEX,SDEPT)选课关系SC(S#,C#,GRADE)课程关系C(C#,CNAME,CDEPT,TNAME) 在教学数据库中,要求S中的元组满足条件:男生年龄在1535岁之间,女生年龄在1530岁之间 。对应的语句为:CHECK(AGE = 15 AND((SEX =男 AND AGE = 35) OR (SEX =女 AND AGE NEWTUPLE.GRADE)UPDATE SC SET GRADE = OLDTUPLE.GRADEWHERE

26、 C# = NEWTUPLE.C# 主要内容n7.1 系统目录 n7.2 事务 n7.3 数据库的恢复n7.4 数据库的并发控制n7.5 并发事务的可串行化和可恢复性n7.6 数据库的完整性n7.7 7.7 数据库的安全性数据库的安全性n小结 数据库安全性级别n什么是数据库的安全性n安全性级别n环境级:计算机系统的机房和设备应加以保护,防止有人进行物理破坏。n职员级:工作人员应清正廉洁,正确授予用户访问数据库的权限。nOS级:应防止未经授权的用户从OS处着手访问数据库。n网络级:由于大多数DBS都允许用户通过网络进行远程访问,因此网络软件内部的安全性是很重要的。nDBS级:DBS的职责是检查用

27、户的身份是否合法及使用数据库的权限是否正确。(1)读权限:允许用户读数据,但不能改数据。 插入权限:允许用户插入新数据,但不能改数据。 修改权限:允许用户改数据,但不能删除数据。 删除权限 权限n访问数据的权限 n索引(Index)权限:允许用户创建和删除索引。n资源(Resourse)权限:允许用户创建新的关系。n修改(Alteration)权限:允许用户在关系结构中加入或删除属性。n撤消(Drop)权限:允许用户撤消关系。 DBAU1U2U3权限的授予和回收DBAU1U4U2U5U3权限转授图 一个用户拥有权限的充分必要条件是在权限图中从根结点到该用户结点存在一条路经 DBAU1U2U3D

28、BAU1U2U3DBAU1U2U3SQL中的安全性机制n视图nSQL2中的用户权限及其操作n用户权限:SELECT INSERT DELETE UPDATE REFERENCES USAG n授权语句GRANT ON TO WITH GRANT OPTION n回收语句REVOKE ON FROM RESTRICT | CASCADE SQL中的权限操作实例nGRANT SELECT,UPDATE ON S TO WANG WITH GRANT OPTION nGRANT INSERT (S#,C#) ON SC TO LOU WITH GRANT OPTIONnGRANT REFERENCE

29、S (CNO) ON 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 BA 常用的安全性措施n 强制存取控制 n 用户i只能查看比它级别低或同级的数据; n 用户i只能修改和它同级的数据 n统计数据库的安全性 n一个查询查到的记录个数至少是n;n两个查询查到的记录的“交”数目至多是mn数据加密法 n普通加密法 n明键加密法 n自然

30、环境的安全性 主要内容n7.1 系统目录 n7.2 事务 n7.3 数据库的恢复n7.4 数据库的并发控制n7.5 并发事务的可串行化和可恢复性n7.6 数据库的完整性n7.7 数据库的安全性n小结小结 小结n事务以及事务的四个性质n数据库数据的恢复原理、常用技术、故障类型和恢复方法n检查点技术n封锁操作以及封锁带来的问题n并发操作和可串行化n数据库的完整性以及SQL中相应的语句本章的重点篇幅 (1)教材中P261的图7.7。(检查点技术)(2)并发操作带来的四个问题,封锁带来的三个问题,并发调度的可串行化。(教材P265-276)(3)SQL中完整性约束的实现:断言(教材P290)。 (4)安全性中的授权语句(教材P298)。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!