习题答案

更新时间:2023-03-08 05:21:23 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

习题1

1.名词解释:

DB:是长期存储在计算机内、有组织的、统一管理的相关数据的集合。

DBMS:是位于用户与0S之间的一层数据管理软件,它为用户或应用程序提供访问DB的方法。

DBS:是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即采用数据库技术的计算机系统。

外模式:是用户用到的那部分数据的描述。

概念模式:数据库中全部数据的整体逻辑结构的描述。 内模式:DB在物理存储方面的描述。

实体:客观存在、可以相互区别的事物称为实体。 属性:实体有很多特性,每一个特性称为一个属性。

实体标识符:能惟一标识实体的属性或属性集,称为实体标识符。

分布式数据库:是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个结点具有独立处理的能力(称为场地自治),可以执行局部应用。同时,每个结点也能通过网络通信子系统执行全局应用。

2.文件系统阶段的数据管理有哪些特点?

答:文件系统阶段主要有5个特点:数据以“文件”形式长期保存;数据的逻辑结构与物理结构有了区别;文件组织已多样化;数据面向应用;对数据的操作以记录为单位。

3.文件系统阶段的数据管理有些什么缺陷?试举例说明。 答:主要有3个缺陷:数据冗余;数据不一致性;数据联系弱。

例如学校里教务处、财务处、保健处建立的文件中都有学生详细资料,如联系电话,家庭住址等。这就是“数据”冗余;如果某个学生搬家,就要修改3个部门文件中的数据,否则会引起同一数据在3个部门中不一致;产生上述问题的原因是这3个部门的文件中数据没有联系。

4. 数据库阶段的数据管理有哪些特色?

答:主要有5个特点:采用数据模型可以表示复杂的数据结构;有较高的数据独立性; 为用户提供了方便的用户接口;提供了4个方面的数据控制功能;对数据的操作以数据项为 单位,增加了系统的灵活性。

5.实体之间联系有哪几种?分别举例说明?

答:1:1联系:如果实体集El中每个实体至多和实体集E2中的一个实体有联习,反之亦然,那么El和E2的联系称为“l:1联系”。例如:电影院的座位和观众实体之间的联系。

1:N联系:如果实体集El中每个实体可以与实体集E2中任意个(零个或多个)实体有联系,而E2中每个实体至多和El中一个实体有联系,那么El和E2的联系是“1:N联系”。 例如:部门和职工两个实体集之间的联系。

M:N联系:如果实体集El中每个实体可以与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么El和E2的联系称为“M:N联系”。例如:工程项目和职工两个实体集之间的联系。

6.分析层次模型、网状模型和关系模型的特点。

答:层次模型的数据结构为树结构,记录之间联系通过指针实现,查询较快,但DML属于过程化的语言,操作复杂。

网状模型的数据结构为有向图,记录之间联系通过指针实现,查询较快,并且容易实现M:N联系,但DML属于过程化的语言,编程较复杂。

关系模型的数据结构为二维表格,容易为初学者理解。记录之间联系通过关键码实现。DML属于非过程化语言,编程较简单。

面向对象模型能完整描述现实世界的数据结构,具有丰富的表达能力,能表达嵌套、递归的数据结构。但涉及的知识面较广,用户较难理解,这种模型尚未普及。

7.简述数据库系统的两级映像和数据独立性之间的关系。

答:为了能够在系统内部实现外部级、概念级和内部级3个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映像:

外模式/模式映像定义通常包含在各自外模式的描述中,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性,应用程序是依据外模式编写的;

模式/内模式映像包含在模式描述中,此映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系,它保证了数据与程序的物理独立性,所以称为数据的物理独立性。

8.分析分布式数据库的体系结构。

答: 分布式DBS的体系结构分为四级:全局外模式、全局概念模式、分片模式和分配模式。

(1)全局外模式:它们是全局应用的用户视图,是全局概念模式的子集。

