数据库基础教程课后习题答案(顾韵华) 下载本文

习题1

1、简述数据库系统的特点。 答:数据库系统的特点有:

1)数据结构化

在数据库系统中,采用统一的数据模型,将整个组织的数据组织为一个整体;数据不再仅面向特定应用,而是面向全组织的;不仅数据内部是结构化的,而且整体是结构化的,能较好地反映现实世界中各实体间的联系。这种整体结构化有利于实现数据共享,保证数据和应用程序之间的独立性。

2)数据共享性高、冗余度低、易于扩充

数据库中的数据能够被多个用户、多个应用程序共享。数据库中相同的数据不会多次重复出现,数据冗余度降低,并可避免由于数据冗余度大而带来的数据冲突问题。同时,当应用需求发生改变或增加时,只需重新选择不同的子集,或增加数据即可满足。

3)数据独立性高

数据独立性是由DBMS的二级映像功能来保证的。数据独立于应用程序,降低了应用程序的维护成本。

4)数据统一管理与控制

数据库中的数据由数据库管理系统(DBMS)统一管理与控制,应用程序对数据的访问均经由DBMS。DBMS提供四个方面的数据控制功能:并发访问控制、数据完整性、数据安全性保护、数据库恢复。 2、什么是数据库系统?

答:在计算机系统上引入数据库技术就构成一个数据库系统(DataBase System,DBS)。数据库系统是指带有数据库并利用数据库技术进行数据管理的计算机系统。DBS有两个基本要素:一是DBS首先是一个计算机系统;二是该系统的目标是存储数据并支持用户查询和更新所需要的数据。

3、简述数据库系统的组成。

答:数据库系统一般由数据库、数据库管理系统(及其开发工具)、数据库管理员(DataBase Administrator,DBA)和用户组成。

4、试述数据库系统的三级模式结构。这种结构的优点是什么?

答:数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成,同时包含了二级映像,即外模式/模式映像、模式/内模式映像,如下图所示。

应用1应用2应用3应用4应用5??外模式A外模式B??外模式/模式映像模式模式/内模式映像模式数据库

数据库系统的这种结构具有以下优点:

(1)保证数据独立性。将外模式与模式分开,保证了数据的逻辑独立性;将内模式与模式分开,保证了数据的物理独立性。

(2)有利于数据共享,减少了数据冗余。

(3)有利于数据的安全性。不同的用户在各自的外模式下根据要求操作数据,只能对

限定的数据进行操作。

(4)简化了用户接口。按照外模式编写应用程序或输入命令,而不需了解数据库全局逻辑结构和内部存储结构,方便用户系统。

5、什么是数据的物理独立性与逻辑独立性?并说明其重要性。 答:(1)数据的物理独立性是指数据的物理结构(包括存储结构、存取方式等)的改变,存储设备的更换,物理存储的更换,存取方式改变等都不影响数据库的逻辑结构,从而不致引起应用程序的变化。

(2)数据的逻辑独立性是指数据库总体逻辑结构的改变,如修改数据模式,增加新的数据类型、改变数据间联系等,不需要相应修改应用程序。

(3)数据的独立性使得数据库中数据独立于应用程序而不依赖于应用程序,也就是说数据的逻辑结构、存储结构与存取方式的改变不影响应用程序。相应的,数据的独立性也使得应用程序的编制不再依赖于数据的物理和逻辑结构,提高了应用程序的可移植性与鲁棒性。从理论上说,数据的独立性可以使数据的组织和应用程序的编制完全分离。 6、数据库管理系统的功能主要有哪几方面?

答:数据库管理系统的主要功能包括以下几个方面:

(1)有效地组织、存取和维护数据。

(2)数据定义功能。DBMS通过数据定义语言(Data Definition Language,DDL)定义数据库的各类数据对象,包括数据的结构、数据约束条件等。

(3)数据操纵功能。DBMS提供数据操纵语言(Data Manipulation Language,DML),用户使用DML实现对数据库中的数据进行查询、增加、删除和修改等操作。

(4)数据库的事务管理和运行管理。DBMS提供数据控制语言(Data Control Language,DCL),数据库管理员使用DCL实现对数据库的安全性保护、完整性检查、并发控制、数据库恢复等数据库控制功能。

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

(6)其他功能。包括:数据库初始数据输入与转换、数据库转储、数据库重组、数据库性能监视与分析、数据通信等,这些功能通常由DBMS提供的实用程序或管理工具完成。 7、数据库系统的人员主要包括哪些?

答:数据库系统的人员主要包括:数据库管理员、系统分析员和数据库设计人员、应用程序员和最终用户。

8、什么是数据模型?

答:数据模型(Data Model)是一种抽象模型,是对现实世界数据特征的抽象。 9、什么是概念模型?E-R模型的三要素是什么?

答:概念模型是面向用户的模型,是现实世界到机器世界的一个中间层次。其基本特征是按用户观点对信息进行建模。概念模型是现实世界到信息世界的抽象,是数据库设计人员与用户进行交流的工具。

E-R模型的三要素为: (1)实体(entity)

