书签 分享 收藏 举报 版权申诉 / 47
上传文档赚钱

类型数据库原理与应用(第二版)Chapter6课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3324831
  • 上传时间:2022-08-20
  • 格式:PPT
  • 页数:47
  • 大小:249.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《数据库原理与应用(第二版)Chapter6课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数据库 原理 应用 第二 Chapter6 课件
    资源描述:

    1、第六章第六章数据库的保护数据库的保护6.1 数据的安全性数据的安全性 数据库的安全性是指保护数据库中的数据不因用户的非数据库的安全性是指保护数据库中的数据不因用户的非法使用而造成破坏、更改和泄露机密。也就是数据库法使用而造成破坏、更改和泄露机密。也就是数据库中的数据不允许受到任何的恶意侵害或未经授权的存中的数据不允许受到任何的恶意侵害或未经授权的存取和修改。取和修改。安全性的问题一般采用如下的处理办法:安全性的问题一般采用如下的处理办法:(1)用户标识和鉴定用户标识和鉴定(2)存取控制存取控制(3)定义视图定义视图(4)审计审计(5)数据加密数据加密有关利用有关利用SQLSQL语句实现视图定义

    2、和存取控制内容,可参语句实现视图定义和存取控制内容,可参考考3.53.5节和节和3.63.6节。节。6.2 数据的完整性数据的完整性 数据库的完整性是指数据的正确性、一致性及数据库的完整性是指数据的正确性、一致性及相容性。相容性。为了维护数据的完整性,为了维护数据的完整性,DBMS必须提供一种必须提供一种机制来检查数据库的数据,看其是否符合机制来检查数据库的数据,看其是否符合语义规定的条件。这些加在数据库数据之语义规定的条件。这些加在数据库数据之上的语义约束条件称为数据库完整性约束上的语义约束条件称为数据库完整性约束条件,它们作为模式的一部分存入数据库条件,它们作为模式的一部分存入数据库中。而

    3、中。而DBMS中检查数据是否满足完整性中检查数据是否满足完整性条件的机制称为完整性检查。条件的机制称为完整性检查。6.2.1 完整性约束条件完整性约束条件完整性约束条件作用的对象可以有列级、元组级完整性约束条件作用的对象可以有列级、元组级和关系级三种粒度:和关系级三种粒度:列级的约束:主要是对其取值类型、范围、精度等列级的约束:主要是对其取值类型、范围、精度等的约束条件。的约束条件。元组的约束:是指对记录中各个字段之间的联系的元组的约束:是指对记录中各个字段之间的联系的约束。约束。关系的约束:是指对若干记录间、关系之间的联系关系的约束:是指对若干记录间、关系之间的联系的约束。的约束。完整性约束

    4、条件涉及的以上三类对象,其状态可完整性约束条件涉及的以上三类对象,其状态可以是静态的,也可以是动态的:以是静态的,也可以是动态的:静态对象是反映数据库状态合理性的约束。静态对象是反映数据库状态合理性的约束。动态对象的约束是反映数据状态变迁的约束。动态对象的约束是反映数据状态变迁的约束。1.1.静态列级约束静态列级约束 静态列级约束是对一个列(字段)的取值域的说明静态列级约束是对一个列(字段)的取值域的说明.(1)(1)对数据类型的约束,包括数据的类型、长度、单位、对数据类型的约束,包括数据的类型、长度、单位、精度等。精度等。(2)对取值范围或取值集合的约束。对取值范围或取值集合的约束。(3)对

    5、空值的约束:对空值的约束:空值表示未定义或未知的值,它与空值表示未定义或未知的值,它与零值和空格不同。零值和空格不同。2.2.静态元组约束静态元组约束静态元组约束就是规定组成一个元组的各个列之间的约静态元组约束就是规定组成一个元组的各个列之间的约束关系。束关系。例如,若一个人的职称为正教授,则其基本工资必须在例如,若一个人的职称为正教授,则其基本工资必须在10001000元以上,当输入工资时,必须考虑其职称的值元以上,当输入工资时,必须考虑其职称的值以确定其输入的合理性。以确定其输入的合理性。3.3.静态关系约束静态关系约束在一个关系中的各个元组之间或若干关系之间常常存在在一个关系中的各个元组

    6、之间或若干关系之间常常存在着各种联系和约束。着各种联系和约束。(1)(1)实体完整性约束实体完整性约束(2)(2)参照完整性约束参照完整性约束(3)(3)函数依赖约束函数依赖约束(4)(4)统计约束:某个字段值与一个关系多个元组统计值统计约束:某个字段值与一个关系多个元组统计值之间的约束关系。之间的约束关系。4.4.动态列级约束动态列级约束动态列级约束是修改列定义或列值时应满足的约束条件,动态列级约束是修改列定义或列值时应满足的约束条件,包括下面的几方面。包括下面的几方面。(1)(1)修改列定义时的约束修改列定义时的约束(2)(2)修改列值时的约束修改列值时的约束5.5.动态元组约束动态元组约

    7、束动态元组约束是指修改某个元组的值时需要参动态元组约束是指修改某个元组的值时需要参考其旧值,并且在新旧值之间需要满足某种考其旧值,并且在新旧值之间需要满足某种约束条件。约束条件。例如:工资调整时的规则是在原工资基础上增例如:工资调整时的规则是在原工资基础上增加原工资的加原工资的10%10%。6.6.动态状态约束动态状态约束动态关系约束是加在关系变化前后状态上的限动态关系约束是加在关系变化前后状态上的限制条件。动态关系在实现时系统开销较大。制条件。动态关系在实现时系统开销较大。6.2.2 完整性控制完整性控制 DBMSDBMS的完整性控制机制有三方面的功能的完整性控制机制有三方面的功能:(1)(

    8、1)定义功能,即提供定义完整性约束条件的定义功能,即提供定义完整性约束条件的机制。机制。(2)(2)检查功能,即检查用户发出的操作请求是检查功能,即检查用户发出的操作请求是否违背了完整性约束条件。否违背了完整性约束条件。(3)(3)如果发现用户的操作请求使数据违背了完如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数整性约束条件,则采取一定的动作来保证数据的完整性。据的完整性。根据对检查是否违背控制机制时机可以将约束根据对检查是否违背控制机制时机可以将约束分为两类:分为两类:(1)(1)立即执行约束:这类约束是指在招待用户事立即执行约束:这类约束是指在招待用户事务时,对

    9、事务中的某一更新语句招待完毕后,务时,对事务中的某一更新语句招待完毕后,马上对此数据进行完整性检查。马上对此数据进行完整性检查。(2)(2)延迟执行约束:这类约束是指在整个事务执延迟执行约束:这类约束是指在整个事务执行完毕后才进行完整性检查。行完毕后才进行完整性检查。6.3 并发控制并发控制 数据库是一个共享资源,可以供多个用户使用。数据库是一个共享资源,可以供多个用户使用。允许多个用户同时使用的数据库系统称为多允许多个用户同时使用的数据库系统称为多用户数据库系统。用户数据库系统。在多用户共享系统中,如果多个事务同时对同在多用户共享系统中,如果多个事务同时对同一数据进行操作称为并发操作。一数据

    10、进行操作称为并发操作。若对并发操作不加控制就可能会存取和存储不若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。据库管理系统必须提供并发控制机制。6.3.1 并发控制概述并发控制概述1.事务事务所谓事务是用户定义的一个数据库操作序列,所谓事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不这些操作要么全做,要么全不做,是一个不可分割的工作单位。可分割的工作单位。事务是并发控制的基本单位,保证事务事务是并发控制的基本单位,保证事务ACID特特性是事务处理的重要任务,而事务性是

    11、事务处理的重要任务,而事务ACID特性特性可能遭到破坏的原因之一是多个事务对数据可能遭到破坏的原因之一是多个事务对数据库的并发操作造成的。库的并发操作造成的。2.事务的事务的ACID特性特性原子性原子性(Atomicity):原子性是指事务处理是有或:原子性是指事务处理是有或无的命题,一旦启动,整个事务或者提交,或者无的命题,一旦启动,整个事务或者提交,或者放弃。放弃。一致性一致性(Consistency):一致性是指事务处理的所:一致性是指事务处理的所有进程都不能违背规定的商务规则。而这些商务有进程都不能违背规定的商务规则。而这些商务规则规定了数据的一致性。规则规定了数据的一致性。隔离性隔离

    12、性(Isolation):隔离性是指多个事务处理之间:隔离性是指多个事务处理之间的并发控制,即保证各个事务之间不互相影响。的并发控制,即保证各个事务之间不互相影响。持久性持久性(Durability):持久性是指一旦完成了事务:持久性是指一旦完成了事务处理,事务处理的结果就应该得到维持。处理,事务处理的结果就应该得到维持。3.并发操作带来的数据的不一致性问题并发操作带来的数据的不一致性问题 例如,考虑飞机订票系统中的一个活动序列:例如,考虑飞机订票系统中的一个活动序列:甲售票点(甲事务)读出某航班的机票余额甲售票点(甲事务)读出某航班的机票余额A,设,设A=16;乙售票点(乙事务)读出同一航班

    13、的机票余额乙售票点(乙事务)读出同一航班的机票余额A,也为也为16;甲售票点卖出一张机票,修改余额甲售票点卖出一张机票,修改余额AA-1,所以,所以A为为15,把,把A写回数据库;写回数据库;乙售票点也卖出一张机票,修改余额乙售票点也卖出一张机票,修改余额AA-1,所以,所以A为为15,把,把A写回数据库;写回数据库;简单分析结果可知,订票系统分明卖出了两张机票,简单分析结果可知,订票系统分明卖出了两张机票,数据库中的机票余额只减少数据库中的机票余额只减少1。并发操作带来的不一致性包括三类:并发操作带来的不一致性包括三类:(1)(1)丢失修改(丢失修改(Lost UpdataLost Upda

    14、ta):):两个事务两个事务T1和和T2读入同一数据并修改,读入同一数据并修改,T2提交的结果破坏提交的结果破坏了了T1提交的结果,导致提交的结果,导致T1的修改被丢失的修改被丢失 (2)(2)不可重复读(不可重复读(Non-Repeatable ReadNon-Repeatable Read):):事事务务T1读取数据后,实务读取数据后,实务T2执行更新操作,使执行更新操作,使T1无法再现前一次读取结果无法再现前一次读取结果 (3)(3)读读“脏脏”数据(数据(Dirty ReadDirty Read):):事务事务T1修改修改某一数据,将其写回磁盘,事务某一数据,将其写回磁盘,事务T2读取

    15、同一读取同一数据后,数据后,T1由于某种原因被撤消,这时由于某种原因被撤消,这时T1已已修改过的数据恢复原值,修改过的数据恢复原值,T2读到的数据就与读到的数据就与数据库中的数据不一致,则数据库中的数据不一致,则T2读到的数据为读到的数据为“脏脏”数据,即不正确数据。数据,即不正确数据。封锁是实现并发控制的一个非常重要的技术。封锁是实现并发控制的一个非常重要的技术。所谓封锁就是事务所谓封锁就是事务T在对某个数据对象例如表、在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其记录等操作之前,先向系统发出请求,对其加锁。加锁后事务加锁。加锁后事务T就对该数据对象有了一定就对该数据对象有了

    16、一定的控制,在事务的控制,在事务T释放它的锁之前,其他的事释放它的锁之前,其他的事务不能更新此数据对象。务不能更新此数据对象。6.3.2 6.3.2 封锁和封锁协议封锁和封锁协议基本的封锁类型有两种:排它锁(基本的封锁类型有两种:排它锁(X锁)和共享锁)和共享锁(锁(S锁)锁)(1)(1)排它锁排它锁:若事务若事务T T对数据对象对数据对象A A加加X X锁,则只允锁,则只允许许T T读取和修改读取和修改A A,其他任何事务都不能再对,其他任何事务都不能再对A A加任何锁,直到加任何锁,直到T T释放释放A A上的锁。这就保证了上的锁。这就保证了其他事务在其他事务在T T释放释放A A上的锁之

    17、前不能再读取和上的锁之前不能再读取和修改修改A A。(2)(2)共享锁共享锁:若事务若事务T T对数据对象对数据对象A A加加S S锁,则事务锁,则事务T T可以读取可以读取A A但不能修改但不能修改A A,其他事务只能再对,其他事务只能再对A A加加S S锁,而不能加锁,而不能加X X锁,直到锁,直到T T释放释放A A上的上的S S锁。锁。这就保证了其他事务可以读这就保证了其他事务可以读A A,但在,但在T T释放释放A A上上的的S S锁之前不能对锁之前不能对A A做任何修改。做任何修改。T2T1XSXSNNYNYYYYYY:相容请求:相容请求N:不相容请求:不相容请求封锁类型的相容矩阵

    18、封锁类型的相容矩阵在运用在运用X锁和锁和S锁两种基本封锁对数据对象加锁,锁两种基本封锁对数据对象加锁,还需要约定一些规则,例如何时申请还需要约定一些规则,例如何时申请X锁或锁或S锁、封锁时间、何时释放等。称这些规则为锁、封锁时间、何时释放等。称这些规则为封锁协议(封锁协议(Locking Protocol)。)。对封锁方式规定不同的规则,就形成了各种不对封锁方式规定不同的规则,就形成了各种不同的封锁协议。同的封锁协议。(1)(1)一级封锁协议:事务一级封锁协议:事务T T在修改数据在修改数据R R之前必之前必须先须先对其加对其加X X锁,直到事务结束才释放。事务锁,直到事务结束才释放。事务结束

    19、包括正常结束(结束包括正常结束(COMMITCOMMIT)和非正常结束)和非正常结束(ROLLBACKROLLBACK)。)。一级封锁协议可防止丢失修改,并保证事务一级封锁协议可防止丢失修改,并保证事务T T是是可恢复的。可恢复的。(2)(2)二级封锁协议:一级封锁协议加上事务二级封锁协议:一级封锁协议加上事务T T在在读取数据读取数据R R之前必须先对其加之前必须先对其加S S锁,读完后即锁,读完后即可释放可释放S S锁。锁。二级封锁协议除防止了丢失修改,还可以进一二级封锁协议除防止了丢失修改,还可以进一步防止读步防止读“脏脏”数据。数据。(3)(3)三级封锁协议:一级封锁协议加上事务三级封

    20、锁协议:一级封锁协议加上事务T T在在读取数据读取数据R R之前必须先对其加之前必须先对其加S S锁,直到事务锁,直到事务结束才释放。结束才释放。三级封锁协议除防止了丢失修改和不读三级封锁协议除防止了丢失修改和不读“脏脏”数据外,还进一步防止了不可重复读。数据外,还进一步防止了不可重复读。X X锁锁S S锁锁一致性保证一致性保证操作操作结束结束释放释放事务事务结束结束释放释放操作操作结束结束释放释放事务事务结束结束释放释放不丢不丢失失修改修改不读不读“脏脏”数据数据可重可重复复读读一级一级封锁封锁协议协议二级二级封锁封锁协议协议三级三级封锁封锁协议协议不同级别的封锁协议不同级别的封锁协议 1.

    21、1.活锁活锁 如果事务如果事务T T1 1封锁了数据封锁了数据R R,事务,事务T T2 2又请求封锁又请求封锁R R,于是于是T T2 2等待。等待。T T3 3也请求封锁也请求封锁R R,当,当T T1 1释放了释放了R R上上的封锁之后系统首先批准了的封锁之后系统首先批准了T T3 3的请求,的请求,T T2 2仍然仍然等待。然后等待。然后T T4 4又请求封锁又请求封锁R R,当,当T T3 3释放了释放了R R上的上的封锁之后系统又批准了封锁之后系统又批准了T T4 4的请求的请求T T2 2有可能有可能永远等待,这就是活锁的情形永远等待,这就是活锁的情形。避免活锁的简单方法是采用先

    22、来先服务的策略,避免活锁的简单方法是采用先来先服务的策略,当多个事务请求封锁同一数据对象时,封锁当多个事务请求封锁同一数据对象时,封锁子系统按请求封锁的先后次序对事务排队,子系统按请求封锁的先后次序对事务排队,数据对象上的锁一旦释放就批准申请队列中数据对象上的锁一旦释放就批准申请队列中第第1个事务获得锁。个事务获得锁。6.3.3 活锁和死锁活锁和死锁 2.2.死锁死锁 如果事务如果事务T T1 1封锁了数据封锁了数据R R1 1,T T2 2封锁了数据封锁了数据R R2 2,然,然后后T1T1又请求封锁又请求封锁R R2 2,因,因T T2 2已封锁了已封锁了R R2 2,于是,于是T T1

    23、1等待等待T T2 2释放释放R R2 2上的锁。接着上的锁。接着T T2 2又申请封锁又申请封锁R R1 1,因因T T1 1已封锁了已封锁了R R1 1,T T2 2也只能等待也只能等待T T1 1释放释放R R1 1上的上的锁。这样就出现了锁。这样就出现了T T1 1在等待,而在等待,而T T2 2又在等待又在等待T T1 1的局面,的局面,T T1 1和和T T2 2两个事务永远不能结束,形成两个事务永远不能结束,形成死锁。死锁。在数据库中解决死锁问题主要有两类方法,一在数据库中解决死锁问题主要有两类方法,一类方法是采取一定措施来预防死锁的发生,类方法是采取一定措施来预防死锁的发生,另

    24、一类方法是允许发生死锁,采用一定手段另一类方法是允许发生死锁,采用一定手段定期诊断系统中有无死锁,若有则解除之。定期诊断系统中有无死锁,若有则解除之。(1)(1)死锁的预防死锁的预防 一次封锁法一次封锁法:要求每个事务必须一次将所有要使:要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。用的数据全部加锁,否则就不能继续执行。顺序封锁法:顺序封锁法:预先对数据对象规定一个封锁顺序,预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。所有事务都按这个顺序实行封锁。(2)(2)死锁的诊断与解除死锁的诊断与解除 超时法:超时法:如果一个事务的等待时间超过了规定的如果一个事务

    25、的等待时间超过了规定的时限,就认为发生了死锁时限,就认为发生了死锁 等待图法:等待图法:等待图是一个有向图,并发控制子系等待图是一个有向图,并发控制子系统周期性地检测事务等待图,如果发现图中存在统周期性地检测事务等待图,如果发现图中存在回路,则表示系统中出现了死锁。回路,则表示系统中出现了死锁。定义定义 多个事务的并发执行是正确的,当且仅当多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们的结果相其结果与按某一次序串行地执行它们的结果相同,我 们 称 这 种 调 度 策 略 为 可 串 行 化同,我 们 称 这 种 调 度 策 略 为 可 串 行 化(Serializable

    26、Serializable)的调度。)的调度。可串行性(可串行性(SerializabilitySerializability)是并发事务正确)是并发事务正确性的准则。按这个准则规定,一个给定的并发性的准则。按这个准则规定,一个给定的并发调度,当且仅当它是可串行化的,才认为是正调度,当且仅当它是可串行化的,才认为是正确调度。确调度。为了保证并发操作的正确性,为了保证并发操作的正确性,DBMS的并发控制的并发控制机制必须提供一定的手段来保证调度是可串行机制必须提供一定的手段来保证调度是可串行化的。两段锁(化的。两段锁(Two-Phase Locking,简称简称2PL)协议就是保证并发调度可串行性

    27、的封锁协议。协议就是保证并发调度可串行性的封锁协议。6.3.4 并发调度的可串行性并发调度的可串行性两段锁协议是指两段锁协议是指所有事务必须分两个阶段对数所有事务必须分两个阶段对数据项加锁和解锁。据项加锁和解锁。在对任何数据进行读、写操作之前,首先要在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁。这一阶段也称申请并获得对该数据的封锁。这一阶段也称为扩展阶段。为扩展阶段。在释放一个封锁之后,事务不再申请和获得在释放一个封锁之后,事务不再申请和获得任何其他封锁。这一阶段称为收缩阶段。任何其他封锁。这一阶段称为收缩阶段。事务遵守两段锁协议是可串行化调度的充分条事务遵守两段锁协议是可串

    28、行化调度的充分条件,而不是必要条件。件,而不是必要条件。6.3.5 两段锁协议两段锁协议封锁对象的大小称为封锁粒度封锁对象的大小称为封锁粒度(Granularity)(Granularity)。封锁对象可以是逻辑单元,也可以是物理单封锁对象可以是逻辑单元,也可以是物理单元元。以关系数据库为例,封锁对象可以是属性值、以关系数据库为例,封锁对象可以是属性值、属性值的集合、元组、关系、索引项、整个索属性值的集合、元组、关系、索引项、整个索引直至整个数据库;也可以是这样一些物理单引直至整个数据库;也可以是这样一些物理单元:元:页(数据页或索引页)、块等。页(数据页或索引页)、块等。封锁的粒度越大,数据

    29、库所能够封锁的数据单封锁的粒度越大,数据库所能够封锁的数据单元就越少,并发度就越小,系统开销也越小;元就越少,并发度就越小,系统开销也越小;反之,封锁的粒度越小,并发度较高,但系统反之,封锁的粒度越小,并发度较高,但系统开销也就越大。开销也就越大。6.3.6 封锁的粒度封锁的粒度 1.1.多粒度封锁多粒度封锁多粒度树的根结点是整个数据库,表示最大的多粒度树的根结点是整个数据库,表示最大的数据粒度。叶结点表示最小的数据粒度。数据粒度。叶结点表示最小的数据粒度。多粒度封锁协议允许多粒度树中的每个结点被多粒度封锁协议允许多粒度树中的每个结点被独立地加锁。对一个结点意味着这个结点的所独立地加锁。对一个

    30、结点意味着这个结点的所有后裔结点也被加以同样类型的锁。有后裔结点也被加以同样类型的锁。在多粒度封锁中一个数据对象可能以两种方式在多粒度封锁中一个数据对象可能以两种方式封锁:显式封锁和隐式封锁。封锁:显式封锁和隐式封锁。2.2.意向锁意向锁 如果对一个结点加意向锁,则说明该结点的下如果对一个结点加意向锁,则说明该结点的下层结点正在被加锁;对任一结点加锁时,必层结点正在被加锁;对任一结点加锁时,必须先对它的上层结点加意向锁。须先对它的上层结点加意向锁。有三种常用有三种常用的意向锁:的意向锁:(1)(1)意向共享锁意向共享锁(IS(IS锁锁):如果对一个数据对象加:如果对一个数据对象加ISIS锁,锁

    31、,表示它的后裔结点拟表示它的后裔结点拟(意向意向)加加S S锁。锁。(2)(2)意向排它锁意向排它锁(IX(IX锁锁):如果对一个数据对象加如果对一个数据对象加IXIX锁,锁,表示它的后裔结点拟(意向)加表示它的后裔结点拟(意向)加X X锁。锁。(3)(3)共享意向排它锁共享意向排它锁:如果对一个数据对象加如果对一个数据对象加SIXSIX锁,表锁,表示对它先加示对它先加S S锁,再加锁,再加IXIX锁,即锁,即SIX=S+IXSIX=S+IX。例如对某。例如对某个表加个表加SIXSIX锁,则表示该事务要读整个表(所以要对锁,则表示该事务要读整个表(所以要对该表加该表加S S锁),同时会更新个别

    32、元组(所以要对该表锁),同时会更新个别元组(所以要对该表加加IXIX锁)。锁)。6.4 备份与恢复备份与恢复 为了保证各种故障发生后,数据库中的数据能为了保证各种故障发生后,数据库中的数据能从一种错误状态恢复到某种逻辑一致的状态,从一种错误状态恢复到某种逻辑一致的状态,数据库系统必须提供恢复功能。数据库系统必须提供恢复功能。6.4.1 恢复的原理恢复的原理 数据库运行过程中,可能发生的故障主要有三数据库运行过程中,可能发生的故障主要有三类,不同的故障其恢复的方法也不一样。类,不同的故障其恢复的方法也不一样。事务故障事务故障:事务在运行过程中由于种种原:事务在运行过程中由于种种原因,使事务未运行

    33、至正常终止点而被迫停止,因,使事务未运行至正常终止点而被迫停止,这种情况称为事务故障。这种情况称为事务故障。系统故障:是指系统在运行时,由于某种原系统故障:是指系统在运行时,由于某种原因,致使所有正在运行的事务都以非正常方因,致使所有正在运行的事务都以非正常方式停止。这时内存中的数据缓冲区的信息全式停止。这时内存中的数据缓冲区的信息全部丢失,但存储在外部存储器上的数据未受部丢失,但存储在外部存储器上的数据未受影响。影响。介质故障:系统在运行中,由于硬件故障,介质故障:系统在运行中,由于硬件故障,使存储在外存中的数据部分丢失或全部丢失。使存储在外存中的数据部分丢失或全部丢失。6.4.2 恢复的实

    34、现技术恢复的实现技术 1.数据转储数据转储转储是指转储是指DBADBA将整个数据库复制到磁带或另一个磁盘上将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些备用的数据文本称为后备副保存起来的过程。这些备用的数据文本称为后备副本或后援副本。本或后援副本。重装后备副本只能将数据恢复到转储时的状态,要想恢重装后备副本只能将数据恢复到转储时的状态,要想恢复到故障发生时的状态,必须重新运行自转储以后复到故障发生时的状态,必须重新运行自转储以后的所有更新事务。的所有更新事务。2登录日志(登录日志(logging)文件)文件日志文件是用来记录事务对数据库的更新操作的文件。日志文件是用来记录事务对数据库

    35、的更新操作的文件。登录日志文件遵循两条原则:登录日志文件遵循两条原则:(1)(1)登录的次序严格按并行事务执行的时间次序。登录的次序严格按并行事务执行的时间次序。(2)(2)必须先写日志文件,后写数据库文件。必须先写日志文件,后写数据库文件。6.4.3 恢复策略恢复策略1 1事务故障的恢复事务故障的恢复发生事务故障时,恢复程序应撤销(发生事务故障时,恢复程序应撤销(UNDOUNDO)此)此事务已对数据库进行的修改,做法如下:事务已对数据库进行的修改,做法如下:反向扫描文件日志(即从后向前扫描日志文反向扫描文件日志(即从后向前扫描日志文件),查找事务的更新操作。件),查找事务的更新操作。对该事务

    36、的更新操作执行逆操作对该事务的更新操作执行逆操作 继续反向扫描日志文件,查找该事务的其他继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。更新操作,并做同样处理。如此处理下去,直到读到此事务开始标记,如此处理下去,直到读到此事务开始标记,事务故障恢复完毕。事务故障恢复完毕。2系统故障的恢复系统故障的恢复 正向扫描文件日志,找出故障发生前已经提正向扫描文件日志,找出故障发生前已经提交的事务,将其事务标记为重做队列。交的事务,将其事务标记为重做队列。同时同时还要找出故障发生时尚未完成的事务,将其还要找出故障发生时尚未完成的事务,将其标记入撤销队列。标记入撤销队列。对撤销队列中的各个事务

    37、进行撤销对撤销队列中的各个事务进行撤销(UNDO)处理,即处理,即反向扫描日志文件,对每一个反向扫描日志文件,对每一个UNDO事务的更新操作执行逆操作。事务的更新操作执行逆操作。对重做队列中的各个事务进行重做对重做队列中的各个事务进行重做(REDO)处理,即处理,即正向扫描日志文件,对每一个正向扫描日志文件,对每一个REDO事务的更新执行操作事务的更新执行操作 3 3介质故障的恢复介质故障的恢复 发生介质故障后,磁盘上的物理数据和日志文发生介质故障后,磁盘上的物理数据和日志文件被破坏。件被破坏。恢复方法是重装数据库,然后重恢复方法是重装数据库,然后重做已完成的事务。做已完成的事务。具体做法如下

    38、:具体做法如下:装入最新的后备数据库副本,使数据库恢装入最新的后备数据库副本,使数据库恢复到最近一次转储时的一致性状态。复到最近一次转储时的一致性状态。装入有关的日志文件副本,重做已完成的装入有关的日志文件副本,重做已完成的事务。事务。6.5 SQL Server的保护技术的保护技术 6.5.1 安全性安全性 SQL Server SQL Server 的安全模型中包括以下几部分:的安全模型中包括以下几部分:SQL Server SQL Server 登录认证登录认证 数据库用户账号管理数据库用户账号管理 权限管理权限管理 角色管理角色管理1SQL Server 登录认证登录认证(1)Wind

    39、ows(1)Windows 认证模式认证模式(2)SQL Server(2)SQL Server 认证模式认证模式(3)(3)混合认证模式混合认证模式 2用户账号管理用户账号管理 创建新数据库用户账号创建新数据库用户账号 3权限管理权限管理(1)(1)对象权限对象权限 (2)(2)语句权限语句权限 4角色管理角色管理(1)(1)服务器角色服务器角色 (2)(2)数据库角色数据库角色 6.5.2 数据库完整性数据库完整性1SQL Server完整性概述完整性概述(1)(1)实体完整性:把数据表中每条记录看作一实体完整性:把数据表中每条记录看作一个实体,要求所有的记录都有唯一的标识,个实体,要求所

    40、有的记录都有唯一的标识,即主键。表中定义的即主键。表中定义的UNIQUEUNIQUE、PRIMARY KEY PRIMARY KEY 和和IDENTITY IDENTITY 约束就是实体完整性的体现。约束就是实体完整性的体现。(2)(2)域完整性:指数据库表中的列必须满足某域完整性:指数据库表中的列必须满足某种特定的数据类型或约束。其中约束又包括种特定的数据类型或约束。其中约束又包括取值范围、精度等规定。表中的取值范围、精度等规定。表中的CHECKCHECK、FOREIGN KEY FOREIGN KEY 约束和约束和DEFAULTDEFAULT、NOT NULLNOT NULL定义定义都属于

    41、域完整性的范畴。都属于域完整性的范畴。(3)(3)参照完整性:指两个表的主关键字和外关参照完整性:指两个表的主关键字和外关键字的数据应对应一致,它是键字的数据应对应一致,它是建立在外关键建立在外关键字和主关键字之间或外关键字和惟一性关键字和主关键字之间或外关键字和惟一性关键字之间的关系上字之间的关系上。(4)(4)用户定义的完整性:用户定义的完整性:用户定义的完整性即用户定义的完整性即是针对某个特定关系数据库的约束条件,它是针对某个特定关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的反映某一具体应用所涉及的数据必须满足的语义要求。语义要求。2约束约束 约束是自动保持数据库完整性的

    42、一种方法,定约束是自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制义了可输入表或表的单个列中的数据的限制条件。条件。(1)(1)主关键字约束:主关键字约束:指定表的一列或几列的组指定表的一列或几列的组合的值在表中具有惟一性。合的值在表中具有惟一性。(2)(2)外关键字约束:外关键字约束:当一个表中的一个列或多当一个表中的一个列或多个列的组合和其它表中的主关键字定义相同个列的组合和其它表中的主关键字定义相同时,就可以将这些列或列的组合定义为外关时,就可以将这些列或列的组合定义为外关键字。键字。(3)(3)惟一性约束:惟一性约束:指定一个或多个列的组合的指定一个或多个列的组

    43、合的值具有惟一性,以防止在列中输入重复的值。值具有惟一性,以防止在列中输入重复的值。(4(4)检查约束:对输入列或整个表中的值设置检查约束:对输入列或整个表中的值设置检查条件,以限制输入值保证数据库的数据检查条件,以限制输入值保证数据库的数据完整性。完整性。(5)(5)缺省约束:通过定义列的缺省值或使用数缺省约束:通过定义列的缺省值或使用数据库的缺省值对象绑定表的列,来指定列的据库的缺省值对象绑定表的列,来指定列的缺省值。缺省值。3 3规则规则 规则就是数据库中对存储在表的列或用户自定规则就是数据库中对存储在表的列或用户自定义数据类型中的值的规定和限制。可以用义数据类型中的值的规定和限制。可以

    44、用CREATE RULE 命令创建规则,用命令创建规则,用DROP RULE 命令删除规则。命令删除规则。创建规则后,规则仅仅只是一个存在于数据库创建规则后,规则仅仅只是一个存在于数据库中的对象,并未发生作用。因此需要将规则中的对象,并未发生作用。因此需要将规则与数据库表或用户自定义对象联系起来,从与数据库表或用户自定义对象联系起来,从而达到创建规则的目的。这个过程叫做而达到创建规则的目的。这个过程叫做“绑绑定定”。存储过程。存储过程Sp_bindrule 可以绑定一个规可以绑定一个规则到表的一个列或一个用户自定义数据类型则到表的一个列或一个用户自定义数据类型上。上。4缺省值缺省值 缺省值是往

    45、用户输入记录时没有指定具体数据缺省值是往用户输入记录时没有指定具体数据的列中自动插入的数据。可以利用的列中自动插入的数据。可以利用CREATE DEFAULT和和DROP DEFAULT命令创建和删命令创建和删除缺省值。除缺省值。同规则一样,需要将缺省值与数据库表或用户同规则一样,需要将缺省值与数据库表或用户自定义对象绑定。存储过程自定义对象绑定。存储过程Sp_bindefault 可可以绑定一个缺省值到表的一个列或一个用户以绑定一个缺省值到表的一个列或一个用户自定义数据类型上自定义数据类型上。6.5.3 6.5.3 并发控制并发控制1.事务事务 在程序中用在程序中用BEGIN TRANSAC

    46、TION 命令来标命令来标识一个事务的开始,用识一个事务的开始,用COMMIT TRANSACTION 命令标识事务结束。命令标识事务结束。2事务回滚事务回滚 事务回滚是指当事务中的某一语句执行失败时,事务回滚是指当事务中的某一语句执行失败时,将对数据库的操作恢复到事务执行前或某个将对数据库的操作恢复到事务执行前或某个指定位置。可以用指定位置。可以用ROLLBACK TRANSACTION命令回滚事务。命令回滚事务。3 3锁锁 SQL ServerSQL Server中可以对以下的对象进行锁定:中可以对以下的对象进行锁定:数据行数据行(Row):(Row):数据页中的单行数据;数据页中的单行数

    47、据;索引行索引行(Key):(Key):索引页中的单行数据,即索索引页中的单行数据,即索引的键值;引的键值;页页(Page):(Page):页是页是SQL Server SQL Server 存取数据的基存取数据的基本单位,其大小为本单位,其大小为8KB8KB;盘区盘区(Extent):(Extent):一个盘区由一个盘区由8 8 个连续的页个连续的页组成;组成;表表(Table)(Table);数据库数据库(Database)Database);6.5.4 备份与恢复备份与恢复 1 备份的类型备份的类型 双机热备份双机热备份 双工备份双工备份 磁盘镜像磁盘镜像 数据库备份技术数据库备份技术

    48、2 2日志的概念日志的概念3 3备份或转储备份或转储 4 4SQL ServerSQL Server的备份类型的备份类型 全备份全备份 增量备份增量备份 表(表(TableTable)备份)备份5 5动态备份和静态备份动态备份和静态备份 动态备份:动态备份:在做备份时不中断数据库的运行,在做备份时不中断数据库的运行,不中断数据库上的应用程序和事务处理。不中断数据库上的应用程序和事务处理。静态备份是在做备份时没有任何数据库事务在静态备份是在做备份时没有任何数据库事务在运行,这种备份方式应是首选的备份方式。运行,这种备份方式应是首选的备份方式。6 6恢复恢复恢复也称为重载或重入,是指当磁盘损坏或数

    49、恢复也称为重载或重入,是指当磁盘损坏或数据库崩溃时,通过转储或卸载的备份重新安据库崩溃时,通过转储或卸载的备份重新安装数据库的过程。装数据库的过程。7.7.镜像镜像镜像的实质也是备份,即在同一时刻保存数据镜像的实质也是备份,即在同一时刻保存数据的两个或多个副本。的两个或多个副本。镜像与转储有本质的不同,转储是定期或不定镜像与转储有本质的不同,转储是定期或不定期的,是间断和非实时的;而镜像是连续或期的,是间断和非实时的;而镜像是连续或实时的。实时的。8SQL Server的镜像配置选择的镜像配置选择(1)(1)基本镜像配置:基本镜像配置:将用户数据库的事务日志设备和将用户数据库的事务日志设备和mastermaster设备镜设备镜像在另外一个独立的硬盘上;像在另外一个独立的硬盘上;(2)(2)标准镜像配置:标准镜像配置:将用户数据库设备、事务日志设备和将用户数据库设备、事务日志设备和mastermaster设设备镜像在另外一个独立的硬盘上。备镜像在另外一个独立的硬盘上。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:数据库原理与应用(第二版)Chapter6课件.ppt
    链接地址:https://www.163wenku.com/p-3324831.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库