1
CHAPTER  01
数据库系统概述
练习题1参考答案
1.文件系统中的文件与数据库系统中的文件有何本质上的不同?
  文件系统中的文件是面向应用的,一个文件基本上对应于一个应用程序,文件之间不存在联系,数据冗余大,数据共享性差,数据独立性差;数据库系统中的文件不再面向特定的某个或多个应用,而是面向整个应用系统,文件之间是相互联系着的,减少了数据冗余,实现了数据共享,数据独立性高。
2.对数据库的3种不同数据观是如何划分的?
  概念模式体现了数据库的总体观,称为DBA视图;内模式体现了数据库的存储观,称为系
统程序员视图;外模式体现了数据库的用户观,称为用户视图。用户视图有多个,而其他视图只有一个。
3.什么是数据独立性?数据库系统是如何实现数据独立性的?
  数据独立性是指应用程序和数据之间相互独立、不受影响,即数据结构的修改不引起应用程序修改的特性。数据独立性包括物理数据独立性和逻辑数据独立性。物理数据独立性是指数据库物理结构改变时不必修改现有的应用程序。逻辑数据独立性是指数据库逻辑结构改变时应用程序不用改变。
数据独立性是由DBMS的二级映象功能来保证的。数据库系统通常采用外模式、模式和内模式三级结构,数据库管理系统在这三级模式之间提供了外模式/概念模式和概念模式/内模式两层映象,当整个系统要求改变模式时(增加记录类型,增加数据项)时,由DBMS对各个外模式/概念模式的映象作相应改变,可以使外模式保持不变,由于应用程序是依据数据的外模式编写的,因而应用程序不必修改,保证了数据的逻辑独立性。当数据的存储结构改变时,由DBMS对概念模式/内模式映象作相应改变,可以使模式不变,从而应用程序也不必改变,保证了数据的物理独立性。

2
CHAPTER  02
数据模型
练习题2参考答案
1什么是关系?什么是关系框架?关系之间实现联系的手段是什么?什么是关系数据库?
  关系是一张二维表,即元组的集合。关系框架是一个关系的属性名表。形式化表示为:R(A1,A2,,An),其中:R为关系名,Ai为关系的属性名。关系之间实现联系的手段是通过关系之间的公共属性来实现联系。关系数据库是指对应于一个关系模型的所有关系的集合。
2.某医院病房计算机管理中需如下信息。
科室:科名、科地址、科电话、医生姓名
病房:病房号、床位数、所属科室名
医生:姓名、职称、所属科室名、年龄、工作证号
病人:病历号、姓名、性别、诊断医生、病房号
其中,一个科室有多个病房、多个医生;一个病房只能属于一个科室;一个医生只属于一个科室,但可负责多个病人的诊治;一个病人的主治医生只有一个。设计该计算机管理系统的E-R图。
  对应的E-R图如图2.1所示。
图2.1  E-R图
3学校有若干个系,每个系有若干名教师和学生;每个教师可以教授若干门课程,并参加多个项目;每个学生可以同时选修多门课程。请设计该学校的教学管理的E-R模型,要求给出每个实体、联系的属性。
  该学校的教学管理E-R模型有以下实体:系、教师、学生、项目、课程。各实体属性如下:
系(系编号,系名,系主任)
教师(教师编号,教师姓名,职称)
学生(学号,姓名,性别,班号)
项目(项目编号,名称,负责人)
课程(课程编号,课程名,学分)
各实体之间的联系如下:
教师担任课程的1:n“任课”联系
教师参加项目的n:m“参加”联系
学生选修课程的n:m“选修”联系
系、教师和学生之间的所属关系的1:m:n“领导”联系
对应的E-R模型如图2.2所示。
图2.2  E-R图

3
CHAPTER  03
关系数据库
练习题3参考答案
1.简述等值连接与自然连接的区别。
  等值连接与自然连接的区别是:自然连接一定是等值连接,但等值连接不一定是自然连接,因为自然连接要求相等的分量必须是公共属性,而等值连接要求相等的分量不一定是公共属性;等值连接不把重复属性去掉,而自然连接要把重复属性去掉。
2.设有关系R和S:
R
S
A
B
B
C
a
b
b
c
c
b
e
a
d
e
b
d
计算R S、R S和σA=C(RS)。
B<C
  计算结果如下:
R S
B<C
R S
σA=C(RS)
A
B
C
a
b
c
A
R.B
S.B
C
a
b
d
a
b
b
c
A
R.B
S.B
C
c
b
c
a
b
b
d
a
b
e
a
c
b
d
c
b
b
c
c
b
b
c
d
e
a
c
b
b
d
d
e
b
d
3.设有关系R、S:
n号房时间
R
A
B
C
S
a
b
c
A
B
C
b
a
f
b
a
f
c
b
d
d
a
f
计算R1=R-S、R2=RS、R3=R∩S和R4=RS。
  计算结果如下:
                                                                      R4
R2
R.A
R.B
R.C
S.A
S.B
S.C
A
B
C
a
b
c
b
a
f
a
b
c
a
b
c
d
a
f
R1
b
a
f
b
a
f
b
a
f
A
B
C
c
b
d
R3
b
a
f
d
a
f
a
b
c
d
a
f
A
B
C
c
b
d
b
a
f
c
b
d
A
B
C
b
a
f
c
b
d
d
a
f