实体是指客观存在并可相互区别的事物。实体可以是人、事或物,也可以是抽象的概念。例如:一件商品、一个客户、一份订单等都是实体。

(2)属性(attribute) 实体通常由若干特征,每个特征称为实体的一个属性。属性刻画了实体在某方面的特性。例如:商品实体的属性可以有商品编号、商品类别、商品名称、生产商等。

(3)联系(relationship)

现实世界中事物之间的联系反映在E-R模型中就是实体间的联系。例如,订单就是客

户和商品之间的联系。

10、举例说明联系的三种类型。 答:一对一联系(1:1):如果对于实体集A中的任一实体,在实体集B中至多有一个实体与之联系;反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。例如:在公司中,一个部门只有一个经理,而一个经理只在一个部门任职,则部门与经理之间具有一对一联系。

一对多联系(1:n):如果对于实体集A中的任一实体,在实体集B中有n(n≥1)个实体与之联系;而对于实体集B中的每一个实体,实体集A中至多有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1:n。例如:在公司中,一个部门可有多个职工,而一个职工只在一个部门任职,则部门与职工之间具有一对多联系。

多对多联系(m:n):如果对于实体集A中的任一实体,在实体集B中有n(n≥1)个实体与之联系;而对于实体集B中的每一个实体,实体集A中有m(m≥1)个实体与之联系,则称实体集A与实体集B具有多对多联系,记为m:n。例如:在商品订购中,一个客户可订购多种商品,而一种商品也可被多个客户订购,则客户与商品之间具有多对多联系。 11、什么是逻辑数据模型?逻辑数据模型的三要素是什么? 答:逻辑数据模型是数据库管理系统呈现给用户的数据模型,即用户从数据库中看到的数据组织形式。逻辑数据模型的三要素为:

(1)数据结构

数据结构是对系统静态特性的描述,主要描述数据库组成对象以及对象之间的联系。数据结构是刻画数据模型最重要的方面。因此在数据库系统中,通常按照其数据结构的类型来命名数据模型。主要的数据模型有层次模型、网状模型和关系模型。

(2)数据操作

数据操作指对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则,它是对数据库动态特性的描述。数据库中的数据操作主要分为查询、更新两大类,其中数据更新主要是指对数据记录的增、删、改。数据模型需要定义这些操作的语义、操作符号、操作规则及实现操作的相关语句。

(3)完整性约束

完整性约束是指对数据的一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和存储规则,用以限定符合数据模型的数据库状态以及状态的变化,保证数据的正确、有效、相容。 12、简述关系模型的特点。 答:关系模型主要有以下特点:

(1)关系模型建立在严格的数学基础之上。

(2)数据结构简单清晰,用户易懂易用。关系模型的数据结构虽然简单,但却能表达丰富的语义,能够较好地描述现实世界的实体以及实体间的各种联系。

(3)数据物理存取路径对用户是透明的,有更高的数据独立性、更好的数据安全性。

习题2

1、解释以下术语:关系、元组、属性、码、域、分量、关系模式。 答: (1)关系:一个关系(relation)指一张二维表。

(2)元组:一个元组(tuple)指二维表中的一行。

(3)属性:一个属性(attribute)二维表中的一列,表中每列均有名称,即属性名。 (4)码:码(key)也称为键、关键字、关键码,指表中可惟一确定元组的属性或属性

组合。

(5)域:域(domain)指属性的取值范围。 (6)分量:分量指元组中的一个属性值。

(7)关系模式:关系模式是对关系“型”的描述,通常表示为:关系名(属性1,…,属性n)。

2、解释关系数据库的“型”和“值”。

答:关系数据库的型即关系数据库模式,是对关系数据库结构的描述。关系数据库模式包括若干域的定义以及在这些域上定义的若干关系模式。通常以关系数据库中包含的所有关系模式的集合来表示关系数据库模式。关系数据库的值是由关系数据库模式中的各关系模式在某一时刻对应的关系的集合。 3、解释空值的含义。

答:在关系元组中允许出现空值,空值表示信息的空缺,即未知的值或不存在值。 4、候选码应满足哪两个性质?

答:候选码应满足惟一性和最小性两个性质:

(1)惟一性。对关系R的任两个元组,其在属性集K上的值是不同的。

(2)最小性。属性集K=(Ai,Aj,?,Ak)是最小集,即若删除K中的任一属性,K都不满足最小性。

5、关系操作的特点是什么?

答:关系操作的特点是集合操作,即操作的对象和结果都是关系。 6、基本的关系操作包括哪些?

答:关系模型的基本操作包括查询和更新两大类:

(1)数据查询操作用于对关系数据进行各种检索。它是一个数据库最基本的功能,通过查询,用户可以访问关系数据库中的数据。查询可以在一个关系内进行,也可以在多个关系间进行。关系查询的基本单位是元组分量,查询即定位符合条件的元组。

(2)数据更新操作操作包括插入、删除和修改三种。数据删除的基本单位为元组,其功能是将指定关系内的指定元组删除。数据插入的功能在指定关系中插入一个或多个元组。数据修改实在一个关系中修改指定的元组属性值。 7、关系代数的运算主要包含哪些? 答:关系代数的运算可分为两类:

