数据库课后习题作业答案

更新时间:2025-12-09 07:13:37 阅读: 评论:0


2022年8月1日发
(作者:婚姻猎头)

《数据库系统概论》课程习题及参考答案 

 

 

第一章绪论(教材37页)

1.试述数据、数据库、数据库系统、数据库管理系统的概念。

 答:数据:描述事物的符号记录称为数据。数据的种类有文字、图形、图

像、声音、正文等等。数据与其语义是不可分的。 

数据库:数据库是长期储存在计算机内、有组织的、可共享的数据集合。数

据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的

数据独立性和易扩展性,并可为各种用户共享。 

数据库系统:数据库系统(DBS)是指在计算机系统中引入数据库后的系统构

成。数据库系统由数据库、数据库管理系统(及其开发工具)、应用系统、数据库

管理员构成。 

数据库管理系统:数据库管理系统(DBMS)是位于用户与操作系统之间的一

层数据管理软件。用于科学地组织和存储数据、高效地获取和维护数据。DBMS

主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的

建立和维护功能。 

2.使用数据库系统有什么好处?

答:使用数据库系统的好处是由数据库管理系统的特点或优点决定的。使用

数据库系统的好处很多,例如可以大大提高应用开发的效率,方便用户的使用,

减轻数据库系统管理人员维护的负担等。 

为什么有这些好处,可以结合第 5题来回答。 

使用数据库系统可以大大提高应用开发的效率。因为在数据库系统中应用程

序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由 DBMS来

完成。 

此外,当应用逻辑改变,数据的逻辑结构需要改变时,由于数据库系统提供

了数据与程序之间的独立性。数据逻辑结构的改变是 DBA的责任,开发人员不

必修改应用程序,或者只需要修改很少的应用程序。从而既简化了应用程序的编

制,又大大减少了应用程序的维护和修改。 

使用数据库系统可以减轻数据库系统管理人员维护系统的负担。因为 DBMS

在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整

性、安全性,多用户并发控制,故障恢复等等都由DBMS执行。 

总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据

冗余,可以提高数据的利用率和一致性,又有利于应用程序的开发和维护。 

3.试述文件系统与数据库系统的区别和联系。 

 答:文件系统与数据库系统的区别:文件系统面向某一应用程序,共享性

差、冗余度大,独立性差,纪录内有结构、整体无结构,应用程序自己控制。 

数据库系统面向现实世界,共享性高、冗余度小,具有高度的物理独立性和

一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据

安全性、完整性、并发控制和恢复能力。  

文件系统与数据库系统的联系是:文件系统与数据库系统都是计算机系统中

管理数据的软件。 

5.试述数据库系统的特点。  

 答:数据库系统的主要特点: 

①数据结构化  数据库系统实现整体数据的结构化,这是数据库的主要特征

之一,也是数据库系统与文件系统的本质区别。  

②数据的共享性高,冗余度低,易扩充  数据库的数据不再面向某个应用而

是面向整个系统,因此可以被多个用户、多个应用、用多种不同的语言共享使用。

由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且

容易增加新的应用,这就使得数据库系统弹性大,易于扩充。  

③数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独立性。  

数据库管理系统的模式结构和二级映象功能保证了数据库中的数据具有很高

的物理独立性和逻辑独立性。  

④数据由 DBMS统一管理和控制  数据库的共享是并发的共享,即多个用

户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。为此, 

DBMS必须提供统一的数据控制功能,包括数据的安全性保护,数据的完整性检

查,并发控制和数据库恢复。 

6.数据库管理系统的主要功能有哪些?  

 答:数据库管理系统的主要功能: 

①数据库定义功能; 

②数据存取功能; 

③数据库运行管理; 

④数据库的建立和维护功能。 

7.试述数据模型的概念、数据模型的作用和数据模型的三个要素。  

答:数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于

提供信息表示和操作手段的形式构架。  

一般地讲,数据模型是严格定义的概念的集合。这些概念精确地描述系统的

静态特性、动态特性和完整性约束条件。因此数据模型通常由数据结构、数据操

作和完整性约束三部分组成。  

①数据结构  是所研究的对象类型的集合,是对系统的静态特性的描述。 

②数据操作  是指对数据库中各种对象(型)的实例(值)允许进行的操作的集

合,包括操作及有关的操作规则,是对系统动态特性的描述。 

③数据的约束条件  是完整性规则的集合,完整性规则是给定的数据模型中

数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以

及状态的变化,以保证数据的正确、有效、相容。 

8.试述概念模型的作用。 

答:概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于

信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行

数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。 

9.定义并解释概念模型中以下术语:  实体,实体型,实体集,属性,码,

实体联系图(E-R图)

答:实体  客观存在并可以相互区分的事物叫实体。 

实体型  具有相同属性的实体具有相同的特征和性质,用实体名及其属性名

集合来抽象和刻画同类实体称为实体型。 

实体集  同型实体的集合称为实体集。 

属性  实体所具有的某一特性,一个实体可由若干个属性来刻画。 

码  唯一标识实体的属性集称为码。 

实体联系图  E‐R图提供了表示实体型、属性和联系的方法: 

• 实体型:用矩形表示,矩形框内写明实体名。 

• 属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。 

• 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连

接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)。 

 

 

第二章关系数据库(教材74页)

1.试述关系模型的三个组成部分。 

答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 

2.试述关系数据语言的特点和分类。 

答:关系数据语言可以分为三类: 

 关系代数语言 例如 ISBL。 

 关系演算语言 (元组关系演算语言 例如 APLHA,QUEL 和 域关系演算语

言 例如QBE)。 

 具有关系代数和关系演算双重特点的语言 例如 SQL。 

 这些关系数据语言的共同特点是,具有完备的表达能力,是非过程化的集

合操作语言,功能强,能够嵌入高级语言中使用。 

3.定义并理解下列术语,说明它们之间的联系与区别: 

(1)域,关系,元组,属性

答:域  域是一组具有相同数据类型的值的集合。  

关系  在域 D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,

表示为 R(D1,D2,…,Dn)。 

元组  关系中的每个元素是关系中的元组。  

属性  关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。

由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。 

(2)主码,候选码,外部码 

答:候选码  若关系中的某一属性组的值能唯一地标识一个元组,则称该属

性组为候选码(Candidate key)。 

主码  若一个关系有多个候选码,则选定其中一个为主码(Primary key)。 

外部码  设 F是基本关系R的一个或一组属性,但不是关系R的码,如果F

与基本关系S的主码Ks相对应,则称F是基本关系R的外部码(Foreign key),简

称外码。基本关系R称为参照关系(Referencing relation),基本关系S称为被参照

关系(Referenced relation)或目标关系(Target relation)。关系R和S可以是相同的关

系。  

(3)关系模式,关系,关系数据库

答:关系模式  关系的描述称为关系模式(Relation Schema)。它可以形式化

地表示为R(U,D,dom,F)。其中 R为关系名,U为组成该关系的属性名集合,

D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据

的依赖关系集合。 

关系  在域 D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,

表示为R(D1,D2,…,Dn)。关系是关系模式在某一时刻的状态或内容。关系模

式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不

断地更新着数据库中的数据。 

关系数据库  关系数据库也有型和值之分。关系数据库的型也称为关系数据

库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若

干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通

常就称为关系数据库。 

4.试述关系模型的完整性规则。在参照完整性中,为什么外部码属性

的值也可以为空?什么情况下才可以为空? 

答:关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三

类完整性约束:实体完整性、参照完整性和用户定义的完整性。参见教材 

在参照完整性中,外部码属性的值可以为空,它表示该属性的值尚未确定。

但前提条件是该外部码属性不是其所在关系的主属性。 

例如,在下面的 “学生”表中,“专业号”是一个外部码,不是学生表的主

属性,可以为空。其语义是,该学生的专业尚未确定。 

学生(学号,姓名,性别,专业号,年龄) 

专业(专业号,专业名) 

而在下面的“选修”表中的“课程号”虽然也是一个外部码属性,但它又是

“选修”表的主属性,所以不能为空。因为关系模型必须满足实体完整性。 

课程(课程号,课程名,学分) 

选修(学号,课程号,成绩) 

5.设有一个SPJ数据库,包括S、P、J、SPJ四个关系模式:

 S(SO,SAME,STATUS,CITY); 

 P(P0,PAME,COLOR,WEIGHT); 

 J(JO,JAME,CITY); 

 SPJ(SO,PO,JO,QTY); 