(2)全局概念模式:全局概念模式定义了分布式数据库中所有数据的逻辑结构。

(3)分片模式:分片模式定义片段以及定义全局关系与片段之间的映象。这种映象是一对多的,即每个片段来自一个全局关系,而一个全局关系可分成多个片段。

(4)分配模式:片段是全局关系的逻辑部分,一个片段在物理上可以分配到网络的不同场地上。分配模式根据数据分配策略的选择定义片段的存放场地。

9.当前主要的几种新型数据库系统各有什么特点?用于什么领域?

答:主要有:分布式数据库系统、面向对象数据库系统、专家数据库系统、多媒体数据库系统、空间数据库系统、工程数据库系统。

分布式数据库系统分布式数据库系统是地理上分布在计算机网络的不同结点,逻辑上属于同一系统的数据库系统,它不同于将数据存储在服务器上供用户共享存取的网络数据库系统,分布式数据库系统不仅能支持局部应用,存取本地结点或另一结点的数据,而且能支持全局应用,同时存取两个或两个以上结点的数据。分布式数据库的主要特点是:数据是分布的;数据是逻辑相关的;结点的自治性。分布式数据库系统广泛地应用于大企业,多种行业及军事国防等领域。

面向对象数据库(简称OODB)有以下特点:

使用对象数据模型将客观世界按语义组织成由各个相互关联的对象单元组成的复杂系统 。对象可以定义为对象的属性和对象的行为描述,对象间的关系分为直接和间接关系;语义上相似的对象被组织成类,类是对象的集合,对象只是类的一个实例,通过创建类的实例实现对象的访问和操作;对象数据模型具有“封装”、“继承”、“多态”等基本概念;方法实现类似于关系数据库中的存储过程,但存储过程并不和特定对象相关联,方法实现是类的一部分。面向对象数据库可以实现一些带有复杂数据描述的应用系统,如时态和空间事务、多媒体数据管理等。

专家数据库系统(Expert DataBase System,EDBS)是人工智能与数据库技术相结合的产物。它具有两种技术的优点,而避免了它们的缺点。它是一种新型的数据库系统,它所涉及的技术除了人工智能和数据库以外还有逻辑、信息检索等多种技术和知识。

多媒体数据库系统随着信息技术的发展,数据库应用从传统的企业信息管理扩展到计算机辅助设计(Computer Aided Design,CAD)、计算机辅助制造

(Computer Aided Manufacture,CAM)、办公自动化(Office Automation,OA)、人工智能(Artificial Intelligent,AI)等多种应用领域。这些领域中要求处理的数据不仅包括传统的数字、字符等格式化数据,还包括大量多种媒体形式的非格式化数据,如图形、图像、声音等。多媒体数据库系统(Multimedia Database System,MDBS)是能存储和管理多种媒体的数据库系统。

空间数据库系统的特点:数据量庞大。空间数据库面向的是地理学及其相关对象,而在客观世界中它们所涉及的往往都是地球表面信息、地质信息、大气信息等及其复杂的现象和信息,所以描述这些信息的数据容量很大,容量通常达到 GB级;具有高可访问性。空间信息系统要求具有强大的信息检索和分析能力, 这是建立在空间数据库基础上的,需要高效访问大量数据;空间数据模型复杂。空间数据库存储的不是单一性质的数据,而是涵盖了几乎所有与地理相关的数据类型。空间数据库系统有效地利用卫星遥感资源迅速绘制出各种经济专题地图。

工程数据库系统特点:主要数据库是图形和图象数据;数据库规模庞大;设计处理的状态是直观和暂时的;设计的多次版本信息都要予以保存;事务是长寿的,从设计到生产周期较长;数据要求有序性;数据项可多达几百项。工程数据库系统主要用于CAD/CAM领域。

习题2

1.名词解释:

