数据库原理面试题(针对考研复试整理)
数据库原理面试题整理(针对考研)
数据库原理面试题(针对考研复试整理)
参考书:《数据库原理教程》范明、叶向东著。
概述
1.术语:DBMS、数据库、数据库系统、数据模型、数据库模式、数据字典、元数据
DBMS是数据库管理系统的简称,是一种重要的程序设计系统。它由一个相互关联的数据集合和一组访问这些数据的程序组成。
数据库是持久储存在计算机中、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和存储,可以被各种用户共享,具有较小的冗余度、较高的数据独立性,并且易于扩展。
数据库系统由数据库、DBMS(及其开发工具)、应用系统和数据库管理员组成。
数据模型是一种形式机制,用于数据建模,描述数据、数据之间的联系、数据的语义、数据上的操作和数据的完整性约束条件。
数据库模式是数据库中使用数据模型对数据建模所产生设计结果。对于关系数据库而言,数据库模式由一组关系模式构成。
数据字典是DBMS维护的一系列内部表,用来存放元数据。所谓元数据是关于数据的数据。
2.DBMS的主要功能?
(1)数据定义:提供数据定义语言DDL,用于定义数据库中的数据对象和它们的结构。
(2)数据操纵:提供数据操纵语言DML,用于操纵数据,实现对数据库的基本操作(查询、插入、删除和修改)。
(3)事务管理和运行管理:统一管理数据、控制对数据的并发访问,保证数据的安全性、完整性,确保故障时数据库中数据不被破坏,并且能够恢复到一致状态。
(4)数据存储和查询处理:确定数据的物理组织和存取方式,提供数据的持久存储和有效访问;确定查询处理方法,优化查询处理过程。
(5)数据库的建立和维护:提供实用程序,完成数据库数据批量装载、数据库转储、介质故障恢复、数据库的重组和性能监测等。
(6)其他功能:包括DBMS与其它软件通信、异构数据库之间数据转换和互操作等。
3.使用数据库进行信息管理具有如下优点:
(1)数据整体结构化:在数据库中,数据的组织面向整个机构、面向所有可能的应用,而不是某个具体部门或某个特定的应用。数据结构不仅描述现实世界的对象,而且描述对象之间的联系。
(2)数据可以充分共享:数据库中的数据的面向整个机构组织使得它能够更好地被多个用户、多个应用程序共享。
(3)数据独立性:数据独立性是指数据与应用程序相互独立,包括数据的物理独立性和数据的逻辑独立性。数据的结构用数据模型定义,无需程序定义和解释。
(4)数据由DBMS同一管理和控制,使得系统能够为数据管理提供更多的支持。这些支持包括:提供事务支持、增强安全性、保证完整性、平衡相互冲突的请求和面对故障的弹性。
(5)标准化:使用数据库进行信息管理有利于制定部门标准、行业标准、工业标准、国家标准和国际标准,促进数据库管理系统和数据库开发工具的研制、开发,推动数据管理应用的健康发展。
4.数据模型的三个基本要素是:
数据结构:描述数据库的对象和对象之间的联系,是对数据的静态描述。关系模型只有一种数据结构——关系。
数据操作:数据库中各种对象允许的操作和操作规则,使对系统的动态描述。定义数据操作的方法有两种:关系代数和关系演算。
完整性约束:一组完整性规则,用以限定符合数据模型的数据库状态和状态的变化,保证数据的正确、有效和相容。关系模型的完整性约束包括实体完整性、参照完整性和用户定义的完整性。
5.解释三级模式结构
模式:也叫作逻辑模式或概念模式,是对数据库中全体数据逻辑结构和特征的描述。定义模式时要定义数据的逻辑结构、数据之间的联系、定义与数据相关的安全性、完整性的要求。模式只有一个。
外模式:也叫子模式或用户模式,它描述用户看到或使用的局部逻辑结构和特性。用户根据外模式用数据操作语言或接口去操作数据库的数据。外模式可以有多个。
内模式:也叫作存储模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。
6.什么是物理独立性和逻辑独立性?
物理独立性是指用户的应用程序与存储在磁盘上的数据库的数据是互相独立的。当内模式改变之后,只需要对模式/内模式映像修改,而不用改变应用程序。
逻辑独立性是用户的应用程序与数据库的逻辑结构是相互独立的,当模式改变时,只需要改变模式/外模式映像即可,不用改变应用程序。
7.什么是二级映像?
为了能实现数据库三个模式之间的联系和转化,才有了这两级映像。
外模式/模式映像
模式/内模式映像
8.DBA的主要职责包括:
(1)决定数据库中的信息内容和数据的逻辑结构。
(2)决定数据库的存储结构和存取策略。
(3)定义数据的安全性要求和完整性约束条件。
(4)数据库系统的日常维护:周期性转储数据库、故障恢复、监督系统运行、优化系统性能、设置必要的审计。
(5)重组和重构数据库。
关系数据库
1.术语
关系,通俗地讲就是一张二维表,表名就是关系名
属性:二维表中的列称为属性
元组:二维表中一行称为一个元组,元组中的每一个属性值称为元组分量
关系模式:二维表的结构。可以表示未REL(A,B,C,D)
候选码:如果一个属性集的值能够唯一标识一个关系的元素,又不含有多余的属性,就称他为候选码。一个关系上可以有多个候选码。
主键:当一个关系有多个候选码时,可以选出一个作为主键。
主属性:包含在任意候选码中的属性
非主属性:不包含在候选码中的属性
外键:如果关系模式R中的属性K是其他关系模式的主键,则说K是关系模式R的外键。
2.试述实体完整性与参照完整性的规则?
实体完整性规则:要求关系中元组在组成主键的属性上不能有空值。
参照完整性规则:如果属性集K是关系模式R1的主键,同时K也是关系模式R2的属性,但不是R2的主键,那么称K为R2的外键。在R2中,K的取值要么是空值要么是R1的某个主键的值。关系模式R1称为被参照关系,R2称为参照关系。
3.自然连接与等值连接的异同?
自然连接和等值连接的相同之处是二者都是根据属性值相等进行连接。二者的不同之处是:自然连接在相同属性上进行相等比较,并投影去掉重复属性;等值连接并不要求一定在相同属性上进行相等比较,也不删除重复属性。
4.完整性约束的作用
作用是保证数据库中数据的正确性。
1、执行插入操作时,检查三种完整性。
2、执行删除操作时一般检查参照完整性。如果删除的是参照关系中的元组,不用检查如果删除的是被参照关系的元组,需要检查,如果未被引用可以执行删除。如果被引用分三种情况:
①不可以执行删除,直接拒绝;②可以删除,但需要同时删除参照关系中引用了该元组的对应元组,称为级联删除。③可以删除,但参照关系中引用了该元组的对应元组的外键设置为空值。
SQL
1.SQL的基本特点是:
(1)集多种数据库语言于一体:SQL语言集数据定义、数据操纵和数据控制(DCL)功能于一体,语言简洁、风格统一,使用SQL就可以独立完成数据管理的核心操作。
(2)高度非过程化:使用SQL语言时,用户只需要说明做什么,而不必指出怎么做。
(3)面向集合的操作方式:SQL语言采用集合操作方式,其运算对象、运算结果均是元组的集合。
(4)一种语法两种使用方式:SQL既可以作为一种自含式语言独立使用,也可以作为一种嵌入式语言与通用程序设计语言配合使用。在两种使用方式下,SQL语言的语法结构基本一致。
(5)功能强大,语言简洁:SQL是一种完整地数据库语言,其功能涵盖数据定义、数据操纵、数据控制等数据管理的主要需求。但SQL语言相对比较简洁,其核心动词只有9个。另外,SQL 语言的语法简单,与英语口语的风格类似,易学易用。
2.SQL的基本功能包括:
(1)SQL的数据定义语言(DDL)提供了模式定义、修改和删除,基本表定义、修改和删除、域定义修改和删除。
(2)SQL的数据操纵语言(DML)提供了数据查询子语言。SQL的数据查询子语言是关系完备的,并且具有关系代数和关系演算的双重特征。
(3)SQL DML不仅包括数据查询,而且包括数据更新(数据插入、删除和修改)语句,允许用户更新数据库。
(4)SQL DDL还允许用户定义视图,并且SQL DML允许用户对视图进行查询和受限的更新操作。
(5)SQL DDL允许用户定义各种完整性约束条件,并在数据库访问时自动检查,确保数据库操作不会破坏完整性约束条件。
(6)SQL DDL还包括授权定义,用来定义用户对数据库对象(基本表、视图等)的访问权限,防止非法访问,确保数据库的安全性。
(7)SQL还支持事务,提供了定义事务开始和结束的语句。
3.SQL的数据定义语言DDL包括
模式定义、修改和删除;
基本表定义、修改和删除;
域定义、修改和删除;
视图的定义、修改和删除;
断言的定义、修改和删除;
授权的定义与回收。
4.什么是存储过程?
一组为了完成特定功能的sql语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果需要参数)来执行它。
1、当一个业务同时对多个表进行处理的时候采用存储过程比较合适。
2、复杂的数据处理用存储过程,如有些报表处理
3、多条件多表联合查询,并做分页处理
5.基本表?视图?区别与联系?
所谓基本表是其关系元组存储在数据库中的表。视图是一种用查询定义的命名的导出表,其关系不存储在数据库中,而是在查询时执行定义视图的查询,由基本表导出。
基本表与视图之间的主要区别是前者对应的关系存储在数据库中,而后者对应的关系不在数据库中存储(物化视图除外)。从使用角度而言,对于查询,二者没有区别;而对于更新,只有可更新视图才可以更新。
二者之间的联系体现在:所有视图都是直接或间接由基本表定义的。
6.视图的优点?
使用视图的优点有:
(1)使用视图可以使一些查询表达更加简洁。
(2)视图提供了一定程度的逻辑独立性。
(3)视图与授权配合使用,可以在某种程度上对数据库起到保护作用。
(4)视图使得用户能够以不同角度看待相同的数据。
7.嵌入式SQL?
在需要使用数据库管理数据时,使用SQL语言建立数据库,并对数据进行操作比使用其他通用程序设计语言更便捷,常常也更有效。然而,由于(1)SQL能够表达常见的查询,但是不能表达所有查询。(2)一些非数据库操作,如打印报表、将查询结果送到图形用户界面中,都不能用SQL语句实现。一个应用程序通常包括多个组件,查询、更新只是一个组件,而许多其他组件都需要用通用编程语言实现。这时,我们需要使用嵌入式SQL,而不是单独使用SQL或某种通用程序设计语言。
完整性与安全性
1.什么是数据库的完整性?什么是数据库的安全性?
数据库的完整性是指数据库中的数据的正确性、一致性和相容性。数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。数据的完整性和安全性是一个问题的两个方面,都是为了保护数据库中的数据。前者旨在保护数据库中的数据,防止合法用户对数据库进行修改时破坏数据的一致性;而后者旨在保护数据库,防止未经授权的访问和恶意破坏和修改。
2.为了维护数据库的完整性,DBMS应提供哪些支持?
(1)说明和定义完整性约束条件的方法:DBMS的DDL允许用户根据实际问题的语义说明和定义各种完整性约束条件。
(2)完整性检查机制:DBMS在数据更新可能破坏完整性时自动进行完整性检查。检查可以在更新操作执行时立即执行,也可以在事务提交时进行。
(3)违约处理:当数据更新违反完整性约束时,DBMS应当采取相应的措施,确保数据的完整性。
3.实体完整性的定义与违约处理?
实体完整性在CREATE TABLE中用PRIMARY KEY定义。一种是定义为列级约束条件,另一种是定义为表级约束条件。
当用户程序对基本表插入一条记录或对主码列进行更新操作时,会进行如下检查
(1)检查主码值是否唯一,如果不唯一则拒绝插入或修改
(2)检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改
4.参照完整性的定义与违约处理?
关系模型的参照完整性在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码,用REFERENCES短语指明这些外码参照哪些表的主码。
当不一致发生时,系统可以采用如下策略处理:
(1)拒绝(NO ACTION)执行:不允许该操作执行,该策略一般设置为默认策略
(2)级联(CASCADE)操作:当删除或修改被参照表的一个元组导致与参照表(SC)的不一致时,删除或修改参照表中的所有导致不一致的元组。
(3)设置为空值:当删除或修改被参照表的一个元组时造成了不一致,则将参照表中所有造成不一致的元组的对应属性设置为空值。
(4)置缺省值:进行更新,且对更新导致违反参照完整性的参照关系元组的外码置空值;其中缺省值必须是被参照关系某元组主码上的值。
5.用户自定义完整性相关?
属性约束
关系约束
断言 断言是一种命名约束,表达了数据库状态必须满足的逻辑条件
域约束 在原理上类似于编程语言中变量的类型,就像不同变量可以有相同的数据类型,不同的属性可以有相同的域,声明一个域包括:域值类型,缺省值,域值的格式,对取值范围或取值集合的约束,不同域上的值不能比较
6.触发器的作用,什么时候用触发器,创建触发器的步骤?
(1)触发器的作用:
触发器是一种程序模块,是数据库的一种自动处理机制。触发器主要作用是保证数据库的安全性,例如:触发器通常通过对操作的记录来对数据库进行操作的审计,或实现复杂的约束条件
(2)什么时候用触发器:
根据触发器的触发条件可以分为3种触发器:分别为dml触发器、instead of触发器、ddl触发器。触发器的调用方式不同于存储过程和函数,它是通过“事件”来激活的。所谓事件,就是数据库的动作或用户的操作。触发器不能由用户显示调用,而是只有当触发事件发生并被捕捉到时,才会被触发。(事件-条件-动作模型)
(3)创建触发器的步骤:
创建触发器首先需要create trigger权限
触发器有3中类型:dml触发器、instead of触发器、ddl触发器。在创建语句上大致可以分为4步:
1、定义触发器
2、触发条件(区分触发器的类型)
3、声明部分
4、主体部分
7.实现数据库安全性控制的常用方法和技术?
(1)用户标识和鉴别:
该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才能提供系统的使用权
(2)存取控制
通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未授权的人员无法存取数据
(3)视图机制
为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
(4)审计
建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人,时间和内容等。
(5)数据加密
对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。
关系数据库的设计理论
1.为什么范式会出现?
在数据库设计中,不合理的设计会导致数据冗余、更新异常、插入异常、删除异常。这些都是由于不合理的数据依赖导致的,范式理论的出现为了解决不合理的数据依赖,是数据库设计规范化。
2.解释1到4范式和BC范式?
1NF:数据库中的每一列都是不可分割的简单属性。不满足这一条的数据库就不能称为关系型数据库。
2NF:在1NF的基础上,非码属性必须完全依赖于候选码
3NF:在2NF基础上,任何非主属性不依赖于其它非主属性。
BCNF:在1NF的基础上,所有的函数依赖,例如X->Y,决定因素X中都包含了R的一个候选码
4NF:关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。
规范化的过程中:
1NF到2NF消除了非主属性对码的部分函数依赖;
2NF到3NF消除了非主属性对码的传递函数依赖;
3NF到BCNF消除了主属性对码的部分函数依赖和传递函数依赖;
BCNF到4NF消除了非平凡且非函数依赖的多值依赖。
数据库设计
1.数据库设计的步骤?
(1)需求分析: 分析用户的需求,包括数据、功能和性能需求;生成系统分析报告。
(2) 概念结构设计:主要采用E-R模型进行设计,包括画E-R图;生成全局E-R图
.(3)逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换,进行关系规范化;
(4) 数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存储路径;
(5) 数据库的实施:包括编程、测试和试运行;
(6)数据库运行和维护:系统的运行和数据库的日常维护
2.什么是数据库设计?
是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。
3.数据字典的内容及其作用?
数据字典通常包括数据项、数据结构、数据流、数据存储、处理过程5个部
1.数据项:数据项描述 = {数据项名,数据项含义说明,别名,数据类型,取值范围……}
2.数据结构:数据结构反映了数据之间的组合关系。数据结构描述 = {数据结构名,含义说明,组成:{数据项或数据结构}}
3.数据流:数据流是数据结构在系统内传输的路径。数据流描述 = {数据流名,数据流来源,数据流去向,平均流量,高峰期流量,组成:{数据结构}}
4.数据存储:数据存储是数据结构停留或保存的地方。数据存储描述 = {数据存储名,说明,编号,输入的数据流,输出的数据流,组成:{数据结构},数据量,存取频度,存取方式}
5.处理过程:处理过程的具体处理逻辑一般用判定表或判定树来描述。处理过程描述 = {处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}概念结构设计
需求分析阶段完成数据字典(用于表示收集到的数据)和一组数据流程图(Data Flow Diagram,DFD)
4.设计概念结构通常有四类方法
自顶向下:即首先定义全局概念结构的框架,然后逐步细化
自底向上:即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构
逐步扩张:首先定义最重要的核心概念结构,然后向外扩充
混合策略:即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。
5.逻辑设计阶段主要的内容和步骤
将E-R图转化为关系数据模型;
关系模式规范化;
关系模式优化。
6.E-R模式合并时发生的三种冲突
1、属性冲突:
属性域冲突:属性值的类型、取值范围不一致。例如学生的学号是用整数还是用字符型表示?
属性取值单位冲突。
2、命名冲突:
同名异义:不同意义的对象在不同的局部采用了相同的名字。
异义同名:通一意义的对象在不同的局部应用中具有不同的名字。
1和2中的冲突靠协商解决。
3、结构冲突:
统一对象在不同的局部有不同的身份。
①一个对象在某个局部作为实体,而在另一个局部成了属性。解决办法,将实体转化为属性或者将属性转化为实体,使同一对象有相同的身份。
②容易对象在不同的局部应用中对应的实体属性组成不完全相同。解决办法,对实体的属性取在不同局部中的并集。
③实体之间的联系在不同的局部应用中具有不同的类型。如在一个局部中是一对一联系,在另一个中是多对多联系。解决办法,根据应用的语义对实体联系的类型进行综合或调整。
7.物理设计的内容和步骤
1、确定数据库的物理结构
2、对所设计的物理结构进行评价
8.数据库的运行与维护,从以下几个角度考虑:
1.数据库的转储和恢复
2.数据库的安全性、完整性控制
3.数据库性能的监督、分析和改造
4.数据库的重组织和重构造
事务与并发控制
1.并发控制?
数据库中要有并发机制的主要有如下两条理由:
(1) 提高吞吐量和资源的利用率;
(2) 减少平均等待时间和平均响应时间。
并发控制技术能够保证事务的ACID性质,主要是保证事务的隔离性和数据库的一致性。
2.事务的定义和事务的四大特性?
1、原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么全部不执行。 原子性保证了事务的一致性。
2、一致性(Consistency):要求事务执行完成后,将数据库中一个一致性状态变为另一个一致性状态。所谓的一致性状态时指数据库中的数据满足完整性约束,它是一种以一致性规则为基础的逻辑属性。
3、隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。 即使有多个事务并行执行,结果就像每个成功的事务按串行调度执行一样,又叫可串行性,
4、持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障。
3.事务并发执行可能导致哪几类数据不一致?怎么解决?
事务并发执行可能导致丢失修改、读“脏”数据和不可重复读等问题。
数据库系统解决这些问题的主要方法是采用封锁技术。一级锁协议可以保证不丢失修改,二级封锁协议可以避免读“脏”数据,而三级封锁协议可以保证可重复读。
4.封锁?封锁类型?
封锁就是事务T在对某个数据对象操作之前,先向系统发出加锁请求,加锁后事务T就对该数据对象有了一定的控制权,在事务T释放它的锁之前,其它事务不能更新该数据对象。
共享锁和排它锁是两种基本锁类型。
共享锁又称读锁。如果事务T获得了数据对象Q上的共享锁,则T可以读但不能写Q,并且在T释放Q上的S锁之前,其它事务只能获得Q上的S锁,而不能获得Q上的X锁。
排他锁又称写锁。如果事务T获得了数据项Q上的排它锁,则T既可以读又可以写Q,但是在T释放Q上的X锁之前,其它事务既不能获得Q上的S锁,也不能获得Q上的X锁。
5.活锁?
锁又称饥饿,是某个事务因等待锁而处于无限期等待状态。
活锁是不公平的锁调度导致的。可以采用先来先服务的策略来避免某个事务无限期期等待。即当多个事务请求封锁同一数据对象时,封锁子系统按请求封锁的先后次序对事务排队。数据对象上的锁一旦释放,就将锁授予申请队列中的第一个事务。
6.死锁?
死锁是两个或两个以上的事务之间的循环等待现象。死锁发生时,两个或多个事务都处于等待状态,每个事务都等待其它事务释放锁,以便可以继续执行。
预防死锁的基本方法是破坏死锁产生的条件,可以采用一次封锁、顺序封锁方法。
7.死锁如何检测和预防
检测:超时法,设置时间,超过则死锁;
等待图法,如果图中有回路,这就是死锁。
预防:一次封锁法,事务一次性对要使用的属于对象加锁,不加锁就不能运行;
顺序封锁法,预先对数据对象规定一个封锁顺序,所有的事务都按照这个封锁顺序来。
8.什么是事务的可串行化
多个事务并发执行时,当且尽当结果与某一次顺序串行执行的结果相同,称这种调度为可串行化调度。可串行化调度是并行调度正确的唯一准则。
9.描述两段锁协议
协议规定(1)对任何数据读写之前,必须要获得该数据的封锁;(2)释放了一个锁之后,事务不能再获取其它的封锁。第一阶段只获得锁,第二阶段只释放锁。
两段锁协议可以保证事务的可串行化,是充分条件。
数据库恢复技术
1.故障的种类
1.事务内部的故障:
2.系统故障:如操作系统故障,CPU故障,系统断电
3.介质故障:如磁盘损坏、磁头碰撞、瞬时强磁场干扰等
4.计算机病毒
2.恢复策略
REDO:重做,正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作
UDNO:撤销,反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作
COMMIT:提交,将事务中所有对数据库的更新写回到磁盘上的物理数据库中,事务正常结束
ROLLBACK:回滚,事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成操作全部撤销,回滚到事务开始时的状态
3.故障的种类和恢复方法
1,事务故障及其恢复:事务故障表示由非预期的、不正常的程序结束所造成的故障。造成程序非正常结束的原因包括输人数据错误、运算溢出、违反存储保护、并行事务发生死锁等。发生事务故障时,被迫中断的事务可能已对数据库进行丁修改,为了消除该事务对数据库的影响,要利用日志文件中所记载的信息,强行回滚该事务,进行undo操作,将数据库恢复到修改前的初始状态。
2、系统故障:系统故障是指系统在运行过程中,由于某种原因,造成系统停止运转,致使所有正在运行的事务都以非正常方式终止,要求系统重新启动。引起系统故障的原因可能有硬件错误(如CPu故障、操作系统)或DBMS代码错误、突然断电等。
系统故障发生后,对数据库的影响有以下两种情况
(1)一些未完成事务对数据库的更新已写入数据库,这样在系统重新启动后,要undo所有未完成的事务末完成事务。(2)有些事务处于部分提交状态,进行redo操作。
3、介质故障:介质故障是指系统在运行过程中,由于辅助存储器介质受到破坏,使存储在外存中的数据部分或全部丢失。恢复时需要装入数据库副本
4.述数据转储技术
根据转储时系统状态
1、静态转储;停止数据库中所有事务进行转储操作。
2、动态转储:可以运行事务并转储,但要在转储期间要记录数据活动的日志。恢复时通过日志和副本共同恢复。
根据转储量
1、海量转储,一次性转储全部数据。
2、增量转储,只转储更新过的数据,适用于更新频繁的系统。
5.使用日志的数据库恢复技术
推迟更新技术和即时更新技术
推迟更新技术协议:每个数据到达提交点之前不能更新数据库;一个事务的所有更新操作对应的日志记录写入永恒存储器之前,该事务不能到达提交点。
即时更新技术协议:所有“更新类型”的日志记录安全地存储到永恒存储器之前,事务T不能更新数据库,且不允许事务T提交。
更多推荐
所有评论(0)