供应商表S由供应商(SO)、供应商姓名(SAME)、供应商状态(STATUS)、供

应商所在城市(CITY)组成; 

零件表P由零件代码(PO)、零件名(PAME)、颜(COLOR)、重量(WEIGHT)

组成; 

工程项目表J由工程项目代码(JO)、工程项目名(JAME)、工程项目所在城

市(CITY)组成; 

供应情况表SPJ由供应商代码(SO)、零件代码(PO)、工程项目代码(JO)、

供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。 

各表中均有若干数据(略) 

试用关系代数、ALPHA语言、QBE语言完成如下查询: 

(1)求供应工程J1零件的供应商号码SO; 

(2)求供应工程J1零件P1的供应商号码SO; 

(3)求供应工程J1零件为红的供应商号码SO; 

(4)求没有使用天津供应商生产的红零件的工程号JO; 

(5)求至少用了供应商S1所供应的全部零件的工程号JO。 

答:(1)关系代数  πSO(σJO=‘J1’(SPJ)) 

      ALPHA  GET W (  ) : =‘ J1 ’ 

      QBE         

 

    (2)关系代数  πSO(σJO=‘J1’ ∧ PO=‘SPJ’ (SPJ)) 

      ALPHA  GET W (  ) : =‘ J1 ’ ∧ = ‘ P1 ’ 

      QBE 

 

    (3)关系代数  πSO(σCOLOR=‘红’ ∧ JO=‘J1’ (P ∞SPJ)) 

      ALPHA  RAGE  P  PX  

GET W () : ׌ PX ( =  ∧ 

               = ‘ J1 ’ ∧ =‘ RED ’) 

      QBE 

 

 

     (4)关系代数  π

JO

(J)-π

JO

COLOR=‘红’

 ∧

 

        ALPHA  RAGE  SPJ  SPJX 

CITY=‘天津’

(P ∞SPJ ∞S)) 

 

 

                    S  SX 

                    P  PX 

GET W (  ) : 

┓׌ SPJX ( = ∧׌ SX ( = ∧

=‘ 天津’∧׌ PX ( = ∧

=‘ 红’ ) ) ) 

       QBE 

 

 

 

 

        (5)关系代数  π

PO,JO

 (SPJ) ÷ π

PO

 (σ

SO =‘S1’

 (SPJ)) 

          ALPHA  RAGE  P   PX 

                         SPJ   SPJX 

                         SPJ   SPJY 

GET W () : ׊ PX (׌ SPJX (= ∧ =‘ S1 ’) 

            => ׌ SPJY (= ∧ =) ) 

6.等值连接与自然连接的区别是什么?  

答:自然连接(atural join)是一种特殊的等值连接,它要求两个关系中进行

比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。 

 

 

第三章关系数据库标准语言SQL(教材127页) 

1.试述SQL语言的特点。

答:①综合统一,SQL语言集数据定义语言DDL、数据操纵语言DML、数据控

制语言DCL的功能于一体。  

②高度非过程化,用SQL语言进行数据操作,只要提出“做什么”,而无须

指明“怎么做”,因此无需了解存取路径,存取路径的选择以及SQL语句的操作

过程由系统自动完成。  

③面向集合的操作方式,SQL语言采用集合操作方式,不仅操作对象、查

结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的

集合。  

④以同一种语法结构提供两种使用方式,SQL语言既是自含式语言,又是嵌

入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,也能够嵌

入到高级语言程序中,供程序员设计程序时使用。  

⑤语言简捷,易学易用。 

2.试述SQL的定义功能。 

答:SQL的数据定义功能包括定义表、定义视图和定义索引。 

SQL语言使用CREATE TABLE语句定义建立基本表; 

ALTER TABLE语句修改基本表定义,DROP TABLE语句删除基本表; 

建立索引使用CREATE IDEX语句建立索引, DROP IDEX语句删除索引表;

SQL语言使用CREATE VIEW命令建立视图,DROP VIEW语句删除视图。 

3.用SQL语句建立第3章习题3中的四个表。 

答:S表:S(SO,SAME,STATUS,CITY);  

建S表  

CREATE TABLE S  

(SO CHAR(3), 

SAME CHAR(10),STATUS CHAR(2), 

CITY CHAR(10)); 

P(PO,PAME,COLOR,WEIGHT); 

 建P表、建J表、建SPJ表略。 

4.针对上题中建立的四个表用SQL语言完成第3章习题3中的查询。 

答:(1)求供应工程J1零件的供应商号码SO; 

SELECT  SO  

FROM  SPJ  

WHERE  JO=’J1’; 

(2)求供应工程J1零件P1的供应商号码SO; 

SELECT  SO 

FROM  SPJ 

WHERE  JO=‘J1' 

AD  PO=’P1’; 

(3)求供应工程J1零件为红的供应商号码SO; 

SELECT  SO 

FROM  SPJ 

WHERE  JO=‘J1' AD PO I 

(SELECT  PO 

FROM  P 

WHERE  COLOR=’红’);  

(4)求没有使用天津供应商生产的红零件的工程号JO; 

SELECT JO 

FROM J 

WHERE OT EXISTXS 