超键:能惟一标识元组的属性或属性集,称为关系的超键。 候选键:不含有多余属性的超键,称为候选键。 实体完整性规则:实体的主键值不允许是空值。 参照完整性规则:依赖关系中的外键值或者为空值,或者是相应参照关系中某个主键值。 函数依赖:设有关系模式R(U),X和Y是属性集U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖(Functional Dependency,简记为FD)于X,记作X→Y。

无损分解:当对关系模式R进行分解时,R的元组将分别在相应属性集进行投影而产生新的关系。如果对新的关系进行自然连接得到的元组集合与原关系完全一致,则称该分解为无损分解。

2NF:如果关系模式R属于1NF,且它的每一个非主属性都完全函数依赖于R的候选键,则称R属于第二范式,简记为R∈2NF。

3NF:如果关系模式R属于1NF,且每个非主属性都不传递依赖于R的候选键,那么称R属于第三范式,简记为R∈3NF。

2.为什么关系中的元组没有先后顺序,且不允许有重复元组?

答:由于关系定义为元组的集合,而集合中的元素是没有顺序的,因此关系中的元组也就没有先后的顺序(对用户而言)。这样既能减少逻辑排序,又便于在关系数据库中引进集合论的理论。

3.笛卡尔积、等值连接和自然连接三者之间有什么区别?

答:笛卡儿积是一个基本操作,而等值连接和自然连接是组合操作。 设关系R的元数为r,元组个数为m;关系S的元数为s。,元组个数为n。 那么,R×S的元数为r+s,元组个数为m×n;

R S的元数也是r+s,但元组个数小于等于m×n;

iθj R S的元数小于等于r+s,元组个数也小于等于m×n: 4.设有关系R和S,如图2.17所示。

R A 3 B 6 C 7 S A 3 B 4 C 5 计算R∪S,R-S,R∩S,R×S,π3,2(S),σB<'5'(R),R S,R S。 2 5 7 7 2 2<2 3 答: 7 2 3

B 4 C 4 R-SA B C R∪S A R×S R.A R.B R.C S.A S.B S.C 3

3 6 7 3 6 7 3 4 5 3 6 7 图2.17 关系R和S 2 5 7 3 6 7 7 2 3 2 5 7

7 2 3 2 5 7 3 4 5 4 4 3

4 4 3 2 5 7 7 2 3 B C R∩S A 3 4 5 7 2 3 3 4 5 7 2 3 7 2 3 7 2 3 π3,2(S) C B 4 4 3 3 4 5 σB<’5’(R) A B C

7 2 3 3 2 4 4 3 R S A R S R.A R.B R.C S.A S.B S.C 7 2<2 7 2 3 3 4 5

5.设教学管理数据库中有三个关系 S(SNO,SNAME,AGE,SEX,SDEPT) SC(SNO,CNO,GRADE)

C(CNO,CNAME,CDEPT,TNAME) 试用关系代数表达式表示下列查询语句:

(1) 检索LIU老师所授课程的课程号、课程名。 (2) 检索年龄大于23岁的男学生的学号与姓名。

(3) 检索学号为S3学生所学课程的课程名与任课教师名。 (4) 检索至少选修LIU老师所授课程中一门课的女学生姓名。 (5) 检索WANG同学不学的课程的课程号。 (6) 检索至少选修两门课程的学生学号。 解:

⑴ πCNO,CNAME(σTEACHER=’LIU’(C)) ⑵ πSNO,SNAME(σAGE>’23’∧SEX=’M’(SC)) ⑶ πCNAME,TEACHER(σSNO=’S3’(SC C)) ⑷ πSNAME(σSEX=’F’∧TEACHER=’LIU’(S SC C)) ⑸ πCNO(C)-πCNO(σSNAME=’WANG’(S SC)) ⑹ π1(σ1=4∧2≠5(SC×SC))

5 4 4 4 3 7 2 3 B 2 C 3 6.设关系模式R(ABCD),F是R上成立的FD集,F={A→B,C→B},则相对于F,试写出关系模式R的候选键。并说明理由。

