系统实现技术 计算机网络课件_第1页
系统实现技术 计算机网络课件_第2页
系统实现技术 计算机网络课件_第3页
系统实现技术 计算机网络课件_第4页
系统实现技术 计算机网络课件_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

19.5.12,四川理工学院计科系,1,第7章 系统实现技术,19.5.12,四川理工学院计科系,2,本章重要概念,系统目录及其与DBMS各子系统的联系。 事务的定义,COMMIT和ROLLBACK的语义,事务的ACID性质,事务的状态变迁图。 存储器类型,稳定存储器的实现,数据传送过程。 恢复的定义、基本原则和实现方法,故障类型,检查点技术,REDO和UNDO操作,运行记录优先原则。,19.5.12,四川理工学院计科系,3,本章重要概念(续1),并发操作带来的三个问题,X锁、PX协议、PXC协议,S锁、PS协议、PSC协议,活锁、饿死和死锁,并发调度,串行调度,并发调度的可串行化,两段封锁法,SQL中事务的存取模式和隔离级别。 完整性的定义,完整性子系统的功能,完整性规则的组成。SQL中的三大类完整性约束,SQL3中的触发器技术。 安全性的定义、级别,权限,SQL中安全性机制,几种常用的安全性措施,自然环境的安全性。,19.5.12,四川理工学院计科系,4,主要内容和学习要求,7.1 系统目录 (理解) 7.2 事务 (综合应用) 7.3 数据库的恢复 (理解) 7.4 数据库的并发控制 (了解) 7.5 并发事务的可串行化和可恢复性(了解) 7.6 数据库的完整性(理解) 7.7 数据库的安全性(理解),19.5.12,四川理工学院计科系,5,7.1 系统目录,什么是系统目录 系统目录的重要性 系统目录的内容 元数据,19.5.12,四川理工学院计科系,6,7.1 系统目录(续1),7.1.1 RDBMS系统目录的存储内容 关系名,属性名,属性域(数据类型) 各种约束,主键,辅助键,外键,空值/非空值 视图的外部级描述,存储结构和索引的内部级描述 安全性和授权规则 数据完整性规则 注意:这些数据都以表格的形式存在,19.5.12,四川理工学院计科系,7,7.1 系统目录(续2),某RDBMS的系统目录内容,19.5.12,四川理工学院计科系,8,7.1 系统目录(续3),7.1.2 系统目录的扩充ER图,19.5.12,四川理工学院计科系,9,7.1 系统目录(续4),7.1.3 系统目录和DBMS各子系统的联系,19.5.12,四川理工学院计科系,10,7.2 事务(transaction),事务:构成单一逻辑工作单元的操作集合。事务以“BEGIN TRANSACTION” 始,以“COMMIT”或“ROLLBACK”终。 事务的性质(ACID) 原子性(Atomicity):事务是一个不可分割的工作单元 一致性(Consistency):即数据不因事务的执行而被破坏 隔离性(Isolation):多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果一样 持久性(Durability):一事务一旦完成全部操作后,它对数据库的所有更新应永久地反映在数据库中,19.5.12,四川理工学院计科系,11,例子:事务及其性质,问题:设银行数据库中有一转账事务T,从账号A转一笔款子($50)到账号B。 相应的事务: T:read(A); A:=A50; write(A); read(B); B:=B+50; write(B).,T:BEGIN TRANSACTION; read(A); A:=A50; write(A); if (A0) ROLLBACK; else read(B); B:=B+50; write(B); COMMIT;,7.2 事务(续1),19.5.12,四川理工学院计科系,12,事务提交和事务撤销,事务的所有操作都完成了,则事务提交(COMMIT),否则事务撤销(ROLLBACK) BEGIN TRANSACTION标志事务开始执行 BEGIN TRANSACTION和COMMIT或ROLLBACK一起保证了事务的ACID性质 对数据库访问的两个基本操作:读和写,但完成写操作后,数据可能暂时放在内存中,而非直接写进数据库。,7.2 事务(续2),19.5.12,四川理工学院计科系,13,7.2.3 事务的状态变迁图,7.2 事务(续3),19.5.12,四川理工学院计科系,14,7.2.3 事务的状态变迁图,活动状态:事务开始执行后,立即进入活动状态(Active) 局部提交状态:事务的最后一个语句执行后,进入局部提交状态(Partially Committed) 失败状态:事务没能到达最后一个语句就中止执行,事务进入失败状态(failed) 异常中止状态:对失败状态的处理进入异常中止状态(Abort) 提交状态:局部提交状态的事务经检查的执行提交(COMMIT)操作,把对数据库的的修改全部写到磁盘上,事务成功结束,进入“提交”状态,7.2 事务(续3),19.5.12,四川理工学院计科系,15,7.3 数据库的恢复,可恢复性(Recovery):DBMS能把数据库从被破坏、不正确的状态恢复到最近一个正确的状态的能力。 7.3.1 存储器结构 存储器类型 易失性存储器(volatile storage):如内存、cache 非易失性存储器(nonvolatile storage):如磁盘、磁带 稳定存储器(stable storage):“决不丢失”的理论概念。 稳定存储器的实现 数据备份:如软件拷贝、磁盘镜像、RAID、双机容错等 数据银行:将数据写到远程计算机中,19.5.12,四川理工学院计科系,16,数据访问,块:存储单位 物理块:磁盘中的块 缓冲块:内存中的块;所有的缓冲块组成“磁盘缓冲区” 块操作: Input(A):数据从物理块A传送到内存的缓冲块中。 Output(B):数据从缓冲块B传送到磁盘中恰当的物理块中,7.3 数据库的恢复(续1),19.5.12,四川理工学院计科系,17,数据访问,事务,系统,磁盘,7.3 数据库的恢复(续2),19.5.12,四川理工学院计科系,18,恢复和原子性的联系,若没有事务的原子性,则重新启动事务时要么A因为再执行一遍而为1800,要么B因从未执行而保持原值,7.3 数据库的恢复(续3),19.5.12,四川理工学院计科系,19,7.3.2 恢复的基本原则和实现方法,基本原则:“冗余”,即数据库重复存储 具体实现方法: 平时做好两件事:转储和建立日志 周期性地对整个数据库进行拷贝。 建立日志数据库。记录事务的开始、结束及数据每一次更新的值。 一旦发生数据库故障,分两种情况进行处理 若数据库已被破坏,则装入last数据库备份,利用日志库执行REDO。 若数据库未被破坏,但某些数据不可靠,则执行UNDO。,7.3 数据库的恢复(续4),19.5.12,四川理工学院计科系,20,7.3.3 故障类型和恢复方法,事务故障的分类: 可预期的事务故障:如存款余额透支等(用ROLLBACK) 非预期事务故障:如运算溢出、数据错误、并发事务发生死锁等(用UNDO) 系统故障(软故障) 硬件故障、软件错误或掉电等(对未完成事务执行UNDO;对已提交但仍在缓冲区的事务执行REDO) 介质故障(硬故障) 磁盘物理故障或遭受病毒破坏,7.3 数据库的恢复(续5),19.5.12,四川理工学院计科系,21,7.3.4 检查点方法,检查点方法的恢复算法 按日志文件建立事务重做队列和事务撤销队列 对重做队列中事务进行REDO处理,对撤消队列中事务进行UNDO处理 运行记录优先原则: 为了安全,运行记录就先写下来。,T1,T3,T2,T5,T4,事务T1不必恢复; 事务T2和事务T4必须重做(REDO); T3和事务T5必须撤消(UNDO),7.3 数据库的恢复(续6),19.5.12,四川理工学院计科系,22,7.3.6 SQL对事务的支持,无begin transaction Commit Rollback 游标,7.3 数据库的恢复(续7),19.5.12,四川理工学院计科系,23,7.4 数据库的并发控制,图7.10 在时间t7丢失了事务T1的更新 (FIND表示从DB中读值,UPD表示把值写回到DB),7.4.1 并发操作带来的问题1-丢失更新,返回,19.5.12,四川理工学院计科系,24,7.4 数据库的并发控制(续1),2. 读脏数据问题,19.5.12,四川理工学院计科系,25,并发操作带来的问题3-错误求和,事务T1进行了不一致的分析,19.5.12,四川理工学院计科系,26,7.4.2 封锁技术,封锁技术:封锁是控制并发执行的主要技术。通常在数据库中每个数据项都有一个锁。对可能应用于某数据项的操作而言,锁描述了该数据项的状态。其作用是使并发事务对数据库中数据项的访问能够同步。 封锁技术中主要有两种封锁:排他型封锁(eXclusive Lock)和共享锁(Shared Lock),7.4 数据库的并发控制(续3),19.5.12,四川理工学院计科系,27,1. 排他型封锁(X锁),定义:若事务T对某数据R实现了X锁,则在T对数据R解除封锁之前,不允许其他事务对该数据加任何类型的锁。 操作: 封锁操作:XFIND R 解锁操作:XRELEASE R PX协议: 欲更新R的事务必先执行“XFIND R”操作以获得对R的X锁,才能读或写R;若未获准X锁,则该事务进入等待队列,直到获准X锁方能继续下去。 PXC协议: X锁的解除应合并到事务结束(COMMIT或ROLLBACK)操作中,7.4 数据库的并发控制(续4),19.5.12,四川理工学院计科系,28,2. 共享型封锁(S锁),定义:事务T对某数据加S锁后允许其他事务对该数据加S锁,但在对其所有S锁被解除前决不允许任何事务对该数据加X锁。 操作: 封锁操作:SFIND R 升级和写操作:UPDX R 解锁操作:SRELEASE R PS协议: 任何读R的事务必先执行“SFIND R”操作获得对R的S锁;当事务获准对R的S锁后,若需更新R必须用“UPDX R”操作把S锁升级为X锁,成功则可更新,否则这个事务进入等待队列。 PSC协议: S锁的解除应合并到事务的结束(COMMIT或ROLLBACK)操作中,7.4 数据库的并发控制(续5),19.5.12,四川理工学院计科系,29,例:使用X锁封锁解决数据丢失,19.5.12,四川理工学院计科系,30,例:使用S锁封锁解决数据丢失,19.5.12,四川理工学院计科系,31,3. 封锁的相容矩阵,注: N=NO,不相容的请求 Y=YES,相容的请求 X、S、:分别表示X锁,S锁,无锁 如果两个封锁是不相容的,则后提出封锁的事务要等待。,T2 T1,7.4 数据库的并发控制(续6),19.5.12,四川理工学院计科系,32,7.4 数据库的并发控制(续7),4. 封锁的粒度 封锁对象的大小称为封锁的粒度(Granularity) 封锁的对象 逻辑单元:属性值、属性值集合、元组、关系、索引项、整个索引、整个数据库 物理单元:页(数据页或索引页)、块 封锁粒度与系统并发度和并发开销密切相关。粒度大,能被封锁的对象就少,并发度就小,但系统的开销也越小;反之,粒度越小,并发度越高,系统开销越大。,19.5.12,四川理工学院计科系,33,7.4.3 封锁带来的问题1-(活锁),19.5.12,四川理工学院计科系,34,封锁带来的问题2-饿死,若事务序列中的每个事务都申请对某数据项加S锁,且在授权加锁后一小段时间内释放封锁,此时另有事务T2欲对该数据项加X锁,则将永远轮不上封锁的机会。,19.5.12,四川理工学院计科系,35,封锁带来的问题3-死锁,死锁,两个或以上的事务都处于等待状态,且每个事务都在等待另一个事务解除封锁才能继续下去,结果造成任何一个事务都无法继续执行。,19.5.12,四川理工学院计科系,36,7.4.4 并发操作的调度,事务的调度:事务的执行次序称为“调度” 串行调度:如果多个事务依次执行,则称为事务的串行调度(Serial Schedule) 并发调度:如果利用分时的方法,同时处理多个事务,则称为事务的并发调度(Concurrent Schedule) 可串行化:如果一个并发调度的执行结果与某一串行调度的执行结果等价,那么这个并发调度称为“可串行化的调度”,否则是不可串行化的调度 (不可串行化的例子参见例7.3),19.5.12,四川理工学院计科系,37,7.4.4 并发操作的调度,两段封锁协议: 在对任何一个数据进行读写操作之前,事务必须获得对该数据的封锁; 在释放一个封锁之后,事务不再获得任何其他封锁 遵守该协议的事务分为两个阶段:获得封锁阶段,也称为“扩展”阶段;释放封锁阶段,也称为“收缩”阶段 两段封锁协议与可串行化调度的关系:若所有的事务都遵守“两段封锁协议”,则所有可能的并发调度都是可串行化的 两段式封锁是可串行化的充分不必要条件,19.5.12,四川理工学院计科系,38,7.4.5 SQL中事务的存取模式,1. 事务的存取模式 READ ONLY(只读型):事务对数据库的操作只能是读操作。定义这个模式后,表示随后的事务均是只读型。 READ WRITE(读写型):事务对数据库的操作可读/写。程序开始时默认这种模式 这两种模式可用下列SQL语句定义: SET TRANSACTION READ ONLY SET TRANSACTION READ WRITE,19.5.12,四川理工学院计科系,39,7.4.5 SQL中事务的存取模式,2. SQL中事务的隔离级别 SERIALIZABLE(可串行化):允许事务并发,但须保证并发可串行化,是默认级别。 REPEATABLE READ(可重复读):只许事务读已提交的数据,且两次读之间不许其他事务修改此数据。 READ COMMITTED(读提交数据):允许事务读已提交的数据,但不要求“可重复读”。 READ UNCOMMITTED(可以读未提交数据):允许事务读已提交或未提交的数据。,19.5.12,四川理工学院计科系,40,7.6 数据库的完整性,7.6.1 完整性子系统和完整性规则 数据库的完整性:正确性、有效性和相容性 完整性子系统的主要功能: 监督事务的执行,并测试是否违反完整性规则 若有违反现象,则采取恰当的操作,譬如拒绝操作、报告违反情况、改正错误等方法来处理 完整性规则: 什么时候使用规则进行检查(称为规则的“触发条件”) 要检查什么样的错误(称为“约束条件”或“谓词”) 如果查出错误,应该怎么办(称为“ELSE子句”,即违反时要做的动作),19.5.12,四川理工学院计科系,41,7.6 数据库的完整性(续1),7.6.2 SQL中的完整性约束 域约束 用“CREATE DOMAIN”语句定义新的域,并且还可出现CHECK子句 断言 若约束与多个关系或与聚合操作有关,则“断言” (Assertions) 为用户提供完整性约束定义机制 CREAT ASSERTION CHECK() DROP ASSERTION ,定义一个新的域COLOR,可用下列语句实现: CREATE DOMAIN COLOR CHAR(6) DEFAULT ? CONSTRAINT V_COLORS CHECK(VALUE IN (Red,Yellow, Blue,Green,?); 每位教师开设的课程不能超过10门。 CREATE ASSERTION ASSE1 CHECK(10 = ALL(SELECT COUNT(C#)FROM C GROUP BY TNAME);,19.5.12,四川理工学院计科系,42,7.6 数据库的完整性(续2),基本表的约束 候选键的定义 UNIQUE(列名序列)或 PRIMARY KEY(列名序列) 外键的定义 FOREIGN KEY(列名序列)REFERENCES () ON DELETE ON UPDATE “检查约束”的定义 CHECK(条件表达式),19.5.12,四川理工学院计科系,43,关于外键约束完整性的补充,删除参照表中元组时的考虑 NO ACTION CASCADE方式 RESTRICT方式 SET NULL方式 SET DEFAULT方式,修改参照表中主键值时的考虑、 NO ACTION CASCADE方式 RESTRICT方式 SET NULL方式 SET DEFAULT方式,19.5.12,四川理工学院计科系,44,关于数据库完整性的例子,学生关系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 = 30));,CREATE TABLE SC(S# CHAR(4),C# CHAR4),GRADE SMALLINT,PRIMARY KEY(SNO,NO), CHECK(S# IN(SELECT S# FROM S),CHECK(C# IN(SELECT C# FROM C), 在SC中插入一个元组,若C#值在C中不存在,则系统将拒绝这个插入操作。 在SC中插入一个元组,若S#值在S中不存在,则系统将拒绝这个插入操作。 在S中删除一个元组,这个操作将与关系SC中的检查子句无关。若此时SC中存在被删学生的选课元组时,SC将违反检查子句中条件。,19.5.12,四川理工学院计科系,45,7.6.3 SQL3的触发器 触发器:一个能由系统自动执行对数据库修改的语句。 组成: 事件:插入、删除、修改等操作,引发触发器的操作 条件:引发触发器的条件 动作:引发触发器后的工作,7.6 数据库的完整性(续),19.5.12,四川理工学院计科系,46,SQL3的触发器实例,例7.26 :应用于选课表SC的一个触发器。该触发器规定,在修改关系SC的成绩值时,要求修改后的成绩一定不能比原来的低,否则就拒绝修改。 CREATE TRIGGER TRIG1 AFTER UPDATE OF GRADE ON SC REFERENCING OLD AS OLDTUPLE NEW AS NEWTUPLE FOR EACH ROW WHEN (OLDTUPLE.GRADE NEWTUPLE.GRADE) UPDATE SC SET GRADE = OLDTUPLE.GRADE WHERE C# = NEWTUPLE.C#,19.5.12,四川理工学院计科系,47,7.7 数据库的安全性,7.7.1 安全性问题 数据库的安全性是指保护数据库,防止不合法的使用以免数据的泄密、更改或破坏。 安全性级别 环境级:机房和设备应防止人为物理破坏。 职员级:正确授予用户访问数据库的权限。 OS级:应防止未经授权的用户从OS处着手访问数据库。 网络级:网络软件内部的安全。 DBS级:DBS的职责是检查用户的身份是否合法及使用数据库的权限是否正确。,19.5.12,四川理工学院计科系,48,(1)读权限:允许用户读、但不能改数据。 插入权限:允许用户插入新数据,但不能改数据。 修改权限:允许用户改但不能删数据。 删除权限,7.7.2 权限问题 访问数据的权限 索引(Index)权限:允许用户创建和删除索引。 资源(Resourse)权限:允许用户创建新的关系。 修改(Alteration)权限:允许用户在关系结构中加入或删除属性。 撤消(Drop)权限:允许用户撤消关系。,7.7 数据库的安全性(续),19.5.12,四川理工学院计科系,49,权限的授予和回收,权限转授图,一个用户拥有权限的充分必要条件是在权限图中从根结点到该用户结点存在一条路经,7.7 数据库的安全性(续),权限图的演变,19.5.12,四川理工学院计科系,50,7.7.3 SQL中的安全性机制 视图:虚表 SQL2中的用户权限及其操作 用户权限:SELECT INSERT DELETE UPDATE REFERENCES USAG (ALL PRIVILEGES) 授权语句 GRANT ON TO WITH GRANT OPTIO

温馨提示

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

评论

0/150

提交评论