(SELECT * 

 FROM SPJ,S,P 

WHERE = AD = AD = AD =’天

津’ AD =’红’ 

 (5)求至少用了S1供应商所供应的全部零件的工程号JO; 

SELECT  DISTICT  JO 

FROM  SPJ  SPJZ 

WHERE  OT  EXISTS 

 (SELECT  * 

 FROM SPJ  SPJX 

 WHERE SO=‘S1’ 

    AD  OT  EXISTS 

  (SELECT  * 

        FROM  SPJ  SPJY 

     WHERE  = 

  AD  =)) 

5.针对习题3中的四个表试用SQL语言完成以下各项操作: 

  (1)出所有供应商的姓名和所在城市。 

 (2)出所有零件的名称、颜、重量。 

 (3)出使用供应商S1所供应零件的工程号码。 

 (4)出工程项目J2使用的各种零件的名称及其数量。 

 (5)出上海厂商供应的所有零件号码。 

 (6)出使用上海产的零件的工程名称。 

 (7)出没有使用天津产的零件的工程号码。 

 (8)把全部红零件的颜改成蓝。 

 (9)由S5供给J4的零件P6改为由S3供应,请作必要的修改。 

 (10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。 

(11)请将(S2,J6,P4,200)插入供应情况关系。 

答:(1)出所有供应商的姓名和所在城市。 

SELECT  SAME, CITY 

FROM  S; 

(2)出所有零件的名称、颜、重量。 

SELECT  PAME, COLOR, WEIGHT 

FROM  P; 

(3)出使用供应商S1所供应零件的工程号码。 

SELECT  JO 

FROM  SPJ 

WHERE  SO=‘S1'; 

(4)出工程项目J2使用的各种零件的名称及其数量。 

SELECT  ,  

FROM  P, SPJ 

WHERE  = 

AD  ='J2'; 

(5)出上海厂商供应的所有零件号码。 

SELECT  DISTICT PO 

FROM  SPJ 

WHERE  SO I 

(SELECT  SO 

FROM  S 

WHERE  CITY='上海');  

(6)出使用上海产的零件的工程名称。 

SELECT  JAME 

FROM  J, SPJ, S 

WHERE  J. JO=SPJ. JO 

AD  SPJ. SO= 

AD  ='上海'; 

(7)出没有使用天津产的零件的工程号码。 

 SELECT  JO 

   FROM  J 

   WHERE OT EXISTS 

            (SELECT * 

               FROM SPJ,S 

               WHERE = AD = AD  =’天津’) 

(8)把全部红零件的颜改成蓝。 

UPDATE  P 

SET  COLOR='蓝' 

WHERE  COLOR='红'; 

(9)由S5供给J4的零件P6改为由S3供应,请作必要的修改。 

UPDATE  SPJ 

SET  SO='S3' 

WHERE  SO='S5' AD JO='J4' AD PO='P6'; 

(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录。 

 DELETE  FROM  SPJ 

   WHERE  SO=’S2’; 

   DELETE  FROM  S 

   WHERE  SO=’S2’; 

注意删除顺序,应该先从SPJ表中删除供应商S2所供应零件的记录,然后从S

表中删除S2。 

(11)请将(S2,J6,P4,200)插入供应情况关系。 

ISERT  ITO  SPJ(SO, JO, PO, QTY) 

VALUES  (S2,J6,P4,200); 

6.什么是基本表?什么是视图?两者的区别和联系是什么? 

答:基本表是本身独立存在的表,在 SQL中一个关系就对应一个表。 

视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个

虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放

在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样

使用视图,可以在视图上再定义视图。 

7.试述视图的优点。

答:(1)视图能够简化用户的操作。 

(2)视图使用户能以多种角度看待同一数据。 

(3)视图对重构数据库提供了一定程度的逻辑独立性。 

(4)视图能够对机密数据提供安全保护。 

8.所有的视图是否都可以更新?为什么?

答:不是。视图是不实际存储数据的虚表,因此对视图的更新,最终要转换为

对基本表的更新。因为有些视图的更新不能唯一地有意义地转换成对相应基本表

的更新,所以,并不是所有的视图都是可更新的。 

9.哪类视图是可以更新的,哪类视图是不可更新的?各举一例说明。 

答:基本表的行列子集视图一般是可更新的。如教材 3.5.3中的例1。若视图

的属性来自集函数、表达式,则该视图肯定是不可以更新的。如教材 3.5.3中的

S_G视图。 

11.请为三建工程项目建立一个供应情况的视图,包括供应商代码

(SO)、零件代码(PO)、供应数量(QTY)。针对该视图完成下列查

询: 

 (1)出三建工程项目使用的各种零件代码及其数量。 

(2)出供应商S1的供应情况。 

答:建视图: 

CREATE  VIEW  V_SPJ  AS 

SELECT  SO, PO, QTY 

FROM  SPJ 

WHERE  JO  I 

(SELECT  JO 

FROM  J 

WHERE  JAME='三建'); 

对该视图查询: 

(1)出三建工程项目使用的各种零件代码及其数量。 

SELECT  PO, QTY 

FROM  V_SPJ; 

(2)出供应商S1的供应情况。 

SELECT  PO, QTY   /* S1供应三建工程的零件号和对应的数量*/ 

FROM  V_SPJ 

WHERE  SO='S1'; 

 

 

第四章数据库安全性(148页)

1.什么是数据库的安全性?

答:数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、

更改或破坏。 

2.数据库安全性和计算机系统的安全性有什么关系?

答:安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。只

是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安

全性问题更为突出。系统安全保护措施是否有效是数据库系统主要技术指标之

一。 

  数据库的安全性和计算机系统的安全性,包括计算机硬件、操作系统、网络系

统等的安全性,是紧密联系、相互支持的,因此在讨论数据库的安全性之前首先

讨论计算机系统安全性的一般问题。 

4.试述CC评估保证级划分的基本内容。

答:CC的文本由三部分组成,三个部分相互依存,缺一不可。 

  第一部分是“简介和一般模型”,介绍CC中的有关术语、基本概念和一般模型

以及与评估有关的一些框架,CC的附录部分主要介绍“保护轮廓”和“安全目

标”的基本内容。 

  第二部分是安全功能要求,列出了一系列功能组件、子类和类。具体来说有

11类,分别是安全审计、通信、密码支持、用户数据保护、标识和鉴别、安全

管理、隐私、TSF保护、资源利用、TOE访问、可信路径和信道。这11大类分为

66个子类,由135个组件构成。 

  第三部分是安全保证要求,列出了一系列保证组件、子类和类,包括7个类,

分别是配置管理、交付和运行、开发、指导性文档、生命周期支持、测试、脆弱

性评定。这7个大类分为26个子类,由74个组件构成。另外,第三部分中根据

系统对安全保证要求的支持情况提出了评估保证级,并定义了保护轮廓PP和安

全目标ST的评估准则,用于对PP和ST的评估。 

5.试述实现数据库安全性控制的常用方法和技术。

答:实现数据库安全性控制的常用方法和技术有: 

(1)用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或

身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使

用权。 

(2)存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问

数据库,所有未被授权的人员无法存取数据。例如C2级中的自主存取控制(DAC),

B1级中的强制存取控制(MAC)。 

(3)视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权

存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。 

(4)审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计

日志中, DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事

件,出非法存取数据的人、时间和内容等。 

(5)数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法

的人无法获知数据的内容。 

6.什么是数据库中的自主存取控制方法和强制存取控制方法?

答:在自主存取控制中,用户对于不同的数据库对象有不同的存取权限,不同

的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限传授给其

他用户。因此自主存取控制非常灵活。 

  在强制存取控制中每一个,每一个数据库对象被标以一定的密级,每一个用户

也被授予某一个级别的许可证。对于任意一个对象,只有具有合法许可证的用户

才可以存取。强制存取控制因此也相对比较严格。 

语言中提供了哪些数据控制(自主存取控制)的语句?请试举

几例说明它们的使用方法。 

答:SQL中 的自主存取控制是通过GRAT 语句和 REVOKE 语句来实现的。

如: 

GRAT SELECT,ISERT O Student 

TO 王平 

WITH GRAT OPTIO; 

就将Student表的SELECT和ISERT权限授予了用户王平,后面的“WITH GRAT 

OPTIO”子句表示用户王平同时也获得了“授权”的权限,即可以把得到的权

限继续授予其他用户。 

REVOKE ISERT O Student FROM 王平 CASCADE; 

就将Student表的ISERT权限从用户王平处收回,选项CASCADE表示,如果

用户王平将Student的ISERT权限又转授给了其他用户,那么这些权限也将从其

他用户处收回。 

8.今有两个关系模式:

 职工(职工号,姓名,年龄,职务,工资,部门号) 

 部门(部门号,名称,经理名,地址,电话号) 

请用SQL的GRAT和REVOKE语句(加上视图机制)完成以下授权定

义或存取控制功能: 

(a)用户王明对两个表有SELECT权力; 

GRAT SELECT O 职工,部门 

TO 王明; 

(b)用户李勇对两个表有ISERT和DELETE权力; 

GRAT ISERT,DELETE O 职工,部门 

TO 李勇; 

(c) *每个职工只对自己的记录有SELECT权力; 

GRAT SELECT O 职工 

WHE USER()= AME 

TO ALL; 

这里假定系统的GRAT语句支持WHE子句和USER()的使用。用户将自己

的名字作为ID。注意,不同的系统这些扩展语句可能是不同的。读者应该了解

你使用的DBMS产品的扩展语句。 

(d)用户刘星对职工表有SELECT权力,对工资字段具有更新权力; 

GRAT SELECT,UPDATE(工资) O 职工 

TO 刘星; 

(e)用户张新具有修改这两个表的结构的权力; 

GRAT ALTER TABLE O 职工,部门 

TO 张新; 

(f)用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户

授权的权力; 

GRAT ALL PRIVILIGES O 职工,部门 

TO 周平 

WITH GRAT OPTIO; 

(g)用户杨兰具有从每个部门职工中SELECT最高工资,最低工资,平均工资的

权力,他不能查看每个人的工资。 

答:首先建立一个视图。然后对这个视图定义杨兰的存取权限。 

CREATE VIEW 部门工资 AS 

SELECT 部门.名称,AX(工资),I(工资),AVG(工资) 

FROM 职工,部门 

WHERE 职工.部门号=部门.部门号 

GROUP BY 职工.部门号; 

GRAT SELECT O 部门工资 

TO 杨兰; 

9.把习题8中(a)~(g)的每一种情况,撤销各用户所授予的权力。

答:(a)  REVOKE SELECT O 职工,部门  

FROM 王明; 

(b)  REVOKE ISERT,DELETE O 职工,部门 

FROM 李勇; 

(c)  REOVKE SELECT O 职工 

WHE USER()=AME 

FROM ALL; 

这里假定用户将自己的名字作为 ID,且系统的REOVKE语句支持WHE子句,

系统也支持USER()的使用。 

(d)  REVOKE SELECT,UPDATE O 职工 

FROM 刘星; 

(e)  REVOKE ALTER TABLE O 职工,部门 

FROM 张新; 

(f)  REVOKE ALL PRIVILIGES O 职工,部门 

FROM 周平; 

(g)  REVOKE SELECT O 部门工资 

FROM 杨兰; 

DROP VIEW 部门工资; 

10.为什么强制存取控制提供了更高级别的数据库安全性?

答:强制存取控制(MAC)是对数据本身进行密级标记,无论数据如何复制,

标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据

库,从而提供了更高级别的安全性。 

11.理解并解释MAC机制中主体、客体、敏感度标记的含义。

答:主体是系统中的活动实体,既包括DBMS所管理的实际用户,也包括代表

用户的各进程。 

  客体是系统中的被动实体,是受主体操纵的,包括文件、基本表、索引、视图

等。对于主体和客体,DBMS为它们每个实例指派一个敏感度标记。 

  敏感度标记被分成若干级别,例如绝密、机密、可信、公开等。主体的敏感度

标记称为许可证级别,客体的敏感度标记称为密级。 

13.什么是数据库的审计功能,为什么要提供审计功能?

答:审计功能是指 DBMS的审计模块在用户对数据库执行操作的同时把所有

操作自动记录到系统的审计日志中。 

因为任何系统的安全保护措施都不是完美无缺的,蓄意盗窃破坏数据的人总可

能存在。利用数据库的审计功能, DBA可以根据审计跟踪的信息,重现导致数

据库现有状况的一系列事件,出非法存取数据的人、时间和内容等。 

 

 

第五章数据库完整性(教材164页)

1.什么是数据库的完整性? 

答:数据库的完整性是指数据的正确性和相容性。 

2.数据库的完整性概念与数据库的安全性概念有什么区别和联系?

答:数据的完整性和安全性是两个不同的概念,但是有一定的联系。 

前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输

出,即所谓垃圾进垃圾出(Garbage In Garbage Out)所造成的无效操作和错误结果。 

后者是保护数据库防止恶意的破坏和非法的存取。 

也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范

对象是不合语义的数据。 

3.什么是数据库的完整性约束条件?可分为哪几类?

答:完整性约束条件是指数据库中的数据应该满足的语义约束条件。 

 一般可以分为六类: 

静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、

动态关系约束。 

的完整性控制机制应具有哪些功能?

答:RDBMS的完整性控制机制应具有三个方面的功能: 

(1)定义功能,即提供定义完整性约束条件的机制。 

(2)检查功能,即检查用户发出的操作请求是否违背了完整性约束条件。 

(3)违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采

取一定的动作来保证数据的完整性。 

在实现参照完整性时需要考虑哪些方面?

答:RDBMS在实现参照完整性时需要考虑以下几个方面: 

①外码是否可以接受空值 

②删除被参照关系的元组时的考虑,这时系统可能采取的作法有三种: 

(a)级联删除(CASCADES) 

(b)受限删除(RESTRICTED) 

(c)置空值删除(ULLIFIES) 

③在参照关系中插入元组时的问题,这时系统可能采取的作法有: 

   (a)受限插入 

(b)递归插入 

④修改关系中主码的问题 

一般是不能用 UPDATE语句修改关系主码的。如果需要修改主码值,只能先删

除该元组,然后再把具有新主码值的元组插入到关系中。 

如果允许修改主码,首先要保证主码的唯一性和非空,否则拒绝修改。然后要

区分是参照关系还是被参照关系。 

6.假设有下面两个关系模式:

 职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码; 

 部门(部门号,名称,经理名,电话),其中部门号为主码; 

用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约

束条件的定义:定义每个模式的主码;定义参照完整性;定义职工年

龄不得超过60岁。 

答: 

CREATE  TABLE  DEPT 

(Deptno  UMBER(2), 

Deptname  VARCHAR(10), 

Manager  VARCHAR(10), 

Phoneumber  Char(12) 

COSTRAIT  PK_SC  PRIMARY KEY (Deptno)); 

CREATE  TABLE  EMP 

(Empno  UMBER(4), 

Ename  VARCHAR(10), 

Age  UMBER(2), 

COSTRAIT  C1  CHECK (Age<<=60), 

Job  VARCHAR(9), 

Sal  UMBER(7,2), 

Deptno  UMBER(2), 

COSTRAIT  FK_DEPTO 

FOREIG KEY (Deptno) 

REFERECES  DEPT(Deptno)); 

7.关系系统中,当操作违反实体完整性、参照完整性和用户定义的完

整性约束条件时,一般是如何分别进行处理的? 

答:对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方

式进行处理。而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要

根据应用语义执行一些附加的操作,以保证数据库的正确性。具体的处理可以参

见上面第 5题或《概论》10.2中相应部分。 

 

 

第六章关系数据理论(教材195页)

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→Y,则称Y对X完全函数依赖;若X→Y,但Y不完全函

数依赖于X,则称Y对X部分函数依赖; 

候选码、主码  设 K为R(U,F)中的属性或属性组合,若K→U则K为R的

候选码。若候选码多于一个,则选定其中的一个为主码。 

外码:关系模式 R中属性或属性组X并非R的码,但X是另一个关系模式的码,

则称X是R的外部码也称外码。 

全码  整个属性组是码,称为全码(All‐key)。 

2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。 

 描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区。 

描述班级的属性有:班号、专业名、系名、人数、入校年份。 

描述系的属性有:系名、系号、系办公室地点、人数。 

描述学会的属性有:学会名、成立年份、地点、人数。 

有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若

干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有

若干学生。学生参加某学会有一个入会年份。 

 请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传

递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,

还是部分函数依赖。 

 指出各关系的候选码、外部码,有没有全码存在? 

答:关系模式:学生S(S#,S,SB,D,C#,SA) 

班级C(C#,CS,D,CUM,CDATE) 

系D(D#,D,DA,DUM) 

学会P(P,DATE1,PA,PUM) 

学生‐‐学会SP(S#,P,DATE2) 

其中,S#—学号,S—姓名,SB—出生年月,SA—宿舍区,C#—班号,CS—

专业名,CUM—班级人数,CDATE—入校年份,D#—系号,D—系名,DA—系

办公室地点,DUM—系人数,P—学会名,DATE1—成立年月,PA—地点,PUM—

学会人数,DATE2—入会年份 

每个关系模式的极小函数依赖集: 

S:S#→S,S#→SB,S#→C#,C#→D,D→SA 

C:C#→CS,C#→CUM,C#→CDATE,CS→D,(CS,CDATE)→C# 

D:D#→D,D→D#,D#→DA,D#→DUM 

P:P→DATE1,P→PA,P→PUM 

SP:(S#,P)→DATE2 

S中存在传递函数依赖:S#→D, S#→SA, C#→SA 

C中存在传递函数依赖:C#→D 

(S#,P)→DATE2 和(CS,CDATE)→C#均为SP中的函数依赖,是完全函数依赖 

关系 候选码    外部码    全码  

S    S# C#      D       无  

C     C#   (CS,CDATE) D  无  

D   D#和D     无        无  

P     P        无        无  

SP  (S#,P) S#   P       无 

5.试举出三个多值依赖的实例。

答:(1)关系模式MSC(M,S,C)中,M表示专业,S表示学生,C表示该专业的

必修课。假设每个专业有多个学生,有一组必修课。设同专业内所有学生的选修

的必修课相同,实例关系如下。按照语义对于M的每一个值M i,S有一个完整

的集合与之对应而不问C取何值,所以M→→S。由于C与S的完全对称性,必

然有M→→C成立。 

M S C 

M 1 S1 C1 

M 1 S1 C2 

M 1 S2 C1 

M 1 S2 C2 

 …… …… …… 

(2)关系模式ISA(I,S,A)中,I表示学生兴趣小组,S表示学生,A表示某兴趣

小组的活动项目。假设每个兴趣小组有多个学生,有若干活动项目。每个学生必

须参加所在兴趣小组的所有活动项目,每个活动项目要求该兴趣小组的所有学生

参加。按照语义有I→→S,I→→A成立。 

(3)关系模式RDP(R,D,P)中,R表示医院的病房,D表示责任医务人员,P表示

病人。假设每个病房住有多个病人,有多个责任医务人员负责医治和护理该病房

的所有病人。按照语义有R→→D,R→→P成立。 

 

 

第七章数据库设计(教材234页)

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.数据字典的内容和作用是什么? 

答:数据字典是系统中各类数据描述的集合。数据字典的内容通常包括:数据

项、数据结构、数据流、数据存储、处理过程五个部分。其中数据项是数据的最

小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数

据结构的定义来描述数据流、数据存储的逻辑内容。 

数据字典的作用:数据字典是关于数据库中数据的描述,在需求分析阶段建立,

是下一步进行概念设计的基础,并在数据库设计过程中不断修改、充实、完善。 

(注意,数据库设计阶段形成的数据字典与后面讲到的数据字典不同,后者是 

DBMS关于数据库中数据的描述,当然两者是有联系的)。 

7.什么是数据库的概念结构?试述其特点和设计策略。 

答:概念结构是信息世界的结构,即概念模型,其主要特点是: 

(1)能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户

对数据的处理要求。是对现实世界的一个真实模型。 

(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参

与是数据库的设计成功的关键。 

(3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。 

(4)易于向关系、网状、层次等各种数据模型转换。 

概念结构的设计策略通常有四种: 

(1)自顶向下。即首先定义全局概念结构的框架,然后逐步细化; 

(2)自底向上。即首先定义各局部应用的概念结构,然后将它们集成起来,得

到全局概念 

结构; 

(3)逐步扩张。首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的

方式逐步生成其他概念结构,直至总体概念结构; 

(4)混合策略。即将自顶向下和自底向上相结合,用自顶向下策略设计一个全

 局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。

8.什么叫数据抽象?试举例说明。 

答:数据抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同

特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念

组成了某种模型。 

如分类这种抽象是:定义某一类概念作为现实世界中一组对象的类型。这些对

象具有某些共同的特性和行为。它抽象了对象值和型之间的 “is member of”的

语义。在E‐R模型中,实体型就是这种抽象。例如在学校环境中,李英是老师,

表示李英是教师类型中的一员,则教师是实体型,李英是教师实体型中的一个实

体值,具有教师共同的特性和行为:在某个系某个专业教学,讲授某些课程,从

事某个方向的科研。 

9.试述数据库概念结构设计的重要性和设计步骤。 

答:重要性:数据库概念设计是整个数据库设计的关键,将在需求分析阶段所

得到的应用需求首先抽象为概念结构,以此作为各种数据模型的共同基础,从而

能更好地、更准确地用某一 DBMS实现这些需求。 

设计步骤:概念结构的设计方法有多种,其中最经常采用的策略是自底向上方

法,该方法的设计步骤通常分为两步:第 1步是抽象数据并设计局部视图,第2

步是集成局部视图,得到全局的概念结构。 

10.为什么要视图集成?视图集成的方法是什么? 

答:在对数据库系统进行概念结构设计时一般采用自底向上的设计方法,把繁

杂的大系统分解子系统。首先设计各个子系统的局部视图,然后通过视图集成的

方式将各子系统有机的融合起来,综合成一个系统的总视图。这样设计清晰,由

简到繁。由于数据库系统是从整体角度看待和描述数据的,因此数据不再面向某

个应用而是整个系统。因此必须进行视图集成,使得数据库能被全系统的多个用

户、多个应用共享使用。 

一般说来,视图集成可以有两种方式: 

(1)多个分 E‐R图一次集成; 

(2)逐步集成,用累加的方式一次集成两个分 E‐R图。 

无论采用哪种方式,每次集成局部 E‐R图时都需要分两步走: 

(1)合并。解决各分E‐R图之间的冲突,将各分E‐R图合并起来生成初步E‐R图。 

(2)修改和重构。消除不必要的冗余,生成基本E‐R图。 

11.什么是数据库的逻辑结构设计?试述其设计步骤。 

答:数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本 E‐R图转换

为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。 

设计步骤为: 

(1)将概念结构转换为一般的关系、网状、层次模型; 

(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换; 

(3)对数据模型进行优化。 

 

 

第十章数据库恢复技术(教材289页)

1.试述事务的概念及事务的四个特性。 

答:事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做 ,

是一个不可分割的工作单位。 

事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)

和持续性(Durability)。这个四个特性也简称为ACID特性。 

原子性  事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么

都不做。 

一致性  事务执行的结果必须是使数据库从一个一致性状态变到另一个一致

性状态。 

隔离性  一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用

的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。 

持续性  持续性也称永久性(Permanence),指一个事务一旦提交,它对数据库

中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果

有任何影响。 

2.为什么事务非正常结束时会影响数据库数据的正确性,请列举一例

说明之。 

答:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状

态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完

成事务对数据库所做修改有一部分已写入物理数据库,这时数据库就处于一种不

正确的状态,或者说是不一致的状态。 

例如某工厂的库存管理系统中,要把数量为 Q的某种零件从仓库1移到仓库

2存放。 

则可以定义一个事务 T,T包括两个操作;Q1=Q1‐Q,Q2=Q2+Q。如果T非正

常终止时只做了第一个操作,则数据库就处于不一致性状态,库存量无缘无故少

了Q。 

3.数据库中为什么要有恢复子系统?它的功能是什么? 

答:因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破

坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的

正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此必须要有恢复

子系统。 

恢复子系统的功能是:把数据库从错误状态恢复到某一已知的正确状态(亦称

为一致状态或完整状态)。 

4.数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正

常执行?哪些故障破坏数据库数据? 

答:数据库系统中可能发生各种各样的故障,大致可以分以下几类: 

(1)事务内部的故障; 

(2)系统故障; 

(3)介质故障; 

(4)计算机病毒。 

事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒

破坏数据库数据。 

5.据库恢复的基本技术有哪些? 

答:数据转储和登录日志文件是数据库恢复的基本技术。 

当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将

数据库恢复到故障前的某个一致性状态。 

6.数据库转储的意义是什么?试比较各种数据转储方法。 

答:数据转储是数据库恢复中采用的基本技术。所谓转储即 DBA定期地将数

据库复制到磁带或另一个磁盘上保存起来的过程。当数据库遭到破坏后可以将后

备副本重新装入,将数据库恢复到转储时的状态。 

静态转储  在系统中无运行事务时进行的转储操作。静态转储简单,但必须等

待正运行的用户事务结束才能进行。同样,新的事务必须等待转储结束才能执行。

显然,这会降低数据库的可用性。 

动态转储  指转储期间允许对数据库进行存取或修改。动态转储可克服静态转

储的缺点,它不用等待正在运行的用户事务结束,也不会影响新事务的运行。但

是,转储结束时后援副本上的数据并不能保证正确有效。因为转储期间运行的事

务可能修改了某些数据,使得后援副本上的数据不是数据库的一致版本。 

为此,必须把转储期间各事务对数据库的修改活动登记下来,建立日志文件(log 

file)。这样,后援副本加上日志文件就能得到数据库某一时刻的正确状态。 

转储还可以分为海量转储和增量转储两种方式: 

海量转储  每次转储全部数据库。 

增量转储  每次只转储上一次转储后更新过的数据。从恢复角度看,使用海量

转储得到的后备副本进行恢复一般说来更简单些。但如果数据库很大,事务处理

又十分频繁,则增量转储方式更实用更有效。 

7.什么是日志文件?为什么要设立日志文件? 

答:(1)日志文件是用来记录事务对数据库的更新操作的文件。 

(2)设立日志文件的目的是: 进行事务故障恢复;进行系统故障恢复;协助后

备副本进行介质故障恢复。 

8.登记日志文件时为什么必须先写日志文件,后写数据库? 

答:把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件

中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完

成了一个。 

如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢

复这个修改了。如果先写日志,但没有修改数据库,在恢复时只不过是多执行一

次 UDO操作,并不会影响数据库的正确性。所以一定要先写日志文件,即首

先把日志记录写到日志文件中,然后写数据库的修改。 

9.针对不同的故障,试给出恢复的策略和方法。(即如何进行事务故

障的恢复?系统故障的恢复?介质故障恢复?) 

答:事务故障的恢复: 

事务故障的恢复是由 DBMS自动完成的,对用户是透明的。 

DBMS执行恢复步骤是: 

(1)反向扫描文件日志(即从最后向前扫描日志文件),查该事务的更新操作。  

(2)对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数

据库。 

(3)继续反向扫描日志文件,做同样处理。 

(4)如此处理下去,直至读到此事务的开始标记,该事务故障的恢复就完成了。 

系统故障的恢复: 

系统故障可能会造成数据库处于不一致状态: 

①是未完成事务对数据库的更新可能已写入数据库。 

②是已提交事务对数据库的更新可能还留在缓冲区,没来得及写入数据库。 

因此恢复操作就是要撤销 (UDO)故障发生时未完成的事务,重做(REDO)已完

成的事务。 

系统的恢复步骤是: 

(1)正向扫描日志文件,出在故障发生前已经提交的事务队列(REDO队列)

和未完成的事务队列(UDO队列)。 

(2)对撤销队列中的各个事务进行UDO处理。 

进行 UDO处理的方法是:反向扫描日志文件,对每个UDO事务的更新操

作执行逆操作,即将日志记录中“更新前的值”(Before Image)写入数据库。 

(3)对重做队列中的各个事务进行REDO处理。 

进行 REDO处理的方法是:正向扫描日志文件,对每个REDO事务重新执行日

志文件登记的操作。即将日志记录中“更新后的值”(After Image)写入数据库。 

介质故障的恢复: 

介质故障是最严重的一种故障。 

恢复方法是重装数据库,然后重做已完成的事务。具体过程是: 

(1)DBA装入最新的数据库后备副本(离故障发生时刻最近的转储副本),使数

据库恢复到转储时的一致性状态。 

(2)DBA装入转储结束时刻的日志文件副本。 

(3)DBA启动系统恢复命令,由DBMS完成恢复功能,即重做已完成的事务。 

10.什么是检查点记录?检查点记录包括哪些内容?

答:检查点记录就是在日志文件中增加一类新的记录,增加一个重新开始文件,

并让恢复子系统在登录日志文件期间动态地维护日志。 

  检查点记录的内容包括: 

①建立检查点时刻所有正在执行的事务清单; 

  ②这些事务最近一个日志记录的地址。 

11.具有检查点的恢复技术有什么优点? 

答:利用日志技术进行数据库恢复时,恢复子系统必须搜索日志,确定哪些事

务需要 REDO,哪些事务需要UDO。一般来说,需要检查所有日志记录。这样

做有两个问题: 

①是搜索整个日志将耗费大量的时间。 

②是很多需要 REDO处理的事务实际上已经将它们的更新操作结果写到数据

库中了,恢复子系统又重新执行了这些操作,浪费了大量时间。 

检查点技术就是为了解决这些问题。 

12.试述使用检查点方法进行恢复的步骤。

答:检查点方法的恢复步骤: 

①从重新开始文件中到最后一个检查点记录在日志文件中的地址,由该地址

在日志文件中到最后一个检查点记录。 

②由该检查点记录得到检查点建立时刻所有正在执行的事务清单 

ACTIVE‐LIST。 

这里建立两个事务队列: 

(1)UDO‐LIST:需要执行undo操作的事务集合; 

(2)REDO‐LIST:需要执行redo操作的事务集合; 

把ACTIVE‐LIST暂时放入UDO‐LIST队列,REDO队列暂为空。 

③从检查点开始正向扫描日志文件 

(1)如有新开始的事务 Ti,把Ti暂时放入UDO‐LIST队列; 

(2)如有提交的事务 Tj,把Tj从UDO‐LIST队列移到REDO‐LIST队列,直到日

志文件结束; 

④对UDO‐LIST中的每个事务执行UDO操作, 对REDO‐LIST中每个事务执行

REDO操作。 

13.什么是数据库镜像?它有什么用途?

答:数据库镜像即根据 DBA的要求,自动把整个数据库或者其中的部分关键

数据复制到另一个磁盘上。每当主数据库更新时,DBMS自动把更新后的数据复

制过去,即DBMS自动保证镜像数据与主数据的一致性。 

数据库镜像的用途有: 

①是用于数据库恢复。当出现介质故障时,可由镜像磁盘继续提供使用,同时 

DBMS自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库

副本。 

②是提高数据库的可用性。在没有出现故障时,当一个用户对某个数据加排它

锁进行修改时,其他用户可以读镜像数据库上的数据,而不必等待该用户释放锁。 

 

 

第十一章并发控制(教材305页)

1.在数据库中为什么要并发控制?并发控制技术能保证事务的哪些

特性?

答:数据库是共享资源,通常有许多个事务同时在运行。 

当多个事务并发地存取数据库时就会产生同时读取和 /或修改同一数据的情

况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一

致性。所以数据库管理系统必须提供并发控制机制。 

  并发控制技术可以保证事务的隔离性和一致性。 

2.并发操作可能会产生哪几类数据不一致?用什么方法能避免各种

不一致的情况? 

答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读 “脏”

数据。 

(1)丢失修改(Lost Update) 

两个事务 T1和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了)T1

提交的结果,导致T1的修改被丢失。 

(2)不可重复读(on‐Repeatable Read) 

不可重复读是指事务 T1读取数据后,事务T2执行更新操作,使T1无法再现

前一次读取结果。 

(3)读“脏”数据(Dirty Read) 

读“脏”数据是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一

数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复原值,T2读到的

数据就与数据库中的数据不一致,则T2读到的数据就为“脏”数据,即不正确

的数据。 

避免不一致性的方法和技术就是并发控制。最常用的并发控制技术是封锁技

术。 

也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并

发控制。 

3.什么是封锁?基本的封锁类型有几种?试述它们的含义。 

答:封锁就是事务 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做任何

修改。 

4.什么是封锁协议?不同级别的封锁协议的主要区别是什么?

答:在运用封锁技术对数据加锁时,要约定一些规则。例如,在运用 X锁和S

锁对数据对象加锁时,要约定何时申请X锁或S锁、何时释放封锁等。这些约定

或者规则称为封锁协议(Locking Protocol)。对封锁方式约定不同的规则,就形成

了各种不同的封锁协议。不同级别的封锁协议,例如《概论》中介绍的三级封锁

协议,三级协议的主要区别在于什么操作需要申请封锁,何时申请封锁以及何时

释放锁(即持锁时间的长短)。 

一级封锁协议  事务 T在修改数据R之前必须先对其加X锁,直到事务结束

才释放。 

二级封锁协议  一级封锁协议加上事务 T在读取数据R之前必须先对其加S

锁,读完后即可释放S锁。 

三级封锁协议  一级封锁协议加上事务 T在读取数据R之前必须先对其加S

锁,直到事务结束才释放。 

5.什么是活锁?试述活锁的产生原因和解决方法。 

答:如果事务T1封锁了数据R,事务T2又请求封锁R,于是T2等待。T3也

请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求,T2仍然等

待。然后T4又请求封锁R,当T3释放了R上的封锁之后系统又批准了T4的请

求……T2有可能永远等待,这就是活锁的情形。 

活锁产生的原因是当一系列封锁不能按照其先后顺序执行时,就可能导致一些

事务无限期等待某个封锁,从而导致活锁。 

避免活锁的简单方法是采用先来先服务的策略。当多个事务请求封锁同一数据

对象时,封锁子系统按请求封锁的先后次序对事务排队,数据对象上的锁一旦释

放就批准申请队列中第一个事务获得锁。 

6.什么是死锁?请给出预防死锁的若干方法。

答:如果事务T1封锁了数据R1,T2封锁了数据R2,然后T1有请求封锁R2,

因T2已封锁了R2于是T1等待T2释放R2上的锁。接着T2又申请封锁R1,因

T1已封锁了R1,T2也只能等待T1释放R1上的锁。这样就出现了T1在等待T2,

而T2又在等待T1的局面,T1和T2两个事务永远不能结束,形成死锁。 

在数据库中,产生死锁的原因是两个或多个事务都已封锁了一些数据对象,然

后又都请求已被其他事务封锁的数据加锁,从而出现死等待。 

防止死锁的发生其实就是要破坏产生死锁的条件。预防死锁通常有两种方法: 

(1)一次封锁法 

要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。 

(2)顺序封锁法 

预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。 

不过,预防死锁的策略不大适合数据库系统的特点。 

7.请给出检测死锁发生的一种方法,当发生死锁后如何解除死锁?

答:数据库系统一般采用允许死锁发生,DBMS检测到死锁后加以解除的方法。 

DBMS中诊断死锁的方法与操作系统类似,一般使用超时法或事务等待图法。 

超时法是:如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。

超时法实现简单,但有可能误判死锁,事务因其他原因长时间等待超过时限时,

系统会误认为发生了死锁。若时限设置得太长,又不能及时发现死锁发生。 

DBMS并发控制子系统检测到死锁后,就要设法解除。通常采用的方法是选择

一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有锁,使其他事

务得以继续运行下去。当然,对撤销的事务所执行的数据修改操作必须加以恢复。 

8.什么样的并发调度是正确的调度?

答:可串行化( Serializable)的调度是正确的调度。 

可串行化的调度的定义:多个事务的并发执行是正确的,当且仅当其结果与按

某一次序串行地执行它们时的结果相同,我们称这种调度策略为可串行化的调

度。 

9.不同封锁协议与系统一致性级别的关系是什么? 

答:不同的封锁协议对应不同的一致性级别。 

一级封锁协议可防止丢失修改,并保证事务 T是可恢复的。在一级封锁协议

中,对读数据是不加S锁的,所以它不能保证可重复读和不读“脏”数据。 

 二级封锁协议除防止了丢失修改,还可进一步防止读 “脏”数据。在二级封

锁协议中,由于读完数据后立即释放S锁,所以它不能保证可重复读。 

在三级封锁协议中,无论是读数据还是写数据都加长锁,即都要到事务结束时

才释放封锁。所以三级封锁协议除防止了丢失修改和不读 “脏”数据外,还进

一步防止了不可重复读。 

10.试述两段锁协议的概念。

答:两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁。 

(1)在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁; 

(2)在释放一个封锁之后,事务不再申请和获得任何其他封锁。 

“两段”的含义是,事务分为两个阶段: 

第一阶段是获得封锁,也称为扩展阶段。在这阶段,事务可以申请获得任何数

据项上的任何类型的锁,但是不能释放任何锁。 

第二阶段是释放封锁,也称为收缩阶段。在这阶段,事务释放已经获得的锁,

但是不能再申请任何锁。 

13.为什么要引进意向锁?意向锁的含义是什么?

答:引进意向锁是为了提高封锁子系统效率。该封锁子系统支持多种封锁粒度。 

原因是:在多粒度封锁方法中一个数据对象可能以两种方式加锁 —显式封锁

和隐式封锁。因此系统在对某一数据对象加锁时不仅要检查该数据对象上有无

(显式和隐式)封锁与之冲突;还要检查其所有上级结点和所有下级结点,看申

请的封锁是否与这些结点上的(显式和隐式)封锁冲突;显然,这样的检查方法

效率很低。为此引进了意向锁。 

意向锁的含义是:对任一个结点加锁时,必须先对它的上层结点加意向锁。 

例如事务T要对某个元组加X锁,则首先要对关系和数据库加IX锁。换言之,

对关系和数据库加IX锁,表示它的后裔结点—某个元组拟(意向)加X锁。 

引进意向锁后,系统对某一数据对象加锁时不必逐个检查与下一级结点的封锁

冲突了。例如,事务 T要对关系R加X锁时,系统只要检查根结点数据库和R

本身是否已加了不相容的锁(如发现已经加了IX,则与X冲突),而不再需要搜

索和检查R中的每一个元组是否加了X锁或S锁。 

14.试述常用的意向锁:IS锁,IX锁,SIX锁。 

答:IS锁如果对一个数据对象加 IS锁,表示它的后裔结点拟(意向)加S

锁。例如,要对某个元组加S锁,则要首先对关系和数据库加IS锁 

IX锁如果对一个数据对象加 IX锁,表示它的后裔结点拟(意向)加X锁。

例如,要对某个元组加X锁,则要首先对关系和数据库加IX锁。 

SIX锁如果对一个数据对象加 SIX锁,表示对它加S锁,再加IX锁,即SIX = 

S + IX。 

 

 

第十二章数据库管理系统(教材330页)

1.试述DBMS的基本功能? 

答:DBMS主要是实现对共享数据有效的组织、管理和存取。其基本功能有: 

(1)数据库定义功能; 

(2)数据存取功能; 

(3)数据库运行管理功能; 

(4)数据组织、存储和管理功能; 

(5)数据库的建立和维护功能; 

(6)其他功能。 

2.试述DBMS四种进程组织方案,并分析各种方案的特点和优缺点。 

答:DBMS 四种进程组织方案是: 

方案  个DB用户应用程序对应 个用户进程,DBMS作为应用程序的子

程序被连入用户应用程序中。因此这种方案也称为连入式方案。数据库系统中共

有个进程。 

2方案  每个用户进程有一个DBMS进程为之服务,因此个用户进程就有

个DBMS进程,共2个进程。 

+1方案  个用户进程仅有一个DBMS进程为它们服务,因此共+1个进程,

共+1个进程。 

+M方案  用M个DBMS进程为个用户进程提供服务,一般M小于。 

3.理解并解释下列术语的含义:进程、任务、“轻权”进程、线程、

线索。

答:进程  操作系统中的核心概念,进程是程序的一次执行过程。进程既是资

源分配的最小单位也是操作系统调度的基本单位。 

任务  在单处理器系统中任务与进程是类似的概念。随着多处理器系统以及并

行计算技术的发展,进程概念被进一步细划为任务(Task)与线程(Thread)的

概念。任务是申请资源的基本单位,而线程是调度和运行的基本单位。 

轻权进程  线程又被称为 “轻权”或“轻量” 进程。 

线索  是数据库系统中的概念,它借鉴了操作系统中 “线程”的概念:整个

DBMS可以看作是一个Task,当有一个用户申请数据库服务时,Task分配多个

Thread为之服务,多个Thread并行工作,共享资源。一般地讲,DBMS中的线

索是DBMS的一个执行流。 

4.什么是DBMS的多线索机制?有什么优点?

答:DBMS借鉴了操作系统中“线程”的概念和技术,在DBMS的实现中采用

多线索机制。 

一般地讲,DBMS中的线索是DBMS的一个执行流,它服务于整个DBMS系统

或DBMS中的某个用户;DBMS服务器响应客户请求是通过为每个用户创建线索

(而不是创建进程)来完成的。DBMS的各个线索能在逻辑上并行执行;它们共

存于一个服务器进程中,共享DBMS的所有资源,如数据库缓冲区和CPU时间;

线索是DBMS的调度单位,服务器进程能按一定的调度算法调度用户请求。 

与进程相比,线索具有以下优点: 

(1)线索比进程占用较少的系统资源,如内存 

(2)线索调度比较灵活,可控制性强 

(3)线索切换开销较小 

(4)线索间通信简便 

由哪些主要的程序模块组成?

答:DBMS主要的程序模块有: 

(1)数据定义模块 

(2)数据操纵模块 

(3)数据库运行管理方面的程序模块 

(4)数据库组织、存储和管理方面的程序模块 

(5)数据库建立、维护和其他方面的程序模块 

的语言处理层是如何处理一个DDL语句的?

答:对DDL语句,语言处理层首先把它翻译成内部表示,然后把它存储在系

统的数据字典中。 

7.试述RDBMS的语言处理层处理一个DML语句的大致过程。

答:先对DML语句进行词法分析和语法分析,并把外部关系名、属性名转换

为内部名。然后,根据数据字典中的内容进行查询检查,包括审核用户的存取权

限和完整性检查。接下来对查询进行优化。最后将DML语句转换成一串可执行

的存取动作的这一过程。 

8.什么是处理DML语句的解释方法和预编译方法?

答:解释方法  直到执行前,数据库DML语句都以原始字符串的形式保存。

当执行到该语句是,才利用解释程序去完成全部过程,同时予以执行。该方法通

过尽量推迟束缚过程来赢得数据独立性。 

预编译方法  在用户提交DML语句之后,在运行之前对它进行翻译处理,保

存产生好的可执行代码。当需要运行时,取出保存的可执行代码加以执行。 

9.试述数据存取层主要的子系统及其功能。

答:数据存取层的功能子系统有: 

①记录存取、事务管理子系统提供按某个属性值直接取一个元组和顺序取一

个元组的存取原语。

②日志登记子系统与事务管理子系统相配合,完成RDBMS对事务和数据库的

恢复任务,把事务开始、回滚、提交;对元组的插入、删除、修改;对索引记录

的插入、删除、修改等没一个操作作为一个日志记录存入日志文件中。

③控制信息管理模块利用专门的数据区登记不同记录类型以及不同存取路

径的说明信息和控制信息。这些信息是存取元组和管理事务的依据。它提供对数

据字典中说明信息的读取、增加、删除和修改操作。

④排序/合并子系统完成对关系元组的重新排序以达到用户所要求的有序输

出,加速关系运算的中间步骤。

⑤存取路径维护子系统对数据执行插入、删除、修改操作的同时对相应的存

取路径进行维护。 

10.操作系统中也有并发控制问题,为什么DBMS还要并发控制机制?

答:操作系统提供的封锁机制和 DBMS的封锁机制在封锁对象,封锁对象的

状态,封锁的粒度,及封锁的类型上存在很大的差别,操作系统的封锁机制不能

直接应用在DBMS中,DBMS必须重新设计,来满足复杂的封锁需求。 

中为什么要设置系统缓冲区?

答:设立系统缓冲区的原因: 

①是为了把存储层以上 DBMS各系统成分和实在的外存设备隔离,外存设备

的变更不会影响这些系统,使DBMS具有设备独立性。 

②是为了提高效率。DBMS利用系统缓冲区滞留数据。当需要读取数据时系统

首先到缓冲区中查。只有当缓冲区中不存在该数据时才真正从外存读入该数据

所在的页面。当要写回一元组到数据库中时,系统并不把它立即写回外存,仅把

该元组所在的缓冲区页面作一标志,表示可以释放。只有当该用户事务结束或缓

冲区已满需要调入新页时才按一定的淘汰策略把缓冲区中已有释放标志的页面

写回外存。这样可以减少I/O次数,提高系统效率。 

13.数据库中要存储和管理的数据内容包括哪些方面?

答:数据库中存储四个方面的数据: 

(1)数据描述,即数据的外模式、模式、内模式; 

(2)数据本身; 

(3)数据之间的联系; 

(4)存取路径。 

这四个方面的数据内容都要采用一定的方式组织、存储起来。 

 

 

第十三章数据库技术新发展(教材350页)

2.试述数据库技术的发展过程。

答:(1)数据模型是数据库系统的核心和基础。数据库技术的三个发展阶段应

该按照数据模型的进展来界定。按照数据模型的进展,数据库技术可以相应地分

为三个发展阶段。 

(2)数据模型的发展经历了格式化数据模型(包括层次数据模型和网状数据模

型)、关系数据模型两个阶段,以面向对象数据模型为代表的非传统数据模型的

阶段。 

(3)同学们可以从每一代数据库系统的主要特征、代表性系统、主要成就、优

点和不足来了解数据库技术的发展过程。 

层次数据库系统和网状数据库系统的数据模型虽然分别为层次模型和网状模

型,但实质上层次模型是网状模型的特例。它们都是格式化模型。它们从体系结

构、数据库语言到数据存储管理均具有共同特征,是第一代数据库系统。 

关系数据库系统支持关系模型。关系模型不仅简单、清晰,而且有关系代数作

为语言模型,有关系数据理论作为理论基础。因此,关系数据库系统具有形式基

础好、数据独立性强、数据库语言非过程化等特,标志着数据库技术发展到了

第二代。 

第二代数据库系统的数据模型虽然描述了现实世界数据的结构和一些重要的

相互联系,但是仍不能捕捉和表达数据对象所具有的丰富而重要的语义,因此尚

只能属于语法模型。 

第三代的数据库系统将是以更加丰富的数据模型和更强大的数据管理功能为

特征,从而满足传统数据库系统难以支持的新的应用要求。 

3.当前数据库技术发展的主要特征是什么?

答:新一代数据库技术的特点是: 

(1)面向对象的方法和技术对数据库发展的影响最为深远,数据库研究人员借

鉴和吸收了面向对象的方法和技术,提出了面向对象数据模型(简称对象模型)。

该模型克服了传统数据模型的局限性,促进了数据库技术在一个新的技术基础上

继续发展。 

(2)数据库技术与多学科技术的有机结合,计算机领域中其他新兴技术的发展

对数据库技术产生了重大影响。传统的数据库技术和其他计算机技术如,网络通

信技术、人工智能技术、面向对象程序设计技术、并行计算技术移动计算技术等

的互相结合、互相渗透,使数据库中新的技术内容层出不穷。 

(3)面向应用领域的数据库技术的研究在传统数据库系统基础上,结合各个应

用领域的特点,研究适合该应用领域的数据库技术,如数据仓库、工程数据库、

统计数据库、科学数据库、空间数据库、地理数据库等,这是当前数据库技术发

展的又一重要特征。 

4.第三代数据库系统的主要特点是什么?

答:经过多年的研究和讨论,对第三代数据库系统的基本特征已有了共识。 

(1)第三代数据库系统应支持数据管理、对象管理和知识管理,除提供传统的

数据管理服务外,第三代数据库系统将支持更加丰富的对象结构和规则,应该集

数据管理、对象管理和知识管理为一体。由此可以导出第三代数据库系统必须支

持OO数据模型。 

(2)第三代数据库系统必须保持或继承第二代数据库系统的技术,第三代数据

库系统应继承第二代数据库系统已有的技术,。如第二代数据库系统的非过程化

数据存取方式和数据独立性。不仅能很好的支持对象管理和规则管理,而且能更

好地支持原有的数据管理,支持多数用户需要的即席查询等。 

(3)第三代数据库系统必须对其他系统开放数据库系统的开放性表现在:支持

数据库语言标准;在网络上支持标准网络协议;系统具有良好的可移植性、可连

接性、可扩展性和可互操作性等。 

5.试述数据模型在数据库系统发展中的作用和地位。

答:(1)数据模型是数据库系统的核心和基础。 

(2)数据库的发展集中表现在数据模型的发展。 

6.请阐述以下数据库系统的主要概念、研究的主要问题及其发展过

程:

分布式数据库系统、并行数据库系统、主动数据库系统、多媒体数据库系统、

模糊数据库系统。

答:分布式数据库系统  分布式数据库是由一组数据组成的,这组数据分布在

计算机网络的不同计算机上,网络中的每个结点具有独立处理的能力(称为场地

自治),可以执行局部应用。同时,每个结点也能通过网络通信子系统执行全局

应用。 

并行数据库系统  并行数据库系统是在并行机上运行的具有并行处理能力的

数据库系统。并行数据库系统是数据库技术与并行计算技术相结合的产物。 

主动数据库系统  主动数据库是相对于传统数据库的被动性而言的。主动数据

库能根据数据库的当前状态,主动适时地做出反应,执行某些操作,向用户提供

有关信息。主动数据库是传统数据库技术与人工智能技术、面向对象技术相结合

的产物。 

多媒体数据库系统  可实现对格式化和非格式化的多媒体数据的存储、管理和

查询的数据库系统。 

模糊数据库系统  存储、组织、管理和操作模糊数据的数据库系统。 

 

 

第十七章数据仓库与联机分析处理技术(教材417页) 

1.试述数据仓库的产生背景。

答:(1)数据库技术的发展和广泛应用使许多部门、企业积累了大量的原始数

据,这些数据是宝贵的资源。 

(2)对这些数据的分析和利用可以了解企业运行的情况,发现存在的问题,预

测未来的趋势。 

(3)数据库系统作为数据管理的先进技术已经成功用于事务处理。但是它对分

析处理的支持一直不能令人满意,具体表现在: 

①分析处理时性能低。 

②分析的数据对象分散,而且不一致,即缺乏对数据的清洗、集成能力。 

③事务处理系统不具备动态集成的能力。 

④系统缺乏对历史数据的有效组织和存储能力,而分析方法必须以大量的历史

数据为依托。 

⑤在事务处理系统中存储的是细节数据,不适合进行分析处理,而事务处理系

统又不具备对数据的综合能力。 

总之,DSS对数据在空间和时间的广度上都有了更高的要求,。而事务处理环

境难以满足这些要求。在事务型环境中直接构建分析型应用是一种失败的尝试。

数据仓库正是为了构建这种新的分析处理环境而出现的一种数据存储和组织技

术。但是数据仓库的主要驱动力并不是过去的缺点,而是市场商业经营行为的改

变,市场竞争要求捕获和分析事务级的业务数据。 

2.数据仓库数据的基本特征是什么?

答:四个基本特征是: 

(1)数据仓库的数据是面向主题的; 

(2)数据仓库的数据是集成的; 

(3)数据仓库的数据是不可更新的; 

(4)数据仓库的数据是随时间不断变化的。 

3.什么是联机分析处理?什么是数据挖掘?

答:联机分析处理 OLAP是以海量数据为基础的复杂分析技术。 

OLAP支持各级管理决策人员从不同的角度、快速灵活地对数据仓库中的数据

进行复杂查询和多维分析处理,并且能以直观易懂的形式将查询和分析结果提供

给决策人员,以方便他们及时掌握企业内外的情况,辅助各级领导进行正确决策,

提高企业的竞争力。 

数据挖掘是从超大型数据库(VLDB)或数据仓库中发现并提取隐藏在内的模式

的过程,这些模式是有效的、新颖的、有潜在使用价值的和易于理解的。目的是

帮助决策者寻数据间潜在的关联,发现经营者被忽略的要素,而这些要素对预

测趋势、决策行为也许是十分有用的信息。 

4.基于数据库技术的DSS解决方案是什么?

答:基于数据库技术的 DSS的解决方案是:DW+OLAP+DM DSS的可行方案。 

数据仓库、联机分析处理和数据挖掘是作为三种独立的信息处理技术出现的。

数据仓库用于数据的存储和组织, OLAP集中于数据的分析,数据挖掘则致力于

知识的发现。由于这三种技术内在的联系性和互补性,将它们结合起来是一种新

的DSS构架。是DSS有效而可操作的整体解决方案。 


本文发布于:2022-08-01 16:33:25,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/falv/fa/82/50878.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 站长QQ:55-9-10-26