解:R的关键码为ACD。因为从已知的F,A→B,只能推出ACD→ABCD。 7.设关系模式R(ABCD),F是R上成立的FD集,F={AB→CD,A→D}。 (1) 试说明R不是2NF模式的理由。

(2) 试把R分解成2NF模式集。

答:⑴ 从已知的函数依赖集F,可知R的候选键是AB。另外,由AB→CD可推出AB→D,再由A→D可知AB→D是部分(局部)函数依赖,因此R不是2NF模式。

⑵ 如果将R分解成{AD,ABC},则是2NF模式集。

8.设有关系模式R(职工编号,日期,日营业额,部门名,部门经理),该模式统计商店里每个职工的日营业额,以及职工所在的部门和经理信息。如果规定:每个职工每天只有一个营业额;每个职工只在一个部门工作;每个部门只有一个经理。试回答下列问题: (1) 根据上述规定,写出模式R的基本FD和候选键。

(2) 说明R不是2NF的理由,并把R分解成2NF模式集。 (3) 进而分解成3NF模式集。 解:

⑴ 基本的FD有三个:

(职工编号,日期)→ 日营业额 职工编号 → 部门名 部门名 → 部门经理 R的关键码为:(职工编号,日期)。 ⑵ R中有两个这样的FD:

(职工编号,日期)→(部门名,部门经理) 职工编号 →(部门名,部门经理)

可见前一个FD是局部依赖,所以R不是2NF模式。 R应分解Rl(职工编号,部门名,部门经理) R2(职工编号,日期,日营业额) 此处,Rl和R2都是2NF模式。 ⑶ R2已是3NF模式。

在R1中,存在两个FD:职工编号 → 部门名 部门名 → 部门经理

因此,“职工编号 → 部门经理”是一个传递依赖,Rl不是3NF模式。 R1应分解成R11(职工编号,部门名) R12(部门名,部门经理)

这样,ρ={R11,Rl2,R2}是一个3NF模式集。

9.设有关系模式R(运动员编号,比赛项目,成绩,比赛类别,比赛主管),如果规定:每个运动员每参加一个比赛项目,只有一个成绩;每个比赛项目只属于一个比赛类别;每个比赛类别只有一个比赛主管。试回答下列问题:

(1) 根据上述规定,写出模式R的基本FD和候选键。 (2) 说明R不是2NF的理由,并把R分解成2NF模式集。 (3) 进而分解成3NF模式集。

解:⑴ 基本的FD有3个:

(运动员编号,比赛项目)→ 成绩

比赛项目 → 比赛类别

SELECT @S_MAX=MAX(GRADE)

FROM SC JOIN C ON SC.CNO=C.CNO AND C.CNAME=@C_NAME RETURN @S_MAX

END GO

10.在教学管理数据库中,创建用户定义函数SNO_INFO,根据输入的课程名称,输出选修该门课程的学生学号、姓名、性别、系部、成绩。

解:

USE JXGL GO

CREATE FUNCTION SNO_INFO (@C_NAME CHAR(8)) RETURNS TABLE AS

RETURN(SELECT S.SNO,SNAME,SEX,SDEPT,GRADE

FROM S JOIN SC ON S.SNO=SC.SNO JOIN C ON SC.CNO=C.CNO AND C.CNAME=@C_NAME)

GO

习 题 9

1.名词解释:

事务 封锁 保存点 死锁 答:

事务:就是用户对数据库进行的一系列操作的集合,对于事务中的系列操作要么全部完成,要么全部不完成。

封锁:是使事务对它要操作的数据有一定的控制能力。封锁机制主要是为了对并发操作进行控制,对干扰进行封锁,保证数据的一致性和准确性。

保存点:是事务在某一点处设置一个标记,这样当使用回滚语句时,可以不用回滚到事务的起始位置,而是回滚到标记所在的位置。