(1)传统的集合运算。其运算是以元组作为集合中元素来进行的,从关系的“水平”方向即行的角度进行。包括并、差、交和笛卡尔积。

(2)专门的关系运算。其运算不仅涉及行,也涉及列。这类运算是为数据库的应用而引进的特殊运算,包括选择、投影、连接和除法等。

8、什么是数据完整性?如何实现数据完整性?试述关系完整性规则。

答:数据完整性是指数据库中的数据在逻辑上的正确性、有效性和相容性。

数据完整性是通过定义一系列完整性约束条件,由DBMS负责检查约束条件来实现的。 关系模型有三类完整性约束规则:实体完整性、参照完整性和用户定义的完整性。 9、有如下的学生成绩数据库:

Student(学号,姓名,专业名,性别,出生时间,总学分,备注)。 Course(课程号,课程名,开课学期,学时,学分)。 关系模式为:StuCourse(学号,课程号,成绩)。 试用关系代数表示如下查询:

(1)求专业名为“计算机科学与技术”的学生学号与姓名; (2)求开课学期为“2”的课程号与课程名;

(3)求修读“计算机基础”的学生姓名。 答:(1) (2) (3)

??学号,姓名(?专业名?'计算机科学与技术'(Student)) (?开课学期?'2'(Course))

课程号,课程名?姓名(Student??(?学号(StuCourse??(?课程名?'计算机基础'(Course)))))

习题3

1、试述SQL的特点与功能。 答:SQL的特点有:

(1) SQL是一种基于关系代数的数据语言,其理论基础坚实;

(2) SQL是高度非过程化程度的语言,用户只要指出“干什么”而无需指出“怎么干”; (3) SQL集数据定义,操纵与控制于一体,构成一个具有独特风格的一体化语言,此外它还集联机交互与嵌入于一体,使语言能适应广泛的使用环境;

(4) SQL语言功能强,它不但能表示关系代数的所有功能,还具有统计,计算,视图等其它功能;

(5) SQL数据独立性强,它所涉及的物理概念少; (6) SQL语言简洁,易学易用。

SQL的功能包括:数据定义、数据操纵、数据控制、嵌入式与会话规则。 2、什么是基本表?什么是视图?二者有何关系与区别?

答:关系数据库中的关系在SQL中称为基本表。视图是从一个或多个基本表(或视图)导出的表。基本表与视图都采用二维表格结构,都统称为表。但基本表中的数据(元组)需要有数据库中的物理存储空间,而视图在数据库中只保存其定义信息,其数据并不占用存储空间,而是来源于定义该视图的基表。视图上的数据操纵命令最终都将转化成相应基本表上的操作才能得以实现。

3、简述SQL语言的使用方式。

答:SQL语言的使用方式包括:交互式、嵌入式两类。 4、SQL语句按其功能可分为哪几类?

答:SQL语句按其功能可分为四类,分别是:

(1)数据定义:其功能是创建、更新和撤销模式及其对象。包含的语句动词主要有:CREATE、DROP、ALERT。

(2)数据查询:其功能是进行数据库的数据查询。包含的语句动词主要有:SELECT。 (3)数据操纵:其功能是完成数据库的数据更新。包含的语句动词主要有:INSERT、UPDATE、DELETE。

(4)数据控制:其功能是进行数据库的授权、事务管理和控制。包含的语句动词主要有:GRANT、REVOKE、COMMIT、ROLLBACK等。 5、SQL的数据定义主要包括哪几类对象的定义?

答:SQL的数据定义包括数据库模式定义、基本表定义、视图定义和索引定义四个部分。 6、什么是索引?定义索引的目的是什么?

答:数据库的索引是一个数据表的辅助结构,它注明了表中各行数据所在的存储位置。

查询是数据库使用最频繁的操作,如何能更快地找到所需数据,是数据库的一项重要任

务。在数据库中建立索引是为了提高数据查询速度。 7、什么是聚簇索引?什么是非聚集索引?

答:聚簇索引(Clustered Index)对表的物理数据页中的数据按索引关键字进行排序,然后重新存储到磁盘上,即聚簇索引与数据是一体的。非聚簇索引(Nonclustered Index)具有完全独立于数据的索引结构。 8、视图有哪些优点?

答:使用视图有下列优点:

① 为用户集中数据,简化用户的数据查询和处理。有时用户所需要的数据分散在多个表中,定义视图可将它们集中在一起,从而方便用户的数据查询和处理。

② 屏蔽数据库的复杂性。用户不必了解复杂的数据库中的表结构,并且数据库表的更改也不影响用户对数据库的使用。

③ 简化用户权限的管理。只需授予用户使用视图的权限,而不必指定用户只能使用表的特定列,也增加了安全性。

④ 便于数据共享。各用户不必都定义和存储自己所需的数据,可共享数据库的数据,这样同样的数据只需存储一次。

⑤ 可以重新组织数据以便输出到其它应用程序中。 9、设有学生成绩数据库XSCJ,其中包含关系如下:

(1)学生关系:名为Student,描述学生信息。关系模式为:Student(学号,姓名,专业名,性别,出生时间,总学分,备注)。

