上海大学数据库2部分概念整理_第1页
上海大学数据库2部分概念整理_第2页
上海大学数据库2部分概念整理_第3页
上海大学数据库2部分概念整理_第4页
上海大学数据库2部分概念整理_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、第八章 数据库管理 一、本章重要概念 ( 1) 事务的定义, COMMIT 和 ROLLBACK 的语义, 事务是由若干 数据库操作 组成的 一个逻辑工作单位 ,是一个不可分割的工作单 位。一个应用程序可以包括多个事务。事 务 以 BEGIN TRANSACTION 语 句 的 成 功 执 行 开 始 , 以 COMMIT 或 ROLLBACK 语句的成功执行结束。COMMIT (提交)语句表示一事务的全部操作都已成功, 它对 DB 的所有更新可 真正写到 DB 中。ROLLBACK (回退)语句表示事务没有成功地完成全部操作,系统将撤消该事 务对 DB 已作的更新 事务的 ACID 性质 事

2、务有四个重要性质:原子性、一致性、隔离性和持久性。通常称为“ ACID 性 质”。原子性 ( atomicity): 事务对数据库的更新要么全部起作用,要么完全不起作 用。 DBMS 的事务管理子系统一致性(consistency):事务将数据库从一个一致性状态转变为另一个一致性状 态。 程序员(正确地编写事务) DBMS 的完整性子系统隔离性 (isolation ):事务相互隔离,在多个事务并发执行时,任一事务的更新 操作在该事务成功提交前对其他事务都是不可见的。 DBMS 的并发控制子系 统持久性(durability):事务一旦成功提交,其对数据库的更新就永久有效,不会 因系统崩溃等而

3、丢失。 DBMS 的恢复管理子系统事务的状态变迁图。(2) 存储器类型,稳定存储器的实现,数据传送过程。(3) 恢复的定义、系统能把数据库从被破坏、不正确的状态、恢复到最近一个正确的状态,DBMS的这种能力称为数据库的可恢复性。基本原则和实现方法,恢复的基本策略:冗余(数据重复存储)实现方法:备份定期对数据库复制或转储(静态转储和动态转储,海量转储和增量转储)。 日志 执行事务时,记录其开始、结束和对 DB的每次更新操作。故障的类型,事务故障非预期事务故障:运算错误、数据错误、死锁等,故障事务夭折可预期事务故障:在事务中可预期出错的地方所加的 ROLLBACK语句系统故障:硬件、系统软件出错,

4、停电等,事务执行被打断,内存中数据被破 坏介质故障:磁头、磁盘控制器或磁盘损坏,盘上数据丢失,病毒破坏等,DB遭破坏检查点机制,DBMS定时设置检查点,在检查点时刻才真正做到把对DB的修改写到磁盘,并 在日志文件写入一条检查点记录。根据日志文件建立重做队列和事务撤消队列。对重做队列中的事务进行 REDO处理,对撤消队列中的事务进行 UNDO处理REDO 和 UNDO 操作,运行记录优先原则。(4)并发操作带来的三个问题, 丢失更新问题: 一事务所作的更新操作因另一事务的操作而丢失。 读“脏数据”问题: 又称为未提交依赖,指一事务取用了别的事务未提交随后又 被撤消的数据。不一致分析问题: 指事务

5、从数据库中读取了处于不一致状态的数据, 并因此进行 了不一致的分析。X 锁、排它型封锁(写锁, X 封锁):一个事务对数据对象加了 X 锁后,在它释放 X 锁 之前不允许其他事务再对该数据对象加任何锁。共享型锁(读锁, S 封锁) :一个事务对数据对象加了 S 锁后,允许其他事务 再对该数据对象加 S 锁,但在它释放 S 锁之前不允许其他事务加 X 锁。PX 协议、 事务若要更新数据,则必须先提出对此数据对象的 X 封锁请求;事务如果未获 准 X 封锁,那么进入等待状态,直至获准在此数据对象上的 X 封锁,才能继续 执行。PX协议可以解决因多事务同时更新同一数据对象而引起的更新丢失问题。 任何