死锁:它是指系统中有两个或两个以上的事务都处于等待状态,并且每个事务都在等待其中另一个事务解除封锁,它才能继续执行下去,结果造成任何一个事务都无法继续执行。

2.简述显式事务与隐式事务的区别。

答:显式事务是由用户自己指定的事务,使用关键字BEGIN TRANSACTION和ROLLBACK TRANSACTION或COMMIT TRANSACTION进行事务的开始和终止事务的操作。

隐式事务又称自动提交事务。它在执完语句后自动提交事务,而且可以通过SET IMPLICIT_TRANSACTIONS ON /OFF来打开和关闭隐式事务。

3.描述并发控制可能产生的影响。

答:多个用户访问同一个数据资源时,如果数据存储系统没有并发控制,就会出现并发问题;比如当两个或多个事物选择同一行,然后根据最初选定的值更新该行是,就会出现更新丢失的问题;当一个事物多次访问同一行且每次读取不同数据时,会出现不可重复读问题;当对某行执行插入或删除操作,而该行属于某事务正在读取的行的范围时,就会出现幻

读问题;即读出的是不正确的临时的临时数据。

4.如何在事务中设置保存点,保存点有什么用途?

答:保存点提供了一种机制,用于回滚部分事务。可以使用 SAVE TRANSACTION savepoint_name 语句创建一个保存点,然后再执行 ROLLBACK TRANSACTION savepoint_name 语句回滚到该保存点,从而无须回滚到事务的开始。在不可能发生错误的情况下,保存点很有用。在很少出现错误的情况下使用保存点回滚部分事务,比让每个事务在更新之前测试更新的有效性更为有效。更新和回滚操作代价很大,因此只有在遇到错误的可能性很小,而且预先检查更新的有效性的代价相对很高的情况下,使用保存点才会非常有效。

5.如何才能尽量避免发生死锁?

答:虽然不能完全避免死锁,但可以使死锁的数量减至最少。防止死锁的途径就是不能让满足死锁的条件发生,为此,用户需要遵循以下原则:

(1) 尽量避免并发地只执行更新数据的语句。

(2) 要求每个事务一次就将所有要使用的数据全部加锁,否则就不予执行。

(3) 预先规定一个封锁顺序,所有的事务都必须按这个顺序对数据执行封锁。例如,不同的过程在事务内部对对象的更新执行顺序尽量保持一致。

(4) 每个事务的执行时间不可太长,在业务允许的情况下可以考虑将事务分割成为几个小事务来执行。

(5) 将逻辑上在一个表中的数据尽量按行或列分解为若干小表,以便改善对表的访问性能。一般来讲,如果数据不是经常被访问,那么死锁就不会经常发生。

(6) 将经常更新的数据库和查询数据库分开。

6.在教学管理数据库中,创建一个事务,将所有“C3”号课程的女同学加5分,并提交。

解:

USE JXGL GO

DECLARE @TranName VARCHAR(20) SELECT @TranName='Add_Grade'

BEGIN TRAN @TranName

UPDATE SC SET GRADE=GRADE+5

FROM S JOIN SC ON S.SNO=SC.SNO AND CNO='C3'

COMMIT TRAN @TranName

GO

7. 在教学管理数据库中,创建一个事务,向C表添加一条记录,设置保存点;再将“C4”号课程的任课老师更改为“王晓清”。

解:

USE JXGL GO

BEGIN TRAN

INSERT INTO C

VALUES('C11','数学建模','MA','李守信') SAVE TRAN savepoint UPDATE C

SET TNAME='王晓清' WHERE CNO='C4'

COMMIT TRAN GO

习 题 10

1.名词解释:

身份验证 登录帐户 数据库用户 角色 答:

身份验证:是指确定登录SQL Server的用户的登录账户(也称为“登录名”)和密码是否正确,以此来验证其是否具有连接SQL Server的权限。