(2)课程关系:名为Course,描述课程信息。关系模式为:Course(课程号,课程名,开课学期,学时,学分)。

(3)学生选课关系:名为StuCourse,描述学生选课及获得成绩信息。关系模式为:StuCourse(学号,课程号,成绩)。

试写出以下操作的SQL语句:

(1)查询专业名为“计算机科学与技术”的学生学号与姓名; (2)查询开课学期为“2”的课程号与课程名; (3)查询修读“计算机基础”的学生姓名;

(4)查询每个学生已选修课程门数和总平均成绩;

(5)查询所有课程的成绩都在80分以上的学生姓名、学号;

(6)删除在Student,StuCourse中所有学号以“2004”开头的元组;

(7)在学生数据库中建立“计算机科学与技术”专业的学生视图ComputerStu; (8)在视图ComputerStu中查询姓“王”的学生情况。 答:

(1) SELECT 学号, 姓名

FROM Student

WHERE 专业名= '计算机科学与技术' (2) SELECT 课程号,课程名

FROM Course

WHERE 开课学期='2'

(3) SELECT 姓名

FROM Student a, Course b, StuCourse c

WHERE b.课程号=c.课程号 AND a.学号=c.学号 AND b.课程名='计算机基础'

(4) SELECT 学号,COUNT(*), AVG(成绩)

FROM StuCourse

GROUP BY学号

(5) SELECT 学号, 姓名

FROM Student WHERE学号IN (SELECT 学号

FROM StuCourse GROUP BY 学号

HAVING MIN(成绩) >=80)

(6) DELETE FROM StuCourse

WHERE S# LIKE '2004%' DELETE FROM Student WHERE S# LIKE '2004%' (7) CREATE VIEW ComputerStu AS

SELECT * FROM Student

WHERE 专业名 = '计算机'

(8)SELECT *

FROM ComputerStu

WHERE 姓名 LIKE '王%'

习题4

1、数据库设计的任务是什么? 答:数据库设计的基本任务是:根据一个单位的信息需求,处理需求和数据库的支撑环境(包括数据库管理系统、操作系统和硬件),设计出数据库模式(包括外模式、逻辑(概念)模式和内模式)以及典型的应用程序。 2、数据库应用系统设计分哪几个阶段?

答:数据库应用系统设计分六个阶段:系统规划及需求分析阶段,概念设计阶段,逻辑设计阶段,数据库物理设计阶段,应用程序编码、调试、试运行阶段和数据库运行维护阶段。 3、简述数据库逻辑设计的任务和步骤。 答:数据库逻辑设计的任务是:把数据库概念设计阶段产生的数据库概念模式转换成数据库管理系统所支持的数据库逻辑模式。 数据库逻辑设计的主要步骤是: (1)把E-R图转换成关系模式。

(2)对E-R图转换成后形成的关系模式进行规范化和优化。 4、如何把E-R图转换成关系模式?

答:E-R图转换成关系模式主要涉及两方面内容:

(1)实体型转换成关系模式:关系模式中的属性和键码均与实体集中的属性和键码一一对应。

(2)联系转换成关系模式,构成连接关系。若联系本身有属性,则成为连接关系的属性。关键是连接关系的键:若联系为1,1,则每个实体型的键码均为其键;若联系为1:n,则n端实体型的键码为其键;若联系为m:n.则各实体型键组合为其键。

5、为一个图书馆设计一个数据库,用户要求数据库中,对每个借阅者保存读者的读者号、姓名、性别、年龄、单位、电话号码、电子邮件,对每本书保存书号、书名、作者、出版社,

对每本被借出的书保存读者号、借出日期、还书日期。要求:设计出E-R模型,再将其转换为关系模型。 答:(1)E-R模型如下:

读者号姓名借阅日期书名性别书号年龄读者N借阅M图书作者单位单价电话电子邮件归还日期出版社 (2)图书馆关系模型:

读者(读者号,姓名,性别,年龄,单位,电话,电子邮件) 图书(书号,书名,作者,单价,出版社) 借阅(读者号,书号,借阅时间,归还时间)

习题5

1. 什么是数据库建模?数据库建模的主要内容包括什么?

答:在设计数据库时,对现实世界进行分析、抽象,并从中找出内在联系,进而确定数据库的结构,这一过程就称为数据库建模。

数据库建模主要包括两部分内容:确定最基本的数据结构;对约束建模(主要是说明候选码、主码和外码)。

2、简述基本E-R图的表示方法。

答:在基本E-R图中,数据元素用矩形表示,属性用椭圆表示,实体之间的联系用菱形和箭头表示。

3、某房屋租赁公司利用数据库记录房主的房屋和公司职员的信息。其中房屋信息包括房屋编号、地址、面积、朝向、租金价格。职员的信息包括员工编号、姓名、联系的客户、约定客户见面时间、约定客户看房的编号。E-R图如下所示,其中的A~H应分别填入什么?

编号D朝向F姓名ABC面积E编号GH

答:A:房屋,B:带客户看房,C:职员,D:地址,E:租金价格,F:联系的客户,G:约定客户见面时间,H:约定客户看房编号。