6、事务 T 在更新记录 R 之前必须先执行“ XFIND R ”操作,以获得对R的X锁,才能读或写记录R;如果未获准X锁,那么 这个事务进入等待状态。一直到获准 X 锁,事务才能继续做下 去。(如果过早地解锁,有可能使其他事务读了未提交数据(且 随后被回退),引起丢失其他事务的更新。PXC 协议,是在“PX协议”上再加一规定:解除X锁的操作合并到事务的结束(COMMIT 或 ROLLBACK )操作中。 PXC 协议可以解决因事务 ROLLBACK 而引起的更新 丢失问题。时间事务数据库中A的價事务T218h加锁=XFIND AT1 ?加锁XFIND A (尖败)*3更新:A-A-等待写回A-1

7、7: UPD A等待17等待COMM IT (包括解锁)T1 $解锁等待*7T2 丫加锁XFTND A (重做)q更新:A:=A-2tg写回 A-15: UPD ATj15COMMIT (包括解锁)S锁、PS协议、PSC协议,PS:任何要更新记录R的事务必须先执行“SFIND R”操作,以获得对R的S锁当事务获准对R的S锁后,若要更新记录R必须用“UPDX R”操作,这个操作首先把S锁升级为X锁,若成功则更新记录, 否则这个事务进入等待队列。PSC:PS协议加上S锁的解除操作应该合并到事务的结束(COMMIT 或 ROLLBACK )操作中。时间事务T1数据库中A、R的值事务T250. 100

8、加饿 SFIND A, Bti:Bins锁求和:A+B=15Ch12: ?酋加S锁加锁:SH1ND BT4更新:q写冋IJPDX B失败u等持检索(验算)人0/-100等待q求和;A+B=150等持COMMl K包括解锁九B)T1:古解镇等待10丁2:加X锁写B重做*1150, 200解谟册活锁、出现某个事务永远处于等待状态得不到执行的现象。避免活锁的一个简便方法是采用“先来先服务”排队的策略。封锁子系统按请求 在时间上的先后次序对事务排序,数据对象上原有的锁一释放,即执行队列中第一 个事务的封锁请求。饿死和死锁,出现若干事务因循环等待而无法继续执行的现象。并发调度,串行调度,并发调度的可串行

9、化,两段封锁法,事务的执行次序称为“调度”。若多个事务依次执行,则称为事务的串行调度。若设法(例如利用分时的方法)多个事务同时被处理(即交错执行),则称为事务的并发调度。在应用环境中,事务的任一串行调度都是有效的(正确的),但是事务的并发调度不一定是正确的,有可能产生前面提到的不一致性问题。可串行化概念如果一个并发调度与某一串行调度具有相同的执行结果,那么称这个并发调度是“可串行化的调度”(即正确的并发调度),否则是不可串行化的调度。事务在解除了一个两段封锁协议 事务在对数据对象存取之前必须先获得对此数据对象的封锁, 锁之后不再获得任何锁。SQL 中事务的存取模式和隔离级别。 事务的存取模式R

10、EAD ONLY (只读型)READ WRITE (读写型) 事务的隔离级别SERIALIZABLE (可串行化) REPEATABLE READ (可重复读) READ COMMITED (读提交数据) READ UNCOMMITED (读未提交数据)(5)完整性的定义, 是指数据的正确性、有效性和相容性。 完整性子系统的功能,完整性子系统: DBMS 中执行完整性检查的子系统。其功能: 监督事务的执行,测试其是否违反完整性约束条件; 若有违反,则按进行预定的处理。完整性规则的组成。 每个规则包括三部分:触发条件 规定何时执行本规则进行检查; 约束条件 又称谓词,定义应满足的条件; 否则子句

11、 规定不满足条件时该作的处理。 域完整性规则:定义属性取值范围。 域联系的规则:定义属性间的联系、影响和约束。 关系完整性规则:定义更新操作对值的影响和限制。SQL 中的三大类完整性约束, 完整性约束分为三大类: 域约束 用“ CREATE DOMAIN ”语句定义新的域 ,并可出现 CHECK 子句。 非空值约束(NOT NULL ) 基于属性的检查子句 (CHECK):基本表约束 主键约束可用主键约束来描述实体完整性规则。 主键约束可用两种形式表示: 主键子句和 主键短语。主码可在定义关系的 CREATE TABLE 语句中使用 PRIMARY KEY 关键字加以定 义。有两种定义主键的方

12、法, 一种是在属性后增加关键字, 另一种是在属性表中 加入额外的定义主键的子句:PRIMARY KEY( 主键属性名表 )使用关键字 UNIQUE ,说明该属性(或属性组)的值不能重复出现。 外键约束FOREIGN KEY (列名序列 1) .REFERENCES ( ) ON DELETE ON UPDATE 参照动作可以有五种方式:NO ACTION (无影响)CASCADE (级联方式)RESTRICT (受限方式)SET NULL (置空值)SET DEFAULT (置缺省值) 检查约束 对单个关系的元组值加以约束。对表内元组说明约束时,在 CREATE TABLE 语句中的属性表、主

