数据库系统概论课后习题及参考答案.pdf
课后作业习题 数据库系统概论课程部分习题及参考答案第一章绪论(教 材4 1页)1 .试述数据、数据库、数据库系统、数据库管理系统的概念。数据:描述事物的符号记录称为数据。数据的种类有文字、图形、图象、声音、正文等等。数据与其语义是不可分的。数据库:数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据按定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。数据库系统:数据库系统(D B S)是指在计算机系统中引入数据库后的系统构成。数据库系统由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。数据库管理系统:数据库管理系统(D B M S)是位于用户与操作系统之间的一层数据管理软件。用于科学地组织和存储数据、高效地获取和维护数据。D B M S主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。2.使用数据库系统有什么好处?使用数据库系统的好处是由数据库管理系统的特点或优点决定的。使用数据库系统的好处很多,例如可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担等。为什么有这些好处,可以结合第5题来回答。使用数据库系统可以大大提高应用开发的效率。因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由DBMS来完成。此外,当应用逻辑改变,数据的逻辑结构需要改变时,由于数据库系统提供了数据与程序之间的独立性。数据逻辑结构的改变是DBA的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序。从而既简化了应用程序的编制,乂大大减少了应用程序的维护和修改。使用数据库系统可以减轻数据库系统管理人员维护系统的负担。因 为DBMS在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性,多用户并发控制,故障恢复等等都由DBMS执行。总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,可以提高数据的利用率和一致性,又有利于应用程序的开发和维护。3.试述文件系统与数据库系统的区别和联系。文件系统与数据库系统的区别:文件系统面向某应用程序,共享性差、冗余度大,独立性差,纪录内有结构、整体无结构,应用程序自己控制。数据库系统而向现实世界,共享性高、冗余度小,具有高度的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力。文件系统与数据库系统的联系是:文件系统与数据库系统都是计算机系统中管理数据的软件。5.试述数据库系统的特点。数据库系统的主要特点有:一、数据结构化数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。二、数据的共享性高,冗余度低,易扩充数据库的数据不再面向某个应用而是面向整个系统,因此可以被多个用户、多个应用、用多种不同的语言共享使用。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充。三、数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独正性。数据库管理系统的模式结构和二级映象功能保证了数据库中的数据具有很高的物理独立性和逻辑独立性。四、数据由DBMS统一管理和控制数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据.为此,DBMS必须提供统一的数据控制功能,包括数据的安全性保护,数据的完整性检查,并发控制和数据库恢复。6 .数据库管理系统的主要功能有哪些?数据库定义功能;数据存取功能;数据库运行管理;数据库的建立和维护功能。7 .试述数据模型的概念、数据模型的作用和数据模型的三个要素。数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于提供信息表示和操作手段的形式构架。一般地讲,数据模型是严格定义的概念的集合。这些概念精确地描述系统的静态特性、动态特性和完整性约束条件。因此数据模型通常由数据结构、数据操作和完整性约束三部分组成。数据结构:是所研究的对象类型的集合,是对系统的静态特性的描述。数据操作:是指对数据库中各种对象(型)的实例(值允许进行的操作的集合,包括操作及有关的操作规则,是对系统动态特性的描述。数据的约束条件:是完整性规则的集合,完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。8.试述概念模型的作用。概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。9 .定义并解释概念模型中以下术语:实体,实体型,实体集,属性,码,实体联系图(E-R图)实体:客观存在并可以相互区分的事物叫实体。实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体称为实体型。实体集:同型实体的集合称为实体集。属性:实体所具有的某一特性,一个实体可由若干个属性来刻画。码:唯一标识实体的属性集称为码。实体联系图:E R图提供了表示实体型、属性和联系的方法:实体型:用矩形表示,矩形框内写明实体名。属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1 :n 或m:n)。第 二 章 关 系 数 据 库(教材8 1页)1.试述关系模型的三个组成部分。答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。2 .试述关系数据语言的特点和分类。答:关系数据语言可以分为三类:关 系 代 数 语 言 例 如I SB L关系演算语言(元组关系演算语言例如A P L U A,Q U E L和域关系演算语言例如Q B E)具有关系代数和关系演算双重特点的语言例如SQ L这些关系数据语言的共同特点是,具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。3 .定义并理解下列术语,说明它们之间的联系与区别:(1)域,关系,元组,属性答:域:域是组具有相同数据类型的值的集合。关系:在 域D E D 2,D n上笛卡尔积D 1 X D 2 X X D n的子集称为关系,表示为R (D I,D 2,,D n)元组:关系中的每个元素是关系中的元组.属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(A t t r ibu t e)。(2)主码,候选码,外部码答:候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(C and id at e key)。主码:若一个关系有多个候选码,则选定其中一个为主码(P r im ar y key)。外部码:设 F 是基本关系R 的一个或一组属性,但不是关系R 的码,如果F 与基本关系S 的主码K s 相对应,则称F 是基本关系R 的外部码(F o r eign key),简称外码。基本关系R 称为参照关系(R ef er enc ing r elat io n),基本关系S 称为被参照关系(R ef er enc ed r elat io n)或目标关系(Tar getr elat io n)q关系R 和S 可以是相同的关系。(3)关系模式,关系,关系数据库关系模式:关系的描述称为关系模式(R elat io n Sc hem a)。它可以形式化地表示为:R (U,D,d o m,F)其 中 R 为关系名,U为组成该关系的属性名集合,D 为属性组U中属性所来自的域,d o m 为属性向域的映象集合,F为属性间数据的依赖关系集合。关系:在 域 D I,D 2,D n上笛卡尔积D 1 X D 2 X X D n 的子集称为关系,表示为R (D I,D 2,,D n)关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新者数据库中的数据。关系数据库:关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。4.试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?答:关系模型的完整性规则是对关系的某种约束条件关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。参见教材在参照完整性中,外部码属性的值可以为空,它表示该属性的值尚未确定。但前提条件是该外部码属性不是其所在关系的主属性。例如,在 卜 面 的“学生”表中,“专业号”是一个外部码,不是学生表的主属性,可以为空。其语义是,该学生的专业尚未确定。学 生(学号,姓名,性别,专业号,年龄)专 业(专业号,专业名)而 在 下 面 的“选修”表中的“课程号”虽然也是一个外部码属性,但它又是“选修”表的主属性,所以不能为空。因为关系模型必须满足实体完整性。课 程(课程号,课程名,学分选 修(学号,课程号,成绩)5.等值连接与自然连接的区别是什么?答:自然连接(N a t u r a l j o i n)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。第三章关系数据库标准语言S Q L (教 材1 4 8页)1.试 述S Q L语言的特点。答:(1)综 合 统%S Q L语言集数据定义语言D D L、数据操纵语言D ML、数据控制语言D C L的功能于一体。(2)高度非过程化。用S Q L语言进行数据操作,只要提出“做什么”,而无须指明“怎么做”,因此无需了解存取路径,存取路径的选择以及S Q L语句的操作过程由系统自动完成。(3)面向集合的操作方式。S Q L语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。(4)以同一种语法结构提供两种使用方式。S Q L语言既是自含式语言,又是联人式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,也能够嵌入到高级语言程序中,供程序员设计程序时使用。(5)语言筒捷,易学易用。2.试述S Q L的定义功能。答:S Q L的数据定义功能包括定义表、定义视图和定义索引。S Q L语言使用C RE A T E T A B LE 语句定义建立基本表,;A LT E R T A B LE 语句修改基本表定义,D ROP T A B LE 语句删除基本表;建立索引使用C RE A T E IND E X 语句建立索引,D ROP IND E X 语句删除索引表;S Q L语言使用C RE A T E V IE W 命令建立视图,D ROP V IE W 语句删除视图。3 .用 S Q L语句建立第3 章习题3 中的四个表。答:对于 S 表:S(S NO,S NA ME,S T A T U S,C IT Y):建 S 表C RE A T E T A B LE S(S NO C HA R(3),S NA ME C HA R(10),S T A T U S C HA R(2),C IT Y C HA R(10);P(PNO,PNA ME,C OLOR,W E IGHT);建 P 表、建J 表、建S PJ表略。4 .针对上题中建立的四个表试用S Q L语言完成第3 章习题3 中的查询。答:(1)求供应工程J1零件的供应商号码S M):S E LE C T S NOFROM S PJW HE RE JNO=4jr :(2)求供应工程JI零件Pl的供应商号码S NO:S E LE C T S NOFROM S PJW HE RE JNO=JIA ND PNO=Pl ;(3)求供应工程JI零件为红色的供应商号码S NO;S E LE C T S NOFROM S PJW HE RE JNO=JTA ND PNO IN(S E LE C T PNOFROM PW HE RE C OLOR=红);(4)求没有使用天津供应商生产的红色零件的工程号JNO:略,注意:从 J 表入手,以包含那些尚未使用任何零件的工程号。5.针对习题3中的四个表试用S Q L语言完成以下各项操作:(1)找出所有供应商的姓名和所在城市。(2)找出所有零件的名称、颜色、重量。(3)找出使用供应商S 1所供应零件的工程号码。(4)找出工程项目J2使用的各种零件的名称及其数量。(5)找出上海厂商供应的所有零件号码。(6)找出使用上海产的零件的工程名称。(7)找出没有使用天津产的零件的工程号码。(8)把全部红色零件的颜色改成蓝色。(9)由S 5供给J4 的零件P6改为由S 3 供应,请作必要的修改。(1 0)从供应商关系中删除S 2的记录,并从供应情况关系中删除相应的记录。(1 1)请 将(S 2,J6,P4,200)插入供应情况关系。答:(1)找出所有供应商的姓名和所在城市。S E LE C T S NA ME,C IT YFROM S;(2)找出所有零件的名称、颜色、羽量。S E LE C T PNA ME,C OLOR,W E IGHTFROM P;(3)找出使用供应商S I所供应零件的工程号码。S E LE C T JNOFROM S PJW HE RE S NO=S I;(4)找出工程项目J 2使用的各种零件的名称及其数量。S E LE C T P.PNA ME,S PJ.Q T YFROM P,S PJW HE RE P.PNO=S PJ.PNOA ND S PJ.JNO=J2;(5)找出上海厂商供应的所有零件号码。S E LE C T D IS T INC T PNOFROM S PJW HE RE S NO IN(S E LE C T S NOFROM SW HE RE C I T Y=上海);(6)找出使用上海产的零件的工程名称。S E LE C T JNA MEFROM J,S PJ,SW HE RE J.JNO=S PJ.JNOA ND S PJ.S NO=S.S NOA ND S.C IT Y=,上海:(7)找出没有使用天津产的零件的工程号码。略(8)把全部红色零件的颜色改成蓝色。U PD A T E PS E T C OLOR:蓝 W HE RE C OLOR:红 ;(9)由S 5供给J4 的零件P6改为由S 3 供应,请作必要的修改。U PD A T E S PJS E T S NO=S 3 W HE RE S NO=S 5 A ND JNO=*J4 A ND PNO=P6;(10)从供应商关系中删除S 2的记录,并从供应情况关系中删除相应的记录。解析:注意删除顺序,应该先从S PJ表中删除供应商S 2所供应零件的记录,然后从从S 表中删除S 2。(11)请 将(S 2,J6,P4,200)插入供应情况关系。INS E RT INT O S PJ(S NO,JNO,PNO,Q T Y)V A LU E S (S 2,J6,P4,200);6.什么是基本表?什么是视图?两者的区别和联系是什么?答:基本表是本身独立存在的表,在 S Q L中一个关系就对应一个表。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据摩中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。7.试述视图的优点。答:(D 视图能够简化用户的操作。(2)视图使用户能以多种角度看待同一数据。(3)视图对重构数据库提供了一定程度的逻辑独立性。(4)视图能够对机密数据提供安全保护。8.所有的视图是否都可以更新?为什么?答:不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为对基本表的更新。因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新,所以,并不是所有的视图都是可更新的。9 .哪类视图是可以更新的,哪类视图是不可更新的?各举一例说明。答:基本表的行列子集视图般是可更新的。如教材3.5.3 中的例1。若视图的属性来自集函数、表达式,则该视图肯定是不可以更新的。如教材3.5.3 中的S _ G 视图。1 1.请为三建工程项目建立个供应情况的视图,包括供应商代码(S NO)、零件代 码(P NO)、供应数量(Q T Y)o针对该视图完成下列查询:(1)找出三建工程项目使用的各种零件代码及其数量。(2)找出供应商S 1 的供应情况。答:建视图:C R E A T E V I E W V _ S P J A SS E LE C T S NO,P NO,Q T YF R O M S P JW H E R E J NO=(S E LE C T J NOF R O M JW H E R E J NA ME=*三建);对该视图查询:(1)找出三建工程项目使用的各种零件代码及其数量。S E LE C T P NO,Q T YF R O M V S P J;(2)找出供应商S I 的供应情况。S E LE C T P NO,Q T Y /*S I 供应三建工程的零件号和对应的数量*/F R O M V _ S P JW H E R E S NO=S 1 ;第五章关系数据理论(教材1 9 6 页)1.理解并给出下列术语的定义:函数依赖、部分函数依赖、完全函数依赖、候选码、主码、外码、全码。答:函数依赖:设 R(U)是一个关系模式,U 是 R 的属性集合,X 和 Y 是 U 的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X 上的属性值相同,而在Y 上的属性值不同,则称“X 函数确定Y或Y函数依赖于X,记作X-Y。完全函数依赖、部分函数依赖:在 R(U)中,如果X-Y,并且对于X 的任何一个真子集X,都有X,T,则称Y 对 X 完全函数依赖;若X-Y,但 Y 不完全函数依赖于X,则称Y 对X 部分函数依赖;候选码、主码:设 K 为R(U,F)中的属性或属性组合,若 K-U 则 K 为R 的候选码。若候选码多于一个,则选定其中的一个为主码。外码:关系模式R 中属性或属性组X 并非R 的码,但 X 是另一个关系模式的码,则称X 是 R 的外部码也称外码。全码:整个属性组是码,称为全码(All-key)o2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区。描述班级的属性有:班号、专业名、系名、人数、入校年份。描述系的属性有:系名、系号、系办公室地点、人数。描述学会的屈性有:学会名、成立年份、地点、人数。有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系的候选码、外部码,有没有全码存在?答:关系模式:学生 S (S#,S N,S B,D N,C#,S A)班级 C (C#,C S,D N,C NU M,C D A T E)系 D (D#,D N,D A,D NU M)学会 P (P N,D A T E 1,P A,P NU M)学生一学会 S P (S#,P N,D A T E 2)其中,S#一学号,S N一姓名,S B 一出生年月,S A 一宿舍区8一班号,C S 专业名,C NU M一班级人数,C D A T E 一入校年份D#一系号,如一系名,D A 一系办公室地点,D NU M一系人数P N一学会名,D A T E 1 一成立年月,P A 地点,P NU M一学会人数,D A T E 2 一入会年份每个关系模式的极小函数依赖集:S:S#fS N,S#-S B,S#-C#,C#-D N,D N-S AC:C#-C S,C#一C NU M,C#-C D A T E,C S-D N,(C S,C D A T E)-C#D:D#-D N,D N-D#,D#-D A,D#-D NU MP:P N-D A T E L P N-P A,P N-P NU MS P:(S#,P N)-D A T E 2S中存在传递函数依赖:S#-*D N,S#-*S A,C#-S AC中存在传递函数依赖:C#D N(S#,P N)-*D A T E2 和(C S,C D A T E)-C#均为S P 中的函数依赖,是完全函数依赖关系候选码外部码全码S S#C#,D N 无C C,(C S,C D A T E)D N 无D D#和 D N 无 无P P N 无 无S P (S#,P N)S#,P N 无4.试举出三个多值依赖的实例。答:(1)关系模式MS C (M,S,C)中,M 表示专业,S 表示学生,C 表示该专业的必修课。假设每个专业有多个学生,有组必修课。设同专业内所有学生的选修的必修课相同,实例关系如卜 按照语义对于M 的每一个值M i,S 有一个完整的集合与之对应而不问C 取何值,所以M-So由于C与S的完全对称性,必然有M一一C 成立。M S CM 1 S I C 1M 1 S I C 2M 1 S 2 C 1M 1 S 2 C2(2)关系模式I S A (1,S,A)中,I 表示学生兴趣小组,S 表示学生,A 表示某兴趣小组的活动项目。假设每个兴趣小组有多个学生,有若干活动项目。每个学生必须参加所在兴趣小组的所有活动项目,每个活动项目要求该兴趣小组的所有学生参加。按照语义有I-S,I-A成立。(3)关系模式RDP(R,D,P)中,R表示医院的病房,D表示责任医务人员,P表示病人。假设每个病房住有多个病人,有多个责任医务人员负责医治和护理该病房的所有病人。按照语义有R ffD,R f f P成立。第六章数据库设计(教材241页)1.试述数据库设计过程。1)需求分析2)概念结构设计3)逻辑结构设计4)数据库物理设计5)数据库实施6)数据库运行和维护这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、数据库运行和维护。设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。2.试述数据库设计过程的各个阶段上的设计描述。答:各阶段的设计要点如下:1)需求分析:准确了解与分析用户需求(包括数据与处理。2)概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。3)逻辑结构设计:将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化.4)数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。5)数据库实施:设计人员运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。6)数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改。3.试述数据库设计过程中结构设计部分形成的数据库模式。答:数据库结构设计的不同阶段形成数据库的各级模式,即:在概念设计阶段形成独立于机器特点,独立于各个DBMS产品的概念模式,在本篇中就是E-R图;在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式:然后在基本表的基础上再建立必要的视图(View),形成数据的外模式:在物理设计阶段,根 据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。概念模式是面向用户和设计人员的,属于概念模型的层次:逻辑模式、外模式、内模式是DBMS支持的模式,属于数据模型的层次。可以在DBMS中加以描述和存储。4.试述数据库设计的特点。答:数据库设计既是一项涉及多学科的综合性技术乂是一项庞大的工程项目。其主要特点有:1)数据库建设是硬件、软件和干件(技术与管理的界面)的结合。2)从软件设计的技术角度看,数据库设计应该和应用系统设计相结合,也就是说,整个设计过程中要把结构(数据)设计和行为(处理)设计密切结合起来。5.需求分析阶段的设计目标是什么?调查的内容是什么?答:需求分析阶段的设计目标是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。调查的内容是“数据”和“处理”,即获得用户对数据库的如下要求:(1)信息要求。指用户需要从数据库中获得信息的内容与性质。由信息要求可以导出数据要求,即在数据库中需要存储哪些数据。(2)处理要求。指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理。(3)安全性与完整性要求。6 .数据字典的内容和作用是什么?答:数据字典是系统中各类数据描述的集合。数据字典的内容通常包括:数据项、数据结构、数据流、数据存储、处理过程五个部分其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构”数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。数据字典的作用:数据字典是关于数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过程中不断修改、充实、完善。(注意,数据库设计阶段形成的数据字典与后面讲到的数据字典不同,后者是DB M S 关于数据库中数据的描述,当然两者是有联系的)。7 .什么是数据库的概念结构?试述其特点和设计策略。答:概念结构是信息世界的结构,即概念模型,其主要特点是:(1)能其实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求。是对现实世界的一个真实模型。(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库的设计成功的关键。(3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。(4)易于向关系、网状、层次等各种数据模型转换。概念结构的设计策略通常有四种:自顶向F o即首先定义全局概念结构的框架,然后逐步细化;自底向上。即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构:逐步扩张。首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构;混合策略。即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。8.什么叫数据抽象?试举例说明。答:数据抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。如分类这种抽象是:定义某一类概念作为现实世界中一组对象的类型。这些对象具有某些共同的特性和行为。它抽象了对象值和型之间的“is member o f”的语义。在E-R模型中,实体型就是这种抽象。例如在学校环境中,李英是老师,表示李英是教师类型中的员,则教师是实体型,李英是教师实体型中的个实体值,具有教师共同的特性和行为:在某个系某个专业教学,讲授某些课程,从事某个方向的科研。9.试述数据库概念结构设计的重要性和设计步骤。答:重要性:数据库概念设计是整个数据库设计的关键,将在需求分析阶段所得到的应用需求首先抽象为概念结构,以此作为各种数据模型的共同基础,从而能更好地、更准确地用某一 DBMS实现这些需求。设计步骤:概念结构的设计方法有多种,其中最经常采用的策略是自底向上方法,该方法的设计步骤通常分为两步:第1步是抽象数据并设计局部视图,第2步是集成局部视图,得到全局的概念结构1 0 .什么是E-R图?构成E-R图的基本要素是什么?答:E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。构 成 E-R图的基本要素是实体型、属性和联系,其表示方法为:实体型:用矩形表示,矩形框内写明实体名;属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1 :n 或 m:n)。1 1 .为什么要视图集成?视图集成的方法是什么?答:在对数据库系统进行概念结构设计时一般采用自底向上的设计方法,把繁杂的大系统分解子系统。首先设计各个子系统的局部视图,然后通过视图集成的方式将各子系统有机的融合起来,综合成一个系统的总视图。这样设计清晰,由简到繁。由于数据库系统是从整体角度看待和描述数据的,因此数据不再面向某个应用而是整个系统。因此必须进行视图集成,使得数据库能被全系统的多个用户、多个应用共享使用。一般说来,视图集成可以有两种方式:多 个 分 E-R图一次集成;逐步集成,用累加的方式次集成两个分E-R图。无论采用哪种方式,每次集成局部E-R图时都需要分两步走:(1)合并。解决各分E-R图之间的冲突,将各分E-R图合并起来生成初步E-R图。(2)修改和重构。消除不必要的冗余,生成基本E-R图。1 2.什么是数据库的逻辑结构设计?试述其设计步骤,答:数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。设计步骤为:(1)将概念结构转换为一般的关系、网状、层次模型;(2)将转换来的关系、网状、层次模型向特定D B M S 支持下的数据模型转换;(3)对数据模型进行优化。第七章数据库恢复技术(教材2 6 1 页)1.试述事务的概念及事务的四个特性。答:事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。事务具有四个特性:原子性(A to m i c i ty),致性(C o n s i s te n c y)、隔离性(I s o l a ti o n)和持续性(D u r a b i l i ty)。这个四个特性也简称为A C I D 特性。原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。持续性:持续性也称永久性(Pe r m a n e n c e),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。2.为什么事务非正常结束时会影响数据库数据的正确性,请列举例说明之。答:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。例如某工厂的库存管理系统中,要把数量为Q的某种零件从仓库1 移到仓库2 存放。则可以定义一个事务T,T包括两个操作:Q 1=Q 1-Q,Q 2=Q 2+Q。如果T非正常终止时只做了第一个操作,则数据库就处于不一致性状态,库存量无缘无故少了 Q。3.数据库中为什么要有恢复子系统?它的功能是什么?答:因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此必须要有恢复子系统。恢复子系统的功能是:把数据库从错误状态恢复到某已知的正确状态(亦称为致状态或完整状态)。4.数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据?答:数据库系统中可能发生各种各样的故障,大致可以分以卜几类:(1)事务内部的故障:(2)系统故障:(3)介质故障;(4)计算机病毒。事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据库数据。5 .据库恢复的基本技术有哪些?答:数据转储和登录日志文件是数据库恢复的基本技术。当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性状态。6 .数据库转储的意义是什么?试比较各种数据转储方法。答:数据转储是数据库恢复中采用的基本技术。所谓转储即D B A定期地将数据库复制到磁带或另个磁盘上保存起来的过程。当数据库遭到破坏后可以将后备副本重新装入,将数据库恢复到转储时的状态。静态转储:在系统中无运行事务时进行的转储操作。静态转储简单,但必须等待正运行的用户事务结束才能进行。同样,新的事务必须等待转储结束才能执行。显然,这会降低数据库的可用性。动态转储:指转储期间允许对数据库进行存取或修改。动态转储可克服静态转储的缺点,它不用等待正在运行的用户事务结束,也不会影响新事务的运行。但是,转储结束时后援副本上的数据并不能保证正确有效。因为转储期间运行的事务可能修改了某些数据,使得后援副本上的数据不是数据库的一致版本。为此,必须把转储期间各事务对数据库的修改活动登记下来,建立日志文件(l o g f i l e)。这样,后援副本加上日志文件就能得到数据库某一时刻的正确状态。转储还可以分为海量转储和增量转储两种方式。海量转储是指每次转储全部数据库。增量转储则指每次只转储上一次转储后更新过的数据。从恢复角度看,使用海量转储得到的后备副本进行恢复一般说来更简单些。但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效。7 .什么是日志文件?为什么要设立日志文件?答:(1)日志文件是用来记录事务对数据库的更新操作的文件。(2)设立日志文件的目的是:进行事务故障恢复:进行系统故障恢复:协助后备副本进行介质故障恢复。8 .登记日志文件时为什么必须先写日志文件,后写数据库?答:把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次U N D O 操作,并不会影响数据库的正确性。所以定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。9 .针对不同的故障,试给出恢复的策略和方法。(即如何进行事务故障的恢复?系统故障的恢复?介质故障恢复?)答:事务故障的恢复:事务故障的恢复是由D B M S 自动完成的,对用户是透明的。D B M S 执行恢复步骤是:(1)反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。(2)对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库。(3)继续反向扫描日志文件,做同样处理。(4)如此处理下去,直至读到此事务的开始标记,该事务故障的恢复就完成了。系统故障的恢复:系统故障可能会造成数据库处于不一致状态:一是未完成事务对数据库的更新可能已写入数据库;二是已提交事务对数据库的更新可能还留在缓冲区,没来得及写入数据库。因此恢复操作就是要撤销(U N D O)故障发生时未完成的事务,重做(R E D O)已完成的事务。系统的恢复步骤是:(1)正向扫描日志文件,找出在故障发生前已经提交的事务队列(R E D O 队列)和未完成的事务队列(U N D O 队列)。(2)对撤销队列中的各个事务进行U N D O 处理。进 行 U N D O 处理的方法是,反向扫描F I 志文件,对每个U N D O 事务的更新操作执行逆操作,即将H志记录中“更新前的值”(Be f ore I mag e)写入数据库。(3)对重做队列中的各个事务进行R E D O 处理。进 行 R E D O 处理的