北京工业大学-数据库系统课件-chapter7-系统实现技术.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《北京工业大学-数据库系统课件-chapter7-系统实现技术.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京工业大学 数据库 系统 课件 chapter7 实现 技术
- 资源描述:
-
1、第七章第七章 系统实现技术系统实现技术 主要内容和学习要求主要内容和学习要求n7.1 7.1 系统目录系统目录 (了解)(了解)n7.2 7.2 事务事务 (综合应用)(综合应用)n7.3 7.3 数据库的恢复数据库的恢复 (理解)(理解)n7.4 7.4 数据库的并发控制数据库的并发控制 (了解)(了解)n7.57.5* * 并发事务的可串行化和可恢复性(了解)并发事务的可串行化和可恢复性(了解)n7.6 7.6 数据库的完整性数据库的完整性(理解)(理解)n7.7 7.7 数据库的安全性数据库的安全性(理解)(理解)n小结小结 系统目录系统目录n什么是系统目录什么是系统目录?n系统目录的重
2、要性系统目录的重要性n系统目录的内容系统目录的内容n元数据元数据RDBMS系统目录的存储内容系统目录的存储内容n关系名,属性名,属性域(数据类型)关系名,属性名,属性域(数据类型) n各种约束,主键,辅助键,外键,空值各种约束,主键,辅助键,外键,空值/非空非空值值 n视图的外部级描述,存储结构和索引的内部级视图的外部级描述,存储结构和索引的内部级描述描述 n安全性和授权规则安全性和授权规则 n数据完整性规则数据完整性规则 注意:这些数据都以表格的形式存在注意:这些数据都以表格的形式存在某些某些RDBMS的系统目录内容的系统目录内容REL_AND_ATTR_CATALOGREL_NAMEATT
3、R_NAMEATTR_TYPEMEMBER_OF_PKMEMBER_OF_FKFK_RELATION关系关系名名属性属性名名属性属性类型类型主主键键外键外键外键关系外键关系RELATION_KEYSRELATION_KEYSREL_NAMEREL_NAMEKEY_NUMBERKEY_NUMBERMEMBER_ATTRMEMBER_ATTR(a)(a)存储键信息的目录关系存储键信息的目录关系RELATION_INDEXESRELATION_INDEXESREL_NAMEREL_NAMEINDEX_NAMINDEX_NAME EMEMBER_ATTMEMBER_ATTR RINDEX_TYPIND
4、EX_TYPE EATTR_NOATTR_NOASC_DESCASC_DESC(b)(b)存储索引信息的目录关系存储索引信息的目录关系VIEW_QUERIERVIEW_QUERIER VIEW_ATTRIBUTESVIEW_ATTRIBUTESVIEW_NAMEVIEW_NAMEQUERYQUERYVIEW_NAMEVIEW_NAMEATTR_NAMEATTR_NAMEATTR_NUMATTR_NUM(c)(c)存储视图信息的目录关系存储视图信息的目录关系系统目录的扩充系统目录的扩充ER图图属性属性键键视图属性视图属性视图关系视图关系关系关系基本关系基本关系索引索引属性名属性名键类型键类型d数
5、据类型数据类型键编号键编号关系名关系名查询查询索引类型索引类型属性序号属性序号索引名索引名属性名属性名K_AR_IR_FI_AK_IR_AR_KV_A外键外键系统目录和系统目录和DBMS各子系统各子系统的联系的联系DDL编译程序编译程序DML优化程序优化程序DML命令的外命令的外部级到概念级部级到概念级映象映象DML编译程序编译程序DML分析校分析校验程序验程序DBMS处理和检查三级处理和检查三级模式两级映象模式两级映象检查查询涉及的检查查询涉及的关系名属性名等关系名属性名等将查询涉及的概念将查询涉及的概念模式转换成内模式,模式转换成内模式,产生访问计划产生访问计划根据物理结构优根据物理结构优
6、化查询执行方案化查询执行方案将查询中的视图由外将查询中的视图由外部级导到概念级映象部级导到概念级映象处理和检查权限处理和检查权限授权和安全程序授权和安全程序主要内容主要内容n7.1 7.1 系统目录系统目录 n7.27.2 事务事务 n7.3 7.3 数据库的恢复数据库的恢复n7.4 7.4 数据库的并发控制数据库的并发控制n7.5 7.5 并发事务的可串行化和可恢复性并发事务的可串行化和可恢复性n7.6 7.6 数据库的完整性数据库的完整性n7.7 7.7 数据库的安全性数据库的安全性n小结小结 什么是事务什么是事务?n事务事务(transaction)是构成单一逻辑工作单元的是构成单一逻辑
7、工作单元的操作集合操作集合.n原子性原子性(Atomicity):事务事务是一个不可分割的工作单元。是一个不可分割的工作单元。n一致性一致性(Consistency):即数据不会因事务的执行而遭受破即数据不会因事务的执行而遭受破坏坏。必须使数据库状态从一个一致状态变为另一个一致。必须使数据库状态从一个一致状态变为另一个一致状态。状态。n隔离性隔离性(Isolation):在多个事务并发执行时,系统应保证与在多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果一样这些事务先后单独执行时的结果一样。n持久性持久性(Durability):一个事务一旦完成全部操作后,它对一个事务一旦完成全部
8、操作后,它对数据库的所有更新应永久数据库的所有更新应永久地反映在数据库中。地反映在数据库中。 例子例子 例:例:设银行数据库中有一设银行数据库中有一转账事务转账事务T,从账号,从账号A转转一笔款子一笔款子($50)到账号到账号B。相应的事务:相应的事务:T:read(A););A:=A50;write(A););read(B););B:=B+50;write(B).n以下违反了事务的什么性质?以下违反了事务的什么性质?n若由于故障和错误,造成事若由于故障和错误,造成事务务T执行的结果修改了执行的结果修改了A值而值而未修改未修改B值;值;n若事务执行结束后,若事务执行结束后,A值减少值减少50而
9、而B值未变;值未变;n若系统暂时处于不一致状态若系统暂时处于不一致状态时,第二个事务插件来计算时,第二个事务插件来计算A与与B之和或修改之和或修改A、B的值;的值;n因某种原因,虽然事务成功因某种原因,虽然事务成功执行完成,但写入磁盘的数执行完成,但写入磁盘的数据丢失。据丢失。事务提交和事务撤销(事务提交和事务撤销(1)nBEGIN TRANSACTION标志事务开始执行;标志事务开始执行;n事务的所有操作都完成了,则事务事务的所有操作都完成了,则事务提交提交(COMMIT),否则,否则事务事务撤销撤销(ROLLBACK);nCOMMIT:表示事务执行成功地结束,该事务对数据:表示事务执行成功
10、地结束,该事务对数据库的所有更新操作都已写入磁盘;库的所有更新操作都已写入磁盘;nROLLBACK:表示事务执行不成功地结束,该事务对:表示事务执行不成功地结束,该事务对数据库的所有更新必须被撤销,数据库应恢复该事务到数据库的所有更新必须被撤销,数据库应恢复该事务到初始状态。初始状态。nBEGIN TRANSACTION和和COMMIT(或(或ROLLBACK)一起保证了事务的四个性质。一起保证了事务的四个性质。事务提交和事务撤销(事务提交和事务撤销(2)n对数据库访问的两个基本操对数据库访问的两个基本操作:读和写作:读和写nread(X):把数据把数据X从磁盘从磁盘的数据库中读到内存的缓的数
11、据库中读到内存的缓冲区冲区nwrite(X):把数据把数据X从内从内存缓冲区中写回磁盘的数存缓冲区中写回磁盘的数据库中据库中n注:完成写操作后,数据可注:完成写操作后,数据可能暂时放在内存中,而非直能暂时放在内存中,而非直接写进数据库。接写进数据库。T:BEGINTRANSACTION;read(A););A:=A50;write(A););if(A0)ROLLBACK;elseread(B););B:=B+50;write(B);COMMIT;事务状态变迁图事务状态变迁图活动状态活动状态局部提交局部提交状态状态失败状态失败状态提交状态提交状态异常终止状态异常终止状态read/write为了精
12、确地描述事务的工作,这里用事务状态图来描述为了精确地描述事务的工作,这里用事务状态图来描述事务的状态变迁。事务的状态变迁。主要内容主要内容n7.1 7.1 系统目录系统目录 n7.2 7.2 事务事务 n7.3 7.3 数据库的恢复数据库的恢复n7.4 7.4 数据库的并发控制数据库的并发控制n7.57.5* * 并发事务的可串行化和可恢复性并发事务的可串行化和可恢复性n7.6 7.6 数据库的完整性数据库的完整性n7.7 7.7 数据库的安全性数据库的安全性n小结小结 存储器类型(存储器类型(1 1) n易失性存储器易失性存储器(volatile storage):(volatile sto
13、rage):n内存、内存、cachecache存储器存储器; ;n故障时,其中的信息会丢失;故障时,其中的信息会丢失;n但访问速度快。但访问速度快。 n非易失性存储器非易失性存储器(nonvolatile storage):(nonvolatile storage):n磁盘和磁带;磁盘和磁带;n系统故障时,信息不丢失,但本身故障时,信息会丢系统故障时,信息不丢失,但本身故障时,信息会丢失;失;n访问速度较慢。访问速度较慢。存储器类型(存储器类型(2 2)n稳定存储器(稳定存储器(stable storagestable storage)这是一个理论上的概念。这是一个理论上的概念。信息不会丢失。
14、信息不会丢失。可通过对非易失性存储器进行技术处理来实现。可通过对非易失性存储器进行技术处理来实现。n稳定存储器稳定存储器的实现的实现n数据备份数据备份 :n数据银行数据银行:块的概念块的概念n块块:内外存数据交换的基本单位。:内外存数据交换的基本单位。n物理块:物理块:磁盘中的块,称为磁盘中的块,称为“物理块物理块”。n缓冲块:缓冲块:内存中临时存放物理块内容的块称为内存中临时存放物理块内容的块称为“缓冲块缓冲块”。n所有的缓冲块组成了所有的缓冲块组成了“磁盘缓冲区磁盘缓冲区”。块的操作块的操作n块的操作块的操作ninputinput(A A):把物理):把物理块块A A的内容传送到内的内容传
15、送到内存的缓冲块中。存的缓冲块中。nOutputOutput(B B):把缓):把缓冲块冲块B B的内容传送到的内容传送到磁盘中恰当的物理块磁盘中恰当的物理块中中 B内存内存AB磁盘磁盘input(A)output(B)图图7.5 7.5 块操作块操作数据访问数据访问write(X)xi包含包含x的块的块Bx存存在,在,read(X)事务事务系统系统开开始始请求请求read(X)事务工作区事务工作区分配分配X磁盘缓冲区磁盘缓冲区扫描内存扫描内存磁盘磁盘包含包含x的块的块Bx不不存在,存在,Input(B)恢复和原子性的联系恢复和原子性的联系银行转账系统银行转账系统A=2000 B=1000事务
16、事务A=A-100B=B+100Output(A)Output(B)断电或其断电或其他故障他故障假设没有事务的假设没有事务的原子性,那么重原子性,那么重新启动事务时要新启动事务时要么么A因为再执行因为再执行一遍而为一遍而为1800,要么要么B因从未执因从未执行而保持原值行而保持原值故障时,数故障时,数据库中据库中A,B值值分别为多少?分别为多少?恢复的基本原则和实现方法恢复的基本原则和实现方法 n基本原则基本原则 :“冗余冗余”,即数据库重复存储,即数据库重复存储n具体实现方法具体实现方法 n平时做好两件事:平时做好两件事:转储转储和和建立日志建立日志 n周期地(比如一天一次)对整个数据库进行
17、拷贝,转储到周期地(比如一天一次)对整个数据库进行拷贝,转储到另一个磁盘或磁带一类存储介质中。另一个磁盘或磁带一类存储介质中。n建立日志数据库。记录事务的开始、结束及数据每一次插建立日志数据库。记录事务的开始、结束及数据每一次插入、删除和修改前后的值,并写到入、删除和修改前后的值,并写到“日志日志”库中。库中。n 一旦发生数据库故障,分两种情况进行处理一旦发生数据库故障,分两种情况进行处理 n如果数据库已被破坏:装入最近的数据库备份,重做更新如果数据库已被破坏:装入最近的数据库备份,重做更新操作。操作。n如果数据库未被破坏:但某些数据不可靠,则撤消所有不如果数据库未被破坏:但某些数据不可靠,则
18、撤消所有不可靠的修改。可靠的修改。 故障类型和恢复方法故障类型和恢复方法n事务故障事务故障n可以预期的事务故障:可以预期的事务故障:n非预期事务故障:非预期事务故障:n系统故障系统故障硬件故障、软件错误或掉电等等;硬件故障、软件错误或掉电等等;内存内容丢失,但不破坏数据库;内存内容丢失,但不破坏数据库;恢复子系统在系统重新启动时,分恢复子系统在系统重新启动时,分2种情况处理:对未种情况处理:对未完事务,进行完事务,进行UNDO,对已提交事务但更新还在缓冲,对已提交事务但更新还在缓冲的事务,进行的事务,进行REDOn介质故障介质故障(硬故障硬故障) 磁盘物理故障或遭受病毒破坏磁盘物理故障或遭受病
19、毒破坏检查点(检查点(checkpoint)技术)技术什么是检查点方法?什么是检查点方法?nDBMS定时设置检查点,在检查时刻才真正做到把定时设置检查点,在检查时刻才真正做到把DB的的修改写到磁盘,并在日志文件中写入一条检查点记录修改写到磁盘,并在日志文件中写入一条检查点记录(以便恢复时使用)。当(以便恢复时使用)。当DB需要恢复时,只有那些在检需要恢复时,只有那些在检查点后面的事务需要恢复。查点后面的事务需要恢复。n优点:大大减少了优点:大大减少了DB的恢复时间。的恢复时间。检查点方法检查点方法n检查点方法的恢复算法检查点方法的恢复算法:n根据日志文件建立事根据日志文件建立事务重做队列和事务
20、撤务重做队列和事务撤销队列销队列n对对重做队列中的事务重做队列中的事务进行进行REDOREDO处理,对撤处理,对撤消队列中的事务进行消队列中的事务进行UNDOUNDO处理处理 -事务事务检查点检查点故障点故障点时间时间检查点检查点T1T3T2T5T4事务事务T1T1不必恢复不必恢复; ;事务事务T2T2和事务和事务T4T4必须重做(必须重做(REDOREDO); ;事务事务T3T3和事务和事务T5T5必须撤消(必须撤消(UNDOUNDO) tctf如何处理这五类事务?如何处理这五类事务?思考:思考:n如果写数据库和写日志这两个操作之间,发生故如果写数据库和写日志这两个操作之间,发生故障,一个保
21、留,一个丢失,则会发生什么情况?障,一个保留,一个丢失,则会发生什么情况?n运行记录优先原则运行记录优先原则SQL对事务的支持对事务的支持n无无begintransactionnCommitnRollbackn游标游标主要内容主要内容n7.1 7.1 系统目录系统目录 n7.2 7.2 事务事务 n7.3 7.3 数据库的恢复数据库的恢复n7.4 7.4 数据库的并发控制数据库的并发控制n7.57.5* * 并发事务的可串行化和可恢复性并发事务的可串行化和可恢复性n7.6 7.6 数据库的完整性数据库的完整性n7.7 7.7 数据库的安全性数据库的安全性n小结小结 并发操作并发操作nDBMS的
22、并发控制子系统,负责协调并发事务的执行,保的并发控制子系统,负责协调并发事务的执行,保证数据的完整性,同时避免用户得到不正确的数据。证数据的完整性,同时避免用户得到不正确的数据。n若没有并发控制子系统对事务进行控制,则其并发操作通若没有并发控制子系统对事务进行控制,则其并发操作通常会带来四个问题:常会带来四个问题:n丢失更新问题;丢失更新问题;n读脏数据问题;读脏数据问题;n错误求和问题;错误求和问题;n不可重复读问题不可重复读问题并发操作带来的问题并发操作带来的问题1-1-丢失更新丢失更新时间时间更新事务更新事务T1数据库中数据库中A的值的值更新事务更新事务T2T0100t1FINDAt2F
23、INDAt3A:=A-30t4A:=A*2t5UPDAt670UPDAt7200图图7.10在时间在时间t7丢失了事务丢失了事务T1的更新的更新(FIND表示从表示从DB中读值,中读值,UPD表示把值写回到表示把值写回到DB) 并发操作带来的问题并发操作带来的问题2-2-读脏数据读脏数据时间时间更新事务更新事务T1T1数据库中数据库中A A的值的值读事务读事务T2T2t0t0100100t1t1FIND AFIND At2t2A:=A-30A:=A-30t3t3UPD AUPD At4t47070FIND AFIND At5t5* *ROLLBACKROLLBACK* *t6t6100100图
24、图7.11 7.11 事务事务T2T2在时间在时间t4t4读了未提交的读了未提交的A A值(值(7070) 并发操作带来的问题并发操作带来的问题2-2-读脏数据读脏数据时间时间更新事务更新事务T1T1数据库中数据库中A A的值的值更新事务更新事务T2T2t0t0100100t1t1FIND AFIND At2t2A:=A-30A:=A-30t3t3UPD AUPD At4t47070FIND AFIND At5t5A:=AA:=A* *2 2t6t6UPD AUPD At7t7140140t8t8* *ROLLBACKROLLBACK* *t9t9100100图图7.12 7.12 事务事务T
25、2T2在时间在时间t4t4读了未提交的读了未提交的A A值,并在时间值,并在时间t8t8丢失了自己的更新丢失了自己的更新 并发操作带来的问题并发操作带来的问题3-3-错误求和错误求和时间时间读事务读事务T1数据库中数据库中A、B、C的值的值更新事务更新事务T2t040,50,30t1FINDAt2SUM:=At3FINDBt4SUM:=SUM+Bt5FINDCt6C:=C-10t7UPDCt840,50,20FINDAt9A:=A+10t10UPDAt1150,50,20COMMITt12FINDCt13SUM:=SUM+C 事务事务T1T1进行了不一致的分析进行了不一致的分析 并发操作带来的
展开阅读全文