13、码、外部码的 说明之后加上 CHECK 子句。每当对元组进行插入或修改操作时, 都要对 CHECK 子句的条件表达式求值, 如果条件为假, 违背了约束, 系统将拒绝该插入或修改 操作。CHECK 子句的一般格式为: CHECK 断言定义:CREATE ASSERTION 断言名 CHECK (条件)撤消:DROP ASSERTION 断言名断言也可以在关系定义中用检查子句形式定义, 但是检查子句不一定能保证完整 性约束彻底实现,而断言能保证不出差错。SQL3 中的触发器技术。触发器(Trigger)是一个能由系统自动执行对数据库修改的语句。触发器有时也称为主动规则(Active Rule)或事

14、件一条件一动作规则(Event ConditionAction Rule,ECA 规则)。(1) 触发时间 : BEFORE、 AFTER、 INSTEAD OF ;(2) 触发事件 :有三类 UPDATE、DELETE、INSERT(3) 目标表名 : 当目标表的数据被更新 (插入、删除、修改)时 , 将激活触发器。旧值和新值的别名表:REFERENCES子句 触发器有两类:元组级触发器和语句级触发器。元组级触发器 带 “FOR EACH ROW ” 子句, 而语句级触发器没有;元组级触发器对每一个修改的元组都要检查一次, 而语句级触发器对 SQL 语句的执行结果去检查。语句级触发器,不能直

15、接引用修改前后的元组,但可以引用修改前后的元组 集。旧的元组集由被删除的元组或被修改元组的旧值组成, 而新的元组集由插入 的元组或被修改元组的新值组成。INSTEAD OF 表示:在触发事件发生时 ,只要满足 WHEN 条件,就执行动作部分 的操作,而触发事件的操作不再执行。(6)安全性的定义、级别,定义是指保护 DB ,防止不合法的使用,以免数据的泄漏、非法更改和破坏。 安全性级别设置安全措施所牵涉的层次。分成环境级、职员级、OS级、网络级和DBS级等五个级别。这里只讨论 DBS 级的安全性问题。权限,权限的授予、转授与回收授权 可根据需要把在某对象上的某些权限授予特定的用户。转授 若拥有转

16、授权,则允许把已获得的权限再转授给其他用户。回收 也可以撤消已授给某用户的某些权限。权限的种类:读插入修改删除SQL 中的安全性机制(视图、 SQL 用户权限及操作 )视图 视图是虚表,视图机制使 DBS 具有三个优点:数据安全性、逻辑独立性、 用户操作简便性。SQL 中的用户权限及操作六类权限: SELECT,INSERT,DELETE,UPDATE,REFERENCES,USAGE。 授权( GRANT )语句:将关系和视图操作权授予特定用户回收(REVOKE )语句:回收已授给某用户的权限。第十章 对象数据库系统一、本章重要概念(1)新一代 DBS 的两条途径: ORDBS 和 OODB

17、S。ORDB中的SELECT语句(SQL3标准):引入了路径表达式、嵌套与解除嵌套 等概念。在传统的关系数据模型基础上, 提供元组、 数组、 集合一类丰富的数据类型以及处理新的数据类型操作的能力,并且有继承性和对象标识等面向对象特点。OODB中的SELECT语句(ODMG标准OQL):有了更多的扩充,并与宿主语 言语句混合起来,可以表达更为复杂的查询操作。(2)平面关系模型,嵌套关系模型,复合对象模型,平面关系模型二嵌套关系模型:复合对象模型:面向对象类型:属性都泉華本数据类型。属件町以是基本数据类型,也可以是关系类型,旦数据结构叮以名次嵌套口属性叮以是某本数据类型,也吋以是关系类 型,还可以

18、是元纽类型,11数据结构町以多 次嵌套。在复合对象模型的墓础匕 数据结构的嵌 套采用引用(指针)方式,并且引入面向 对象技术的继承性等概念F引用类型,对象联系图的成分及表示方法,图主要用于关系数据库的设i仁对象联系图:它是ER图的扩充,使之能表达对象是一种纯“技术的结构.体现了现实世 界数据之间面向对象的各种联系方式。之间的引用。UML的类图:对象联系图三.对象联系图的成分椭圆表示对象类型(相当于实体类型):小岡圈:表示基本数据类型整型、实型字符串型)属性:椭圆之间的边: 表示对象Z间的引用3单箭头(一): 表示属性值是单值(属性可以是基本数据类型*也可以是另一个对象类型):双箭头:表示属性值是多值(属性可以是基本数据类型, 也可以是另个对象类型):双线箭头(=):表示对象类型之间的超类与子类联系(从子类 指向超类;(部门号)dood

温馨提示

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

评论

0/150

提交评论