4
CHAPTER  04
关系数据库规范化理论
练习题4参考答案
1.什么是数据的规范化?
  现实世界的数据是有关系的,但这种关系是杂乱的,在进行数据分析时,要规范化这些关系。关系数据模型的创始人E.F.Codd系统地提出了规范化的理论,即范式(NF)的概念。满足一定条件的关系模式称为范式,包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和BCNF范式等。一个低级范式的关系模式,通过分解(投影)方法可转换成多个高一级范式的关系模式的集合。数据满足范式的级别越高,就表示越规范化,其数据冗余就越好,用DBMS设计时越方便。这个过程称为数据的规范化。
2.下面给出一个数据集,判断它是否可直接作为关系数据库中的关系,若不行,则改造成为尽可能好的并能作为关系数据库中关系的形式,同时说明进行这种改造的理由。
系名
课程名
教师名
计算机系
DB
李军,刘强
机械系
CAD
金山,宋海
造船系
CAM
王华
自控系
CTY
张红,曾键
  因为关系模式至少是1NF关系,即不包含重复组,并且不存在嵌套结构,给出的数据集显然不可直接作为关系数据库中的关系,改造为1NF的关系如下:
系名
课程名
教师名
计算机系
DB
李军
计算机系
DB
刘强
机械系
CAD
金山
机械系
CAD
宋海
造船系
CAM
王华
自控系
CTY
张红
自控系
CTY
曾键
3.下面给出的关系R为第几范式?是否存在操作异常?若存在,则将其分解为高一级范式。分解完成的高级范式中是否可以避免分解前关系中存在的操作异常?
R
工程号
材料号
数量
开工日期
完工日期
价格
P1
I1
4
9805
9902
250
P1
I2
6
9805
9902
300
P1
I3
15
9805
9902
180
P2
I1
6
9811
9912
250
P2
I4
18
9811
9912
350
  它为1NF。
因为该关系的候选关键字为(工程号,材料号),而非主属性(开工日期和完工日期)部分函数依赖于候选关键字的子集工程号,即:
(工程号,材料号) p  开工日期
(工程号,材料号) p  完工日期
所以它不是2NF。
它存在操作异常。如果工程项目确定后,若暂时未用到材料,则该工程的数据因缺少关键字的一部分(材料号)而不能进入到数据库中,出现插入异常。若某工程下马,则删去该工程的操作也可能丢失材料方面的信息。
将其中的部分函数依赖分解为一个独立的关系,则产生如下的两个2NF关系子模式:
R1                                         
工程号
材料号
数量
价格
P1
I1
4
250
P1
I2
6
300
R2
P1
I3
15
180
工程号
开工日期
完工日期
P2
I1
6
250
P1
9805
9902
P2
I4
18
350
P2
9811
9812
分解后,新工程确定后,尽管还未用到材料,该工程数据可在关系R2中插入。删除某工程数据时,仅对关系R2操作,不会丢失材料方面的信息。
4.设有如下所示的关系R:
R
课程名
教师名
教师地址
C1
马千里
D1
C2
于得水
D1
C3
余快
D2
C4
于得水
D1
(1)它为第几范式?为什么?
(2)是否存在删除操作异常?若存在,则说明是在什么情况下发生的。
(3)将它分解为高一级范式,分解后的关系是如何解决分解前可能存在的删除操作的异常
问题的?
  (1)它是2NF。
因为R的候选关键字为课程名,而“课程名教师名”,“教师名课程名”不成立,教师名教师地址,所以课程名  t   教师地址,即存在非主属性教师地址对候选关键字课程名的传递函数依赖,因此R不是3NF。又因为不存在非主属性对候选关键字的部分函数依赖,所以R是2NF。
(2)存在删除操作异常。当删除某门课程时会删除不该删除的教师的有关信息。
(3)分解为高一级范式如下:
R1                                     
课程名
教师名
R2
C1
马千里
教师名
教师地址
C2
于得水
马千里
D1
C3
余快
于得水
D1
C4
于得水
余快
D2
分解后,若删除课程数据时,仅对关系R1操作,教师地址信息在关系R2中仍然保留,不会丢失教师方面的信息。
5.有如下的关系R:
(1)求出R所有的候选关键字。
(2)列出R中的函数依赖。
(3)R属于第几范式?
R
A
D
E
A1
d1
e2
A2
d6
e2
A3
d4
e3
  (1)R的候选关键字为A和DE。
(2)R中的函数依赖有:A→DE, DE→A。
(3)R是BCNF。
6.设有函数依赖集F={AB→CE,A→C,GP→B,EP→A,CDE→P,HB→P,D→HG,ABC→PG},计算属性集D关于F的闭包D
  令X=D,X(0)=D。
在F中出左边是D子集的函数依赖,其结果是D→HG,所以X(1)=X(0)HG=DGH,显然有X(1)X(0)
在F中出左边是DGH子集的函数依赖,未到,则X(2)=DGH。由于X(2)=X(1)因此D=DGH
7.设有关系框架R(A,B,C,D,E)及其上的函数相关性集合F={AC,BD,CD,DEC,CEA},试问:分解ρ={AD,AB,BE,CDE, AE}是否为R的无损联接分解?
  ρ的无损联接性判断表如下,由此判断不具有无损联接性。
Ri
A
B
C
D
E
AD
a1
AB
a1
a2
BE
a2
a5
CDE
a3
a4
a5
AE
a1
a5

5
CHAPTER  05
数据库设计
练习题5参考答案
1.什么是数据库设计?
  数据库设计是指对于一个给定的应用环境,提供一个确定的最优数据模型与处理模式的逻辑设计,以及一个确定的数据库存储结构与存取方法的物理设计,建立起既能反映现实世界信息和信息联系,满足用户数据要求和加工要求,又能被某个数据库管理系统所接受,同时能实现系统目标,并有效存取数据的数据库的过程。