数据库管理系统的功能和特征.doc
《数据库管理系统的功能和特征.doc》由会员分享,可在线阅读,更多相关《数据库管理系统的功能和特征.doc(18页珍藏版)》请在咨信网上搜索。
数据库管理系统的功能和特征 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 18 个人收集整理 勿做商业用途 数据库管理系统的功能和特征 · 数据库模型(概念模式、外模式、内模式) · 数据模型,ER图,第一范式、第二范式、第三范式 · 数据操作(集合运算和关系运算) · 数据库语言(SQL) · 数据库的控制功能(并发控制、恢复、安全性、完整性) · 数据仓库和分布式数据库基础知识 1、数据库知识 1。1数据管理技术的发展 数据管理技术的发展阶段: 人工阶段:数据处理方式是批处理.其特点是: Ø 数据不保存 Ø 没有专用的软件对数据进行管理 Ø 只有程序概念,没有文件概念 Ø 一组数据对应一个程序,即数据是面向程序的 文件系统阶段:数据处理方式有批处理,也有联机实时处理。其特点是: Ø 数据可长期保存在外存上 Ø 数据的逻辑结构与物理结构有了区别,但简单 Ø 文件组织已多样化,有索引文件、链接文件和直接存取文件等,但文件之间相互独立,没有联系 Ø 数据不再属于某个特定的程序,可重复使用,但数据结构和程序之间的依赖关系并未根本改变。 其缺点是: Ø 数据冗余性 Ø 数据不一致性 Ø 数据联系弱 数据库阶段:其特点是: Ø 用关系模型表示复杂的数据模型 Ø 有较高的数据独立性 Ø 数据库系统为用户提供了方便的用户接口 Ø 数据库管理系统提供了四个方面的数据控制能力-数据完整性、数据安全性、数据库的并发控制、数据库的恢复 数据库的基本概念 数据库(DB):是存储在一起的相关数据的集合.DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的程序与数据的独立性. 数据库管理系统(DBMS):DBMS是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS可分为层次型、网状型、关系型、面向对象型. 数据库系统(DBS):即是采用了数据库技术的计算机系统,是实现有组织地、动态存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源而组成的系统。 数据库技术:研究数据库的结构、存储、设计、管理和使用的一门软件学科. 1.2数据模型 表示实体类型及实体之间联系的模型称为“数据模型”。数据模型是严格定义的概念的集合,数据库的数据模型应包括数据结构(指对实体类型和实体之间联系的表达和实现)、数据操作(指对数据库的检索和更新两大类操作)和完整性约束(给出数据及其所具有的制约合依赖规则)3个部分。 数据模型的种类很多。目前广泛使用的数据模型可分为两种:概念数据模型和结构数据模型。 概念数据模型 这是一种独立于任何计算机系统的模型,完全不涉及信息在计算机系统中的表示,用于建立信息世界的数据模型,是现实世界的第一层抽象,是用户和数据库设计人员进行交流的工具,其中最著名的模型是“实体联系模型”(ER模型). ER模型直接从现实世界中抽取出实体类型及实体间联系图(ER图)表示数据模型。一般遇到实际问题时,总是先设计一个ER模型,然后再把ER模型转换成与DBMS关联的数据模型。 结构数据模型(亦称基本数据模型): 这是直接面向数据库的逻辑数据结构,通常有一组严格定义了语法和语义的数据库语言,用来定义、操纵数据库中的数据.其主要有层次、网状、关系模型三种。 ◆层次模型:用树型(层次)结构表示实体类型及实体之间联系的数据模型称为层次模型。层次结构是一棵树,树的结点是记录类型,非根结点有且只有一个父结点。上一层记录类型和下一层记录类型的联系是1:M联系。 ◆网状模型:用从结构(网络结构)表示实体类型及实体间联系的数据模型称为网状模型。记录之间的联系通过指针实现,M:N联系容易实现(一个M:N联系可拆成两个1:M联系),查询效率高. ◆关系模型:用规范化了的二维表格结构表示实体集,用键表示实体间联系.通常是若干个关系模型组成的集合。 1.3数据库系统的结构 n 数据库的数据体系结构 数据库的数据体系结构分成3个级别:内部级、概念级、外部级.从某个角度看到的数据特性称为数据视图。 Ø 外部级最接近用户,是用户看到的数据特性,用户的数据视图称为外模型。 Ø 概念级是涉及到所有用户的数据定义,也就是全局的数据视图,称为概念模型。 Ø 内部级是最接近于物理存储设备,涉及到实际数据的存储方式。物理存储的数据视图称为内模型. 这些模型用数据库的数据定义语言(DDL)描述后,分别得到外模式、概念模式、内模式。为实现这3个抽象级别的转换,数据库和管理系统在这3级结构之间提供了两层映象:外模式/概念模式映象和概念模式/内模式映象 数据库管理系统的主要目标:把数据作为可管理的资源处理. 数据库管理系统的5个重要功能:数据库的定义功能、数据库的操纵功能、数据库的保护功能、数据库的维护功能、数据字典. 数据库的全局结构: DBS的某些功能是由计算机的OS提供的,OS提供了DBS最基本的服务,因此 DBS必须在OS基础上工作.在DBS中就应包含DBMS和OS之间的界面。 DBS的全局结构由数据库用户、数据库管理系统的查询处理器、数据库管理系统的存储管理器和磁盘存储器中的数据结构等部分组成。 1.4关系模型和关系运算 n 基本概述 关系数据库是应用关系数据模型来建立和处理数据库中的数据.这其中主要涉及几个重要的概念. u 关系 关系实际上就可以看作是一个二维表。其中,表的每一列称为属性,并用属性名来标识。每个属性的取值范围,就是该属性所对应的值域.表的每一行称为元组。约定该表的行、列的次序的改变,不改变关系的语义性质。 对于一个关系,应该具备下列性质: Ø 关系中每一个属性值都是不可分解的; Ø 关系中不允许出现相同的元组;不让用户考虑元组的顺序; Ø 用户在使用时应考虑列的顺序. u 关系模型 关系模型是目前最流行的一种数据模型,它是用二维表格结构表示实体集,关键码表示实体间的联系。 u 关键字(键) I. 候选键 关系中的某一属性或属性组,若它的值可以唯一标识关系中的一个元组而又不含有多余的属性,则称该属性或属性组为候选关键字。 II。 主键 关系模式中用户正使用的候选关键字称为主关键字。 III. 外关键字 若模式R中某属性集是其他模式的候选键,那么该属性集对模式R而言就是外关键字。 IV. 超键 关系模式中,为唯一标识元组的属性集称为超键。 n 关系模型 关系模型遵循数据库的3级体系结构。 u 关系模式 数据库的概念模式定义为关系模式的集合。每个关系模式就是记录类型。 u 关系子模式 这是对用户所用到的那部分数据的描述。除了指出用户用到的数据外,还应指出数据与模式中相应数据的联系,即指出子模式与模式之间的对应性。 u 关系存储模式(关系内模式) 这是作为文件看待的,每个元组就是一个记录. 关系模型有3个部分构成: u 数据结构 关系模型采用的数据结构是关系。 u 关系操作 关系模型提供一组完备的关系运算,以支持对数据库的各种操作.关系运算的理论是关系代数和关系演算。 u 关系的完整性 在关系模型中,数据的约束条件通过三类完整性约束条件来描述。即: I. 实体完整性 要求关系中的元组的主键值不能是空值. II。 参照完整性 要求在关系中不允许引用不存在的实体. III. 用户定义的完整性 这是针对某一具体数据的约束条件,由应用环境决定,例如属性的值限制。 n 关系代数 关系查询语言根据其理论基础的不同分成两大类: u 关系代数语言:查询操作是以集合操作为基础的运算。 u 关系演算语言:查询操作是以谓词演算为基础的运算。 其中,关系代数是以集合代数为基础发展起来的,它是以关系为运算对象的一组高级运算的集合。关系代数的运算可分为两类: 基本运算操作:并、差、笛卡尔积、投影和选择。 组合运算操作:交、联接、自然联接和除. 另外,还有几种扩充的关系代数操作:外联接(左外联接和右外联接)、外部并和半联接。 以下对几种常用的关系运算作一个简单的介绍。 u 基本运算 1。 并 设有两个关系R和S具有相同的关系模式,关系R和S的并是由属于R或属于S的元组组成的集合,记为R∪S。形式定义如下:R∪S≡{t│t∈R∨t∈S} 2。 差 设有两个关系R和S具有相同的关系模式,关系R和S的差是由属于R但不属于S的元组组成的集合,记为R-S。形式定义如下:R-S≡{t│t∈R∧t ̄∈S} 3. 笛卡儿积 设关系R和S元数分别为r和s.定义R和S的笛卡儿积是一个(r+s)元的元组集合,每个元组的前r个分量来自R的一个元组,后s个分量来自S的一个元组,记为R×S形式定义如下:R×S≡{t│t=<tr,ts>tr∈R∧ts∈S} 若R有m个元组,S有n个元组,则R×S有(mn)个元组。 4. 投影 该操作是对关系进行垂直分割,消去某些列,并重新安排列的顺序,再删去重复元组. 5. 选择 这个操作是根据某些条件对关系作水平分割,即选择符合条件的元组。条件可用命题公式F表示,F中的运算对象是常数(用引号括起来)或元组分量(属性名或列的序号)。运算符有算术比较运算符(≤,<,≥,>,=,≠)和逻辑运算符(∧,∨,┐)。 δF(R)≡{t│t∈R∧F(t)= true} δ为选择运算符,δF(R)表示从R中挑选满足公式F的元组所构成的集合。常量用引号括起来,而属性号或属性名不要用引号括起来。 u 组合运算 1。 交 设有两个关系R和S具有相同的关系模式,关系R和S的交是由属于R又属于S的元组组成的集合,记为R∩S。形式定义如下:R∩S≡{t│t∈R∧t∈S} 2。 联接(又称θ联接) 从关系R和S的笛卡尔积中选取属性值之间满足一定条件的元组,记为: R│×│S≡δiθ(i+j)(R×S) ijθ 这里R的元数是r,θ是算术比较运算符.R│×│S操作是在R和S ijθ的笛卡尔积中挑选第i个分量和第(r+j)个分量满足θ运算的元组组成的新的关系. 3. 自然联接 两个关系R和S的自然联接用R│×│S表示,具体计算过程如下: A) 计算R×S B) 设R和S的公共属性是A1,A2,A3,。.Ak.,挑选R×S中满足R。A1=S。A1,R。A2,。..,R.Ak=S.Ak的那些元组 C) 去掉S.A1,S.A2,..S.Ak R│×│S可用下列形式定义: R│×│S≡πi1i2,.。.,im(δR.A1=S.A1∧..。∧R.Ak=S。Ak(R×S)。 4。 除法 设两个关系R和S的元数分别为r和s(r〉s〉0),那么R÷S是一个(r-s)元的元组的集合。(R÷S)是满足下列条件的最大关系,其中每个元组t与S中每个元组u组成的新元组〈t,u>必在关系R中。 R÷S的具体计算过程如下: A) T=π1,2,。.r-s(R) B) W=(T×S)—R求出T×S中不在R的元组 C) V=π1,2,...r—s(W) D) R÷S=T-V 因此R÷S≡π1,2,。.r—s (R)- π1,2,。。r—s ((π1,2,..r-s (R) ×S) —R )。 1。5关系数据库SQL语言 SQL数据库的数据体系结构 SQL数据库的数据体系结构基本上也是3级结构,但术语与传统关系模型术语不同。SQL中,关系模型称为“基本表”,存储模式称为“存储文件”,子模式称为“视图”,元组称为“行",属性称为“列”. SQL语言的组成 一个SQL数据库是表的汇集,它用一个或多个SQL模式定义. 一个SQL表由行集构成,一行是列的序列,每列对应一个数据项。 一个表或者是一个基本表,或者是一个视图.基本表是实际存储在数据库的表,视图是由若干基本表或其他视图构成的表的定义。 SQL包括了所有对数据库的操作,主要有4个部分:数据定义(SQL DDL)、数据操纵(SQL DML)、访问数据控制、嵌入式SQL语言的规定。 SQL DDL主要是定义基本表、视图、索引3个部分: ◆基本表的定义、修改、撤销 基本表的定义可用“CREATE TABLE”语句实现,增加属性可以用“ALTER.。。ADD.。."语句,删除属性可以用“ALTER...DROP。。。”语句;删除已存在的表可用“DROP TABLE.。.”语句。 ◆视图的定义和撤销 视图的定义可以用CREATE VIEW语句实现。视图的撤消可以用DROP VIEW语句实现。 ◆索引的定义和撤销 索引的定义可以用CREATE ,用DROP撤销. ◆SQL DML 数据查询语句 SQL的查询语句只有SELECT语句。 ◆SELECT查询语句 在关系代数中最常用的式子是“投影选择联接表达式”:πA1,A2,,。。。An(δF(R1×R2×。。。×Rm)),这里R1,R2,。。。Rm为基本表,F是公式,A1,A2,。.。An为属性。针对这个表达式,SQL 设计了SELECT句型: SELCET A1,A2,.。.An FROM R1,R2,...Rm WHERE F 在WHERE子句的条件表达式F中可出现下列操作符和运算特点:算术比较符、逻辑运算符、集合运算符、集合成员资格运算符、谓词和聚合函数。 ◆库函数 COUNT(*) 计算元组的个数 COUNT(列名) 对某一列中的值计算个数。 SUM(列名) 求某一列值的总和 AVG(列名) 求某一列值的平均值 MAX(列名) 求某一列值中的最大值 MIN(列名) 求某一列值中的最小值 ◆SELECT语句完整的句法 SELECT 目标表的列名或列表达式序列 FROM 基本表或(和)视图序列 [WHERE 行条件表达式 [GROUT BY 列名序列 [HAVING 组条件表达式 [DRDER BY 列名[序]。.。 前两个句子是必不可少的,后面的4个句子可以缺省。整个语句的语义如下:从FROM子句中列出的表,选取满足WHERE子句中给出的行条件表达式的元组,然后按GROUP子句(分组子句)中指定列的值分组,再提取满足HAVING子句中组条件表达式的那些组,按SELECT子句给出的列名或列表达式求值输出。ORDER子句(排序子句)是对输出的目标表进行排序,可附加说明ASC(升序)或DESC(降序) ◆SQL DML的数据更新语句 INSERT 插入语句 DELETE 删除语句 UPDATE 修改语句 ◆SQL的访问控制 SQL的访问控制功能主要是指对用户访问数据的控制。有授权语句和回收语句。 授权语句的格式如下: GRANT 权限表 ON 表名 TO 用户名表 [WITH GRANT OPTION] 该语句把表的使用权授予指定的若干用户.在有WITH GRANT OPTION短语时,被授权的用户还可将获得的权限再转授给其他用户。权限表中的权限可以有:SELECT, INSERT, DELETE, UPDATE, EXPAND, INDEX, ALL PRIVILEGES。 回收语句格式: REVOKE 权限表 ON 表名 FROM 用户名表 该语句把已授给指定用户的在指定表上的使用权限收回. ◆嵌入式SQL 由于SQL是基于关系模型的语言,而高级语言是基于整数、实数、字符、记录、数组等的数据类型,因此两者之间有很大的区别,称为有缝隙.为了能在宿主语言的程序中嵌入SQL语句,有一些规定: I.在程序中要区分SQL语句和宿主语言的语句; II.在嵌入的SQL语句中可以引用宿主语言的程序变量,但主语言的语句不能引用数据库中的各种变量(属性名、关系名),SQL的集合处理方式与宿主语言的单记录处理方式之间的协调用游标技术实现。 1.6 数据库设计 数据库应用系统的开发是一项软件工程,但又有自身的特点,所以称为“数据库工程"。数据库系统从开始规划、设计、实现、维护到最后被新的系统取代而停止使用的整个期间,称为数据库系统生存期。此生存期可分为7个阶段:规划、需求分析、概念设计、逻辑设计、物理设计、实现、运行和维护。 按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下六个阶段: ◆需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。 ◆概念结构设计阶段 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E—R图表示. ◆逻辑结构设计阶段 将概念结构转换为某个DBMS所支持的数据模型(例如关系模型),并对其进行优化。 ◆数据库物理设计阶段 为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。 ◆数据库实施阶段 运用DBMS提供的数据语言(例如SQL)及其宿主语言(例如C),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 ◆数据库运行和维护阶段 数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改. 设计一个完善的数据库应用系统不可能一蹴而就,它往往是上述六个阶段的不断反复。 1.7关系数据库规范化理论 为了使数据库设计的方法走向完备,人们研究了规范化理论,指导我们设计规范的数据库模式。按属性间依赖情况来区分,关系规范化的程度为第一范式、第二范式、第三范式、BCNF范式和第四范式等. 函数依赖 数据依赖是现实世界中属性间联系和约束的抽象,是数据的内在性质。 函数依赖(functional dependency,FD )是一种最重要、最基本的数据依赖.其具体定义如下: 设有关系模式R(U),X和Y是属性集U的子集,FD是行为X→Y的一个命题,只要r是R的关系,对r中任意两个元组都有“X值相等蕴涵Y值相等",那么函数依赖X→Y在关系模式R(U)中成立。 FD与侯选键之间的关系:若存在X->U,并且不存在X的任意真子集X1,使得X1->U成立,那么就称X为关系的一个侯选键. 函数依赖还有几条推理规则: 自反性;增广性;传递性;并规则;分解规则;伪传递规则; ◆模式分解:目的是消除冗余和操作异常问题 模式分解的三个定义: l 分解具有“无损连接性” l 分解要“保持函数依赖” l 分解既要“保持函数依赖”,又要具有“无损连接性”。 关系模式分解的两个特性实际涉及到两个数据库模式的等价性问题.包括数据等价和依赖等价两个方面: 数据等价:两个数据库实例应表示同样的信息内容,用“无损联接"衡量。 依赖等价:两个数据库模式应有相互逻辑关系的函数依赖集,此时数据的语义是不会出现差错的。 例:关系模式 S—L—C(SNO,SDEPT,SLOC,CNO,G)中,SLOC为学生的住处,并且每个系的学生住在同一个地方。 这里码为(SNO,CNO)。函数依赖有: (SNO,CNO) G SNO→SDEPT, (SNO,CNO) SDEPT SNO→SLOC, (SNO,CNO) SLOC SDEPT→SLOC 用投影分解把关系模式S—L-C分解为3NF范式,且保持函数依赖。 解法: ⑴对R〈U,F>中的函数依赖集F进行“极小化处理”. F= { SNO,CNO→G,SNO→SDEPT,SDEPT→SLOC }。 ⑵ R中没有不在F中出现的属性。 ⑶不存在X→AÎF,且XA=U,接着做第 = 4 \* GB2 ⑷步。 ⑷对F按具有相同左部的原则分组。 r={SC{ SNO,CNO,G },SNO,CNO→G},S—D〈{ SNO,SDEPT }, SNO→SDEPT〉, D—L<{ SDEPT,SLOC }, SDEPT→SLOC〉} ◆范式 范式(normal form,NF)是衡量关系模式的优劣的标准。范式有很多种,与数据依赖有着直接的联系。 第一范式1NF 如果关系模式R中,每个分量是不可分的数据项,就称R属于第一范式。 第二范式2NF 若关系模式R属于1NF,且每个非主属性完全函数依赖于候选关键字,则称R属于第二范式. 第三范式3NF 若关系模式R属于1NF,且每个非主属性都不传递依赖于R的候选关键字,则称R属于第三范式。 这里的主属性是指键的属性,而不是任何键的属性就是非主属性 BC范式BCNF 若关系模式R属于1NF,且每个属性都不传递依赖于R的候选关键字,则称R属于BC范式。 由上可知,4种范式之间的关系:BCNF〈3NF<2NF〈1NF 1.8数据库保护 n 概述 在数据库系统运行时,DBMS要对数据库进行监控,以保证整个系统的正常运转,保证数据库中的数据安全可靠、正确有效,防止各种错误的产生,这就是对数据库的保护,有时也称为“数据控制"。这具体包括以下四个方面: u 数据库的恢复 u 完整性控制(主键约束,外键约束,属性的值域约束) u 并发控制(琐机制) u 安全性控制(存储控制,审计,视图保护和日志监视) n 事务 事务在数据库里面是一个十分重要的概念。数据库系统运行的基本工作单位是事务.它相当于操作系统中的进程,一个事务由应用程序中的一组操作序列组成。 实际上,事务可以看作是一个原子,是一个不可分割的操作序列。事务中包括的所有操作要么都执行,要么都不执行. 事务通常以BEGIN TRANSACTION语句开始,它主要涉及两个语句。、 u 事务提交语句COMMIT u 事务回滚语句ROLLBACK 事务的特性: 事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability).这个四个特性也简称为ACID特性。 1.原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做. 2.一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态.因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,系统将事务中对数据库的所有已完成的操作全部撤消,滚回到事务开始时的一致状态。 3.隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。 4.持续性:持续性也称永久性(Permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。 数据库恢复: 尽管数据库系统中采取了各种保护措施来防止数据库的安全性和完整性被破坏,保证并发事务的正确执行,但是计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏仍是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此数据库管理系统(恢复子系统)必须具有把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)的功能,这就是数据库的恢复。 故障的种类: 一、事务内部的故障 事务内部的故障有的是可以通过事务程序本身发现的(见下面转帐事务的例子),有的是非预期的,不能由事务程序处理的。 二、系统故障 系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。例如,特定类型的硬件错误(CPU故障)、操作系统故障、DBMS代码错误、突然停电等等.这类故障影响正在运行的所有事务,但不破坏数据库。这时主存内容,尤其是数据库缓冲区(在内存)中的内容都被丢失,所有运行事务都非正常终止。发生系统故障时,一些尚未完成的事务的结果可能已送入物理数据库,有些已完成的事务可能有一部分甚至全部留在缓冲区,尚未写回到磁盘上的物理数据库中,从而造成数据库可能处于不正确的状态。为保证数据一致性,恢复子系统必须在系统重新启动时让所有非正常终止的事务回滚,强行撤消(UNDO)所有未完成事务.重做(Redo)所有已提交的事务,以将数据库真正恢复到一致状态。 三、介质故障 系统故障常称为软故障(Soft Crash),介质故障称为硬故障(Hard Crash).硬故障指外存故障,如磁盘损坏、磁头碰撞,瞬时强磁场干扰等。这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。这类故障比前两类故障发生的可能性小得多,但破坏性最大。 四、计算机病毒 计算机病毒是具有破坏性、可以自我复制的计算机程序.计算机病毒已成为计算机系统的主要威胁,自然也是数据库系统的主要威胁。因此数据库一旦被破坏仍要用恢复技术把数据库加以恢复。 恢复策略: 1.事务故障的恢复 事务故障是指事务在运行至正常终止点前被中止,这时恢复子系统应利用日志文件撤消(UNDO)此事务已对数据库进行的修改。事务故障的恢复是由系统自动完成的,对用户是透明的.系统的恢复步骤是: ⑴。 反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。 ⑵. 对该事务的更新操作执行逆操作.即将日志记录中“更新前的值”写入数据库。这样,如果记录中是插入操作,则相当于做删除操作(因此时“更新前的值"为空)。若记录中是删除操作,则做插入操作,若是修改操作,则相当于用修改前值代替修改后值. ⑶. 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。 ⑷. 如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。 2.系统故障的恢复 前面已讲过,系统故障造成数据库不一致状态的原因有两个,一是未完成事务对数据库的更新可能已写入数据库,二是已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。因此恢复操作就是要撤消故障发生时未完成的事务,重做已完成的事务. 系统故障的恢复是由系统在重新启动时自动完成的,不需要用户干预。 系统的恢复步骤是: ⑴。 正向扫描日志文件(即从头扫描日志文件),找出在故障发生前已经提交的事务(这些事务既有BEGIN TRANSACTION记录,也有COMMIT记录),将其事务标识记入重做(REDO)队列。同时找出故障发生时尚未完成的事务(这些事务只有BEGIN TRANSACTION记录,无相应的COMMIT记录),将其事务标识记入撤消(UNDO)队列。 ⑵。 对撤消队列中的各个事务进行撤消(UNDO)处理。 进行UNDO处理的方法是,反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。 ⑶。 对重做队列中的各个事务进行重做(REDO)处理。 进行REDO处理的方法是:正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作.即将日志记录中“更新后的值”写入数据库. 3.介质故障的恢复 发生介质故障后,磁盘上的物理数据和日志文件被破坏,这是最严重的一种故障,恢复方法是重装数据库,然后重做已完成的事务。具体地说就是: ⑴。 装入最新的数据库后备副本(离故障发生时刻最近的转储副本),使数据库恢复到最近一次转储时的一致性状态. 对于动态转储的数据库副本,还须同时装入转储开始时刻的日志文件副本,利用恢复系统故障的方法(即REDO+UNDO),才能将数据库恢复到一致性状态. ⑵。 装入相应的日志文件副本(转储结束时刻的日志文件副本),重做已完成的事务.即: 首先扫描日志文件,找出故障发生时已提交的事务的标识,将其记入重做队列。 然后正向扫描日志文件,对重做队列中的所有事务进行重做处理。即将日志记录中“更新后的值"写入数据库。 这样就可以将数据库恢复至故障前某一时刻的一致状态了。 介质故障的恢复需要DBA介入。但DBA只需要重装最近转储的数据库副本和有关的各日志文件副本,然后执行系统提供的恢复命令即可,具体的恢复操作仍由DBMS完成. n 并发控制 在多用户共享系统中,许多事务可能同时对同一个数据进行操作,这时候就产生了并发控制的问题.DMBS的并发控制子系统负责协调并发事务的执行,保证数据库的完整性不受破坏,同时避免用户得到不正确的数据。 同时并发方式:在多处理系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并行运行,这种并行方式称为同时并发方式。 并发控制机制是衡量一个数据库管理系统性能的重要标志之一. 数据库的并发操作通常可能带来以下的问题: u 丢失更新问题 u 不一致分析问题(读过时的数据) u 依赖于未提交更新问题(读“脏”数据) 处理并发控制的主要方法是采用封锁技术。封锁是实现并发控制的一个非常重要的技术。 封锁:所谓封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。 基本的封锁类型有两种:排它锁(Exclusive Locks,简记为X锁) 和共享锁(Share Locks,简记为S锁)。 排它锁:排它锁又称为写锁.若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。这就保证了其它事务在T释放A上的锁之前不能再读取和修改A. 共享锁:共享锁又称为读锁。若事务T对数据对象A加上S锁,则事务T可以读A,但不能修改A,其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这就保证了其它事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。有两种类型: u 排他型封锁(X封锁) u 共享型封锁(S封锁) 在运用X锁和S锁这两种基本封锁,对数据对象加锁时,还需要约定一些规则,例如应何时申请X锁或S锁、持锁时间、何时释放等。我们称这些规则为封锁协议(Locking Protocol)。对封锁方式规定不同的规则,就形成了各种不同的封锁协议。下面介绍三级封锁协议.对并发操作的不正确调度可能会带来丢失修改、不可重复读和读“脏”数据等不一致性问题,三级封锁协议分别在不同程度上解决了这一问题.为并发操作的正确调度提供一定的保证.不同级别的封锁协议达到的系统一致性级别是不同的。 一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放.事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。 二级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。二级封锁协议除防止了丢失修改,还可进一步防止读“脏"数据 三级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放.三级封锁协议除防止了丢失修改和不读‘脏’数据外,还进一步防止了不可重复读 和操作系统一样,封锁的方法可能引起活锁和死锁. 一.活锁 活锁:如果事务T1封锁了数据R,事务T2又请求封锁R,于是T2等待.T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求,T2仍然等待。然后T4又请求封锁R,当T3释放了R上的封锁之后系统又批准了T4的请求,。.。。..,T2有可能永远等待,这就是活锁的情形 二.死锁 死锁:如果事务T1封锁了数据R1,T2封锁了数据R2,然后T1又请求封锁R2,因T2已封锁了R2,于是T1等待T2释放R2上的锁。接着T2又申请封锁R1,因T1已封锁了R1,T2也只能等待T1释放R1上的锁。这样就出现了T1在等待T2,而T2又在等待T1的局面,T1和T2两个事务永远不能结束,形成死锁。 死锁的预防: 在数据库中,产生死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都请求对已被其他事务封锁的数据对象加锁,从而出现死等待。防止死锁的发生其实就是要破坏产生死锁的条件。预防死锁通常有两种方法: 一次封锁法 : 一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。一次封锁法虽然可以有效地防止死锁的发生,但也存在问题,一次就将以后要用到的全部数据加锁,势必扩大了封锁的范围,从而降低了系统的并发度。 顺序封锁法:顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。顺序封锁法可以有效地防止死锁,但也同样存在问题。事务的封锁请求可以随着事务的执行而动态地决定,很难事先确定每一个事务要封锁哪些对象,因此也就很难按规定的顺序去施加封锁。 可见,在操作系统中广为采用的预防死锁的策略并不很适合数据库的特点,因此DBMS在解决死锁的问题上普遍采用的是诊断并解除死锁的方法。 2. 死锁的诊断与解除 ① 超时法 如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。超时法实现简单,但其不足也很明显。一是有可能误判死锁,事务因为其他原因使等待时间超过时限,系统会误认为发生了死锁。二是时限若设置得太长,死锁发生后不能及时发现。 ②等待图法 事务等待图是一个有向图G=(T,U)。 T为结点的集合,每个结点表示正运行的事务;U为边的集合,每条边表示事务等待的情况。若T1等待T2 ,则T1、T2之间划一条有向边,从T1指向T2。事务等待图动态地反映了所有事务的等待情况。并发控制子系统周期性地(比如每隔1分钟)检测事务等待图,如果发现图中存在回路,则表示系统中出现了死锁。 DBMS的并发控制子系统一旦检测到系统中存在死锁,就要设法解除- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 管理 系统 功能 特征
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文