登录账户:是用来登录到SQL Server服务器,但是要访问某个数据库,还需要有这个数据库的用户帐户,这是不同级别的安全机制了。

数据库用户:是指访问指定数据库的用户,这就需要设置每个用户访问对应数据库的权限,以提高数据库的安全性。

角色:是为了方便权限管理而设置的管理单位,它是一组权限的集合。将数据库用户按所享有的权限进行分类,即定义为不同的角色。

2.SQL Server有几种身份验证方式,它们的区别是什么? 答:SQL Server提供了两种对用户进行身份验证的模式:Windows验证模式、SQL Server 和Windows 混合验证模式,默认模式是Windows身份验证模式。其中Windows验证模式只适用于能够提供有效身份验证的Windows操作系统。混合验证模式允许基于Windows的和基于SQL Server的身份验证,系统直接采用Windows的身份验证机制,否则SQL Server将通过账户的存在性和密码的匹配性自行进行验证,即采用SQL Server身份验证模式。

3.简述角色的概念及其分类。

答:角色是为了方便权限管理而设置的管理单位,它是一组权限的集合。SQL Server中有两类角色,分别为固定角色和用户定义数据库角色。每一个固定角色都拥有一定级别的服务器和数据库管理职能。根据它们对服务器或数据库的管理职能,固定角色又分为固定服务器角色和固定数据库角色。

4.简述固定服务器角色和固定数据库角色的区别。

答:固定服务器角色是相对于服务器而言的,他们的权限都是固定的,并且不能新建或删除固定服务器角色,而自定义数据库角色是可以添加和删除的,并且可以给它授予不同的权限。db_owner是数据库的拥有都,对数据库具有完全控制权限。

5.简述进行权限设置时,授予、拒绝或撤销三者之间的关系。

答:授予:用户被授予特定数据库对象的某种操作权限,该用户就可以对数据在此权限范围内进行操作;

撤销:用户不再具有特定数据库对象的某种操作权限,但用户可以通过其组或角色成员身份继承此种权限;

拒绝:禁止用户对特定数据库对象的某种操作权限,防止用户通过其组或角色成员身份继承此种权限。

6.在教学管理数据库中,创建SQL Server登录帐户User_L1和User_L2,并在此基础上创建数据库用户User_x1和User_x2。

解:

USE JXGL GO

CREATE LOGIN [User_L1] WITH PASSWORD='123456',

DEFAULT_DATABASE=[JXGL],DEFAULT_LANGUAGE=[简体中文], CHECK_EXPIRATION=OFF

GO

USE JXGL GO

CREATE LOGIN [User_L1] WITH PASSWORD='123456',

DEFAULT_DATABASE=[JXGL],DEFAULT_LANGUAGE=[简体中文], CHECK_EXPIRATION=OFF

GO

USE JXGL GO

sp_grantdbaccess 'User_x1' sp_grantdbaccess 'User_x2' GO

7. 给习题10-6中的数据库用户User_x1设置SELECT权限和User_x2设置INSERT、UPDATE和DELETE权限。

解:

USE JXGL

GRANT SELECT ON S TO User_x1 GO

类似地,可以对其它表授予权限。

USE JXGL

GRANT INSERT,UPDATE,DELETE ON S TO User_x2 GO

类似地,可以对其它表授予权限。

8.将登录帐户User_L1添加为固定服务器角色sysadmin的成员,将登录帐户User_L2添加为固定数据库角色db_datareader的成员。

解:参见例10.10。

习 题 11

1. 名词解释:

备份设备 完整备份 差异备份 日志备份 数据库镜像 答:

备份设备:是将数据库备份到备份设备上,用来存储数据库、事务日志的存储介质。在SQL Server中,可以将数据库备份到磁带或磁盘上。