4、某大学的系有若干个教研室,每个教研室有若干个教师,每个学生选修若干门课程,每门课程有若干个学生选修,学生每选修一门课就有一个成绩,每个教师讲授多门保,每门课可由多个教师讲授,每个名师讲授的课程都有由该老师指定的教材及规定的教室。其中,系

有编号、系名、系主任、办公室和电话;学生有学号、姓名、性别;课程有课程号、课程名和学分;教师有编号、姓名、性别、年龄和职称。请画出该系的E-R模型。 答:

名称编号姓名教室编号课程名学分系主任系电话1组成N教师M授课N课程M选课地点性别年龄职称教材学生N 5、设计一个适合大学生选课的数据库,该数据库应包含学生、教师、系和课程。哪个学生选了哪门课,哪个教师上了哪门课,学生的成绩,一个系提供哪些课程等信息。用E-R图描述该数据库。 答:

学号姓名成绩课程号课程名学分性别学号姓名学生M选课N课程M属于提供系名称编号

习题6

1、试述下列术语的含义:函数依赖、码、主属性、多值依赖、2NF、3NF、BCNF、4NF、关系规范化。

答:函数依赖:设R(U)是属性集U上的关系模式,X和Y是U的子集,r是R(U)中任意给定的关系实例。若对于r中的任意两个元组s和t,当s[X] = t[X]时,就有s[Y] = t[Y],则称属性子集X函数决定属性子集Y,或称Y函数依赖于X。

1NN教学N1教师教师号姓名职称 码:如果关系模式R的一个或多个属性A1,A2,?,An的组合满足如下条件,则该组合为关系模式R的码:

F(1)这些属性函数决定该关系模式的所有属性,即A1A2...An???U

(2)A1,A2,?,An的任何真子集都不能函数决定R的所有属性。 多值依赖:设R(U)是属性集U上的一个关系模式,X、Y、Z是U的子集,且Z=U-X-Y。对于R的任何关系r,如果存在两个元组s、t,则必然存在两个元组u、v,使得:

u[X]= v[X],s[X] = t[X], u[Y] = t[Y],且u[Z] = s[Z], v[Y] = s[Y],且v[Z] = t[Z],

即交换元组s、t在属性组Y上的值,得到两个新元组u、v必在关系r中,则称Y多值依赖(Multivalued Dependency)于X。

2NF:对于关系模式R,若R∈1NF,且每一个非主属性完全函数依赖于码,则R是第二范式的,记作:R∈2NF。

3NF:在关系模式R中,若不存在这样的码X、属性组Y和非主属性Z(Z不包含于Y),使得X → Y,Y → Z(这里X → Y)成立,则称R是第三范式的,记作:R∈3NF。

BCNF:设关系模式R∈1NF,若X?Y,Y?X时,X必含有码,则R是BC范式的,记作:R∈ BCNF。

4NF:设 FD、MVD分别为定义在关系模式R上的函数依赖集和多值依赖集,D = FD∪MVD,若R∈1NF,且所有非平凡的多值依赖X→→Y,其决定因素X都含有码,则称R是第四范式的,记作:R∈4NF。

关系规范化指通过关系模式分解将一个低级的范式分解为多个高级范式的过程。 2、什么是数据的冗余与数据的不一致性?

答:数据冗余(data redundancy)是指同一数据在一个或多个数据文件中重复存储。数据冗余不仅会占用大量系统存储资源,造成不必要的开销,而且更严重的是会带来数据库操作的异常,对数据库性能发挥造成不好的影响。

数据库中同一个数据在不同的地方出现了不同的值被称为数据的不一致性。 3、函数依赖有哪几种类型?

答:函数依赖有三种类型:平凡与非平凡函数依赖、部分与完全函数依赖、传递函数依赖。 4、举例说明如一个关系模式仅为1NF的,存在的异常并分析原因。

答:例如学生选课关系模式:StuCourse(学号,姓名,专业,专业负责人,课程号,课程名,学分,成绩),仅为1NF的,存在数据冗余和更新异常。异常产生的原因在于非主属性对码不是完全函数依赖。

5、试证明若R(U)∈BCNF,则必有R(U)∈3NF。

证明:用反证法。设R(U)∈BCNF,但R(U) ?3NF,则有如下两种可能的情况:

(1)假设R(U)中存在非主属性A对码K为部分函数依赖,即:

??A(A?K) K?由部分依赖的定义可知:必存在K的真子集K’,使K’→A(A?K’)。

由R(U)∈BCNF及BCNF的定义可知:K’中必包含码。这说明码K中含有另一个码K’,这与码的定义矛盾。所以此假设不成立,即R(U)中不存在非主属性A对码K为部分函数依赖。

(2)假设R(U)中存在非主属性A传递依赖于码K,即存在一个属性集B,满足:K→B, B

K,B

K,B→A

p由B→A及R(U)∈BCNF可知:B中必含有码(设为K’)。由码的定义可得:K’→U,因为B?K’,K?U,故B→K。这与B

K相矛盾。

由上可知,假设不成立,故R(U)∈3NF。

6、全码的关系是否必然属于3NF?为什么?是否必然属于BCNF?为什么?