完整备份:是备份整个数据库。它备份数据库文件、这些文件的地址以及事务日志的某些部分(从备份开始时所记录的日志顺序号到备份结束时的日志顺序号)。

差异备份:是指将从最近一次完全数据库备份以后发生改变的数据进行备份。如果在完整备份后将某个文件添加至数据库,则下一个差异备份将会包括该新文件。这样可以方便地备份数据库,而无须了解各个文件。

日志备份:是自从上一个事务以来已经发生了变化的部分。事务日志备份比完整数据库备份节省时间和空间,而且利用事务日志备份进行恢复时,可以指定恢复到某一个事务。

数据库镜像:是DBMS根据DBA的要求,自动把整个数据库或其中的关键数据复制到另一个磁盘上,每当主数据库更新时,DBMS会自动把更新后的数据复制过去,即DBMS自动保证镜像数据与主数据的一致性。

2.SQL Server有几种常用的数据库备份方式?它们各有什么特点?

答: SQL Server常用的数据库备份方式有完全备份、差异备份、事务日志备份以及文件和文件组备份。

完整数据库备份就是备份数据库文件、这些文件的地址以及事务日志的某些部分(从备份开始时所记录的日志顺序号到备份结束时的日志顺序号)。这是任何备份策略中都要求完成的一种备份类型。

差异数据库备份是指将从最近一次完全数据库备份以后发生改变的数据进行备份。如果在完整备份后将某个文件添加至数据库,则下一个差异备份将会包括该新文件。这样可以方便地备份数据库,而无须了解各个文件。

尽管事务日志备份就是备份自从上一个事务以来已经发生了变化的部分。事务日志备份比完整数据库备份节省时间和空间,而且利用事务日志备份进行恢复时,可以指定恢复到某一个事务。

文件组备份允许控制数据库对象(比如表或视图)存储到这些文件当中的某些文件上。数据库不会受到只存储在单个硬盘上的限制,而是可以分散到许多硬盘上。

3.制定数据库备份计划时,应该考虑那些因素? 答:

(1) 如果只进行完整数据库备份,那么将无法恢复自最近一次数据库备份以来数据库中所发生变化的所有数据。这种方案的优点是简单,而且在进行数据库恢复时操作也很方便。

(2) 如果在进行完整数据库备份时也进行事务日志备份,那么可以将数据库恢复到故障点,一般那些在故障前未提交的事务将无法恢复。但如果在数据库发生故障后立即对当前处于活动状态的事务进行备份,则未提交的事务也可以恢复。

SQL Server 提供了几种方法来减少备份或恢复操作的执行时间。

(1) 使用多个备份设备来同时进行备份处理。同理,可以从多个备份设备上同时进行数据库恢复操作处理。

(2) 综合使用完整数据库备份、差异备份或事务日志备份来减少每次需要备份的数据数量。

(3) 使用文件或文件组备份以及事务日志备份,这样可以只备份或恢复那些包含相关数据的文件,而不是整个数据库。

4. 发生介质故障的原因主要是哪些?应如何处理?

答:介质故障的原因主要是指外存储设备故障,主要有磁盘损坏,磁头碰撞盘面,突然的强磁场干扰,数据传输部件出错,磁盘控制器出错等。

此时恢复的过程如下:

(1) 重装转储的后备副本到新的磁盘,使数据库恢复到转储时的一致状态。 (2) 在日志中找出转储以后所有已提交的事务。

(3) 对这些已提交的事务进行REDO处理,将数据库恢复到故障前某一时刻的一致状态。

介质故障的恢复一般需要DBA配合执行。

5.数据库常见的故障类型有哪几种?如何解决? 答:常见的故障可分成下面三类: (1) 事务故障

① 可以预期的事务故障。这种情况可以在事务的代码中加入判断和ROLLBACK语句。当事务执行到ROLLBACK语句时,由系统对事务进行回退操作,即执行UNDO操作。

② 非预期的事务故障。即在程序中发生的未估计到的错误,譬如运算溢出、数据错误、并发事务发生死锁而被选中撤消该事务等。此时由系统直接对该事务执行UNDO处理。

(2) 系统故障

引起系统停止运转随之要求重新启动的事件称为“系统故障”。系统故障要影响正在运行的所有事务,并且主存内容丢失,但不破坏数据库。由于故障发生时正在运行的事务都非正常终止,从而造成数据库中某些数据不正确。DBMS的恢复子系统必须在系统重新启动时,对这些非正常终止的事务进行处理,把数据库恢复到正确的状态。

(3) 介质故障

在发生介质故障和遭受病毒破坏时,磁盘上的物理数据库遭到毁灭性破坏。此时恢复的过程如下:

① 重装转储的后备副本到新的磁盘,使数据库恢复到转储时的一致状态。 ② 在日志中找出转储以后所有已提交的事务。 ③ 对这些已提交的事务进行REDO处理,将数据库恢复到故障前某一时刻的一致状态。 6.新建一个数据库test1,创建一个备份设备back_test1,写出将数据库test1进行完整备份和差异备份的程序代码。

参见相关例题。

第12章 习 题

1.简述利用ADO.NET访问数据库的主要优点。

答:ADO.NET是一个访问数据库数据源的控件,简单快捷。它提供了一套丰富的对象,用于对关系型数据库进行连接式或断开式访问。连接式数据访问模式是指客户在操作过程中,与数据库的连接是打开的。如果不需要DataSet 所提供的功能,则打开连接后可以直接使用命令对象Command 进行数据库相关操作,使用DataReader 对象以仅向前只读方式返回数据并显示。断开式数据库访问是先完成数据库连接和通过数据适配器填充DataSet 对象,然后客户端再通过读取DataSet对象来获取所需要的数据。同样在更新数据库中的数据时,也需要首先更新DataSet对象,然后再通过数据适配器来更新数据库中对应的数据。

2.DataReader与Dataset有什么区别?

答:DataSet对象:必须结合DataAdapter对象使用,它是由许多数据表、记录和字段组成的一个对象。主要用于在内存中存放数据,它可以一次读取整张数据表的内容,也可以对网页中显示的数据进行编辑,并且还可以在数据中任意移动。

DataReader对象:必须结合Command对象使用,一次读取一条数据,只读且数据只能单向向前移动,一般用于单独显示数据。

3.试述数据库断开式数据访问模式的过程。 答:断开式数据访问模式的基本过程如下:

(1) 使用连接对象Connection 连接并打开数据库。 (2) 使用数据适配器DataAdapter 填充数据集DataSet。 (3) 关闭连接,对DataSet进行操作。 (4) 操作完成后打开连接。

(5) 使用数据适配器DataAdapter更新数据库。

4.试述显示和修改数据库中数据的常用方法及其主要功能。

答:ExecuteReader方法是查询显示数据库中数据最常用的一种方法,即利用该方法可以读出数据源中的数据,生成一个DataReader对象,然后利用SqlDataReader对象进行输出显示;

ExecuteNonQuery方法返回一个整数,表示已执行的语句所影响的数据行数; ExecuteScalar方法是使得返回查询所影响的结果集中在第一行的第一列。由于在查询数据库中的数据时,常常会查询最大值、最小值、平均值、总和等,即查询函数运算值,这时就要使用ExecuteScalar方法。

ExecuteXmlReader方法主要实现数据库与XML文档的交流,使用该方法需要传递一个For XML子句的T-SQL语句。

5.将记录(SNO:200913425;SNAME:王倩;SEX:F;AGE:22;SDEPT:IS)插入到数据库“JXGL”的S表中。

参见12.5.2。

6.设计一个简单的信息管理系统,大体包括添加学生信息、修改学生信息、删除学生信息和查找学生信息等功能。

略。

本文来源:https://www.bwwdw.com/article/m4w.html

Top