答:全码的关系必然属于3NF。因为3NF要求关系范式满足1NF,并且不存在非主属性对码的部分和传递函数依赖。全码的关系不存在非主属性,故它是3NF的。它也必然属于BCNF,因为BC范式要求每个决定因子都包含码,而全码的关系只有一个决定因子,即关系模式所包含的所有属性。

7、试问下列关系模式最高属于第几范式,并说明理由:

(1)R(A,B,C,D),F:{ B?D,AB?C } (2)R(A,B,C),F:{ A?B,B?A,A?C } (3)R(A,B,C,D),F:{ A?C,D?B } (4)R(A,B,C,D),F:{ A?C,CD?B } 答:(1)属于第一范式。关键字{A,B},非主属性{D}不完全依赖于关键字。

(2)BCNF。因为它的每个函数依赖的决定因素都是关键字。

(3)属于第一范式。关键字{A,D},非主属性{C,B}不完全依赖于关键字。 (4)属于第一范式。关键字{A,D},非主属性{B}不完全依赖于关键字。 8、建立一个关于系、学生、班级、学会等信息的关系数据库。

描述学生的属性有:学号、姓名、系名、班号

描述班级的属性有:班号、专业名、系名、人数、入校年份 描述系的属性有:系名、系办公室地点、职工人数、学生人数 描述学会的属性有:学会名、成立年份、地点、人数

有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。

试回答下列问题:

(1)给出关系模式,写出每个关系模式的函数依赖集。 (2)指出每个关系模式的候选码。

(3)每个关系模式最高已经达到第几范式?为什么?

(4)如果关系模式不属于3NF,将其分解成3NF模式集。 答:(1)关系模式有:

S(S#,Sname,Sdept,Sclass)

函数依赖:S# ? Sname;S# ? Sdept,S# ? Sclass,Sclass ? Sdept

C(C#,Sspec,Sdept,num,Date)

函数依赖:C# ? Sspec,C# ? Sdept,C3 ? num, C# ? Date,

(Sspec,Date)? C#,Sspec ? Sdept

D(D#,DName,Dnum,num)

函数依赖:D# ? DName,D# ? Dnum,D# ? num P(P#,Year,Des,Pnum)

函数依赖:P# ? Year,P# ? Des,P# ? Pnum Ent(S#,P#,SPYear) //学生入会 函数依赖:(S#,P#) ? SPYear

(2)每个模式的候选码分别是:S#、C#、D#、P#、(S#,P#) (3) 每个模式达到的最高范式:

S – 2NF,存在非主属性Sdept对候选码S#的传递函数依赖; C—2NF,存在非主属性Sdept对候选码C#的传递函数依赖; D—3NF,不存在非主属性对候选码的部分获传递函数依赖; P—3NF,不存在非主属性对候选码的部分获传递函数依赖; Ent—3NF,不存在非主属性对候选码的部分获传递函数依赖。 (答D、P、Ent为BCNF也正确) (4)对S和C模式进行分解:

S1(S#,Sname,Sdept) S2(Sclass,Sdept) C1(C#,Sspec,num,Date) C2(Sspec,Sdept)

习题7

1、两个主要的数据库访问通用接口是什么?

答:ODBC(Open DataBase Connectivity,开放数据库连接)和JDBC(Java DataBase Connectivity,Java数据库连接),它们提供对数据库访问的调用级接口。 2、T-SQL函数分为哪两类?

答:内置函数、用户自定义函数。

3、T-SQL内置函数有哪几类?什么是确定型函数?什么是非确定型函数? 答:T-SQL内置函数包括三类:行集(Rowset)函数、聚合(Aggregate)函数和标量(Scalar)函数。

确定型函数是指每次使用特定的输入值集调用该函数时,总是返回相同的结果。而非确定型函数是指每次使用特定的输入值集调用时,可能返回不同的结果。 4、T-SQL中用户自定义函数的创建、修改、删除语句分别是什么?

答:创建用户定义函数使用CREATE FUNCTION语句,利用ALTER FUNCTION语句对用户定义函数进行修改,用DROP FUNCTION语句删除用户定义函数。

5、什么是游标?SQL Server对游标的使用要求遵循何种顺序?游标操作语句有哪些? 答:游标可看作一种特殊的指针,它与某个查询结果集相联系,可以指向结果集的任意位置,以便对指定位置的数据进行处理。使用游标可以在查询数据的同时对数据进行处理。游标提供了对一个结果集进行逐行处理的能力。 SQL Server对游标的使用要遵循以下顺序:声明游标?打开游标?读取数据?关闭游标?释放游标。

游标操作语句有:DECLARE CURSOR语句(声明游标)、OPEN语句(打开游标)、FETCH语句(读取游标)、CLOSE语句(关闭游标)、DEALLOCATE语句(释放游标)。 6、什么是存储过程?存储过程有哪些优点?

答:存储过程是存储在服务器上的一组预先定义的SQL程序,它是一种封装重复任务的方法。存储过程可以被反复调用,便于共享及维护。

使用存储过程的优点主要有:

① 存储过程在服务器端运行,执行效率高。

② 存储过程执行一次后,其执行规划就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译好的二进制代码执行,提高了系统性能。

③ 确保数据库的安全。使用存储过程可以完成所有数据库操作,并可通过编程方式控制上述操作对数据库信息访问的权限。

④ 自动完成需要预先执行的任务。存储过程可以在系统启动时自动执行,而不必在系统启动后再进行手工操作,大大方便了用户的使用,可以自动完成一些需要预先执行的任务。

7、SQL Server中定义和执行存储过程的语句分别是什么?

答:定义存储过程的语句是CREATE PROCEDURE,执行存储过程的命令是EXECUTE。 8、什么是触发器?触发器有哪些特点?

答:触发器是由一组SQL语句构成的,触发器是自动执行的,当有操作影响到触发器保护的数据时,触发器自动执行。

触发器的主要特点有:

① 触发器自动执行。在对表中数据进行了修改后立即被激活自动执行。

② 触发器能够对数据库中的相关表进行级联更改。触发器是基于表创建的,但可以针对多个表进行操作,实现对相关表的级联更改。

③ 触发器可实现比CHECK约束更为复杂的数据完整性约束。CHECK约束不允许引用其他表中的列来完成检查工作,而触发器可以。

④ 同一个表中可使用多个触发器,即使同一类型的触发器,也可使用多个。 9、简述ODBC的体系结构。

答:ODBC是一个分层体系结构,由四部分构成:ODBC数据库应用程序(application)、驱动程序管理器(driver manager)、DBMS驱动程序(DBMS driver)、数据源(data source)。如下图所示。

应用程序ODBC驱动程序管理器ODBC驱动程序ODBC驱动程序ODBC驱动程序Oracle数据源SQL Server数据源其他数据源 10、画出ADO的对象层次结构图。

答:ADO是采用层次框架实现的,其对象层次结构如下图所示。

PropertiesConnectionErrorsCommandErrorPropertiesParametersParameterPropertyPropertyRecordSetFieldsPropertiesFieldPropertyPropertiesProperty

11、图示ADO.NET的体系结构。 答:

应用程序(Web Form,Win Form)DataSet数据表DataColumnDataconstrainDataRowDataRelationCollection.NET数据提供程序DataAdapterSelectCommandInsertCommandUpdateCommandDleteCommandDataReader 命令参数连接数据源

习题8

1、简述数据库应用系统的开发过程。 答:数据库应用系统的开发过程一般包括需求分析、总体设计、详细设计、编码与单元测试、系统测试与交付、系统使用与维护等阶段。 2、数据库应用系统的体系结构主要有哪些?

答:数据库应用系统的体系结构是指数据库应用系统各组成部件之间的结构关系。可分为4种模式,即单用户模式、主从式多用户模式、客户机/服务器模式(Client/Server,C/S)和Web浏览器/服务器模式(Browser/Server,B/S)。 3、目前数据库市场上有哪些主流厂商和产品?

答:数据库厂商:Oracle、IBM、Microsoft、Sybase等。

主流大型关系数据库管理系统产品SQL Server、Oracle、Sybase、DB2,小型的关系数据库管理系统MySQL、Access和VFP等。

4、在VB中使用ADO对象访问数据库的一般流程是什么?

答:使用ADO对象访问数据库的一般流程是:连接到数据源(如SQL Server)? 给出访问数据源的命令及参数? 执行命令? 处理返回的结果集? 关闭连接。

5、Connection、Recordset和Command这三个ADO对象的主要作用是什么?

答:Connection对象用于建立数据源的连接。Recordset对象实现结果集的封装,其数据结构可认为与表相同,Recordset(若不为空)中的数据在逻辑上由行和列组成。Command对象的主要功能是让服务器执行SQL命令或服务器端的存储过程。

6、.NET框架结构中通用语言运行环境(CLR)和.NET Framework类库的主要作用分别是什么?

答:通用语言运行环境CLR的作用是负责执行程序,提供内存管理、线程管理、安全管理、异常处理、通用类系统与生命周期监控等核心服务。.NET Framework类库的主要作用是提供许多类与接口,包括ADO.NET、XML、IO、网络、调试、安全和多线程等。

习题9

1、什么是数据库保护?它有哪些内容? 答:从数据库管理系统角度出发来保护数据库系统中数据,使之不至于受到非法访问或破坏,这称为数据库保护。数据库保护的内容有:安全性保护,完整性保护,并发控制和故障恢复。 2、什么是数据库的安全性?常用的保护措施有哪些? 答:数据库的安全性保护是指防止非法使用数据库。包括防止非法用户使用数据库和合法用户非法使用数据库。常用的保护措施有:

(1)使用权的鉴别。常用的鉴别方法有口令和函数计算法两种。

(2)使用范围限制。一般可用外模式的方法予以限制,用户可以在外模式定义范围内访问数据,而外模式没有定义的那些数据库中的数据,用户无法使用。在关系数据库中则可用视图方法予以限制。 (3)访问控制权鉴别。进一步限制每一个用户在每一个数据对象上可以执行的操作的类型。以关系数据库系统为例,操作对象有:关系,元组,属性,可以使用的操作类型有:查询,插入,修改,删除以及它们的一些组合情况。

(4)安全审计。审计用于跟踪和记录所选用户对数据库的操作。通过审计可以跟踪、记录可疑的数据库操作,并将结果记录在审计日志中。根据审计日志记录可对非法访问进行事后分析与追查。

3、有哪些常用的数据库完整性保护措施?

答:常用的数据库完整性保护措施有:完整性约束定义与检查机制、触发器。 4、什么是事务?事务的ACID性质指什么?

答:事务(Transaction)是一系列数据库操作的有限序列,是数据库的基本执行单元。

事务的ACID性质指原子性(A)、一致性(C)、隔离性(I)和持久性(D)。 (1)原子性(Atomicity)

事务必须是数据库的逻辑工作单元,即事务中包括的诸操作要么全执行,要么全不执行。 (2)一致性(Consistency) 事务在完成时,必须使所有的数据都保持一致状态。如果数据库系统因运行中发生故障,有些事务尚未完成就被迫中断,这些未完成的事务对数据库所做的修改有一部分已写入物理数据库,此时数据库处于一种不一致的状态。

(3)隔离性(Isolation)

一个事务的执行不能被其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务间不能互相干扰。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,这称为事务的可串行性。

(4)持久性(Durability) 指一个事务一旦提交,则它对数据库中数据的改变就应该是永久的。即使以后出现系统故障也不应该对其执行结果有任何影响。

5、事务并发执行时的数据访问冲突主要表现为哪些问题?并简要分析。

答:事务并发执行时的数据访问冲突,表现为以下三个问题:丢失更新、读“脏”数据和不可重复读。

所谓丢失更新(lost update),指当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,由于每个事务都不知道其他事务的存在,因此最后的更新将重写由其他事务所做的更新,这将导致前面事务更新的数据丢失。 读“脏”数据也称脏读(dirty read),指事务T1修改数据,将其写回,事务T2读取了该数据,但T1随后又与某种原因被撤销了,使得T2读取的数据与数据库中的数据不一致,即T2读取的是“脏”(不正确)数据。

当事务T1读取某数据后,事务T2对该数据执行了更新操作,使得T1无法再次读取与前一次相同的数据。这种数据不一致情况称为不可重复读(unrepeateable read)。 6、什么是并发调度的可串行化?

答:对于一个并发事务集,如果一个调度与一个串行调度等价,则称该调度是可串行化的。 7、简述封锁的基本思想。DBMS通常提供的封锁类型主要有哪些?

答:封锁(Lock)机制是并发控制的主要技术,其基本思想是:如果事务T1要修改数据A,则在读A之前先封锁A;封锁成功后再修改,直到T1写回并解除封锁后,其他事务才能读取A。

DBMS通常提供的封锁类型主要有排他锁和共享锁。排他锁也称写锁或X锁。若事务T对数据A加上排他锁,则T可A进行读写,其他事务只有等到T解除对A的封锁后,才能对A进行封锁和操作。共享锁也称读锁或S锁。若事务T对数据A加上共享锁,则T对A只能读取而不能修改,其他事务可对A加S锁但不能加X锁。 8、什么是活锁?什么是死锁?解决死锁的策略主要有哪些?

答:活锁(Live Lock)指在封锁过程中,系统可能使某个事务永远处于等待状态,得不到封锁机会。死锁(Dead Lock)指若干事务都处于等待状态,相互等待对方释放锁,结果造成这些事务都无法进行,系统进入对锁的循环等待。 解决“死锁”问题一般可采取以下的方法:

(1)预防法:即采用一定的封锁申请方式以避免死锁现象的出现,常用的有顺序申请法,一次申请法等。

(2)解除法:即允许出现死锁,但在系统中有一个死锁检测程序去检查死锁现象的发生,并在死锁产生后通过解锁程序以解除死锁。

9、什么叫数据库恢复?数据库管理系统中采用的恢复机制是什么?

答:在数据库遭受破坏后及时将数据库中的数据恢复到正确状态下去的过程叫数据库恢复。数据库恢复机制包括两个方面:一是建立冗余数据,即进行数据库备份;一是在系统出现故障后,利用冗余数据将数据库恢复到某个正常状态。

习题10

1、什么是OLTP?什么是OLAP?

答:OLTP指联机事务处理(On-line Transaction Processing,OLTP),OLAP指联机分析处理(On-line Analytical Processing,OLAP)。 2、简述数据仓库的特点。 答:数据仓库的特点有:

(1)数据仓库是面向主题(Subject Oriented)的。 (2)数据仓库中的数据是集成(Integrated)的。

(3)数据仓库中的数据是相对稳定(Non-Volatile)的。

(4)数据仓库是反映历史变化(Time Variant)。

总之,数据仓库是一种语义上一致的数据存储,它充当决策支持数据模型的物理实现,并存放企业战略决策所需的信息。 3、简述数据挖掘的含义。

答:数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取钱再得、有价值的模式和数据间关系(或知识)的过程。 4、什么是XML?

答:XML(eXtensible Markup Language)是可扩展标记语言,已成为互联网上信息交换和表示的标准。