数据库原理第二学期习题解答

更新时间:2023-10-06 18:52:01 阅读量: 综合文库 文档下载

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

<数据库原理二>参考习题解答

上海大学 董健全

5.2 设关系模式R有n个属性,在模式R上可能成立的函数依赖有多少个?其中平凡的FD有多少个?非平凡的FD有多少个?

解:这个问题是排列组合问题。FD形为X?Y,从n个属性值中选择属性组成X共有C0+C1nnnn+ ? +Cn=2种方法;同理,组成Y也有2n种方法。因此组成X?Y形式应该有2n·2n=4n

种方法。即可能成立的FD有4n个。

平凡的FD要求Y?X,组合X?Y形式的选择有:

010121nn

C0·C0+Cn·(C1+C1)+Cn·(C0+C2+C2)+ ? +Cn(C0+C1+ ? Cn)n22nn01n=Cn·20+Cn·21+C2·22+ ? +Cn·2n=(1+2)n=3n n

即平凡的FD有3n。因而非平凡的FD有4n-3n个。

5.3 对函数依赖X→Y的定义加以扩充,X和Y可以为空属性集,用φ表示,那么X→φ,φ→Y,φ→φ的含义是什么?

答:据推理规则的自反律可知,X?φ和φ?φ是平凡的FD,总是成立的。

而φ?Y表示在当前关系中,任意两个元组的Y值相等,也就是当前关系的Y值都相等。

5.4 已知关系模式R(ABC),F是R上成立的FD集,F={ A→B,B→C },试写出F的闭包F+。

解:据已知条件和推理规则,可知F+有43个FD: A?φ AB?φ AC?φ ABC?φ B?φ C?φ A?A AB?A AC?A ABC?A B?B C?C A?B AB?B AC?B ABC?B B?C φ?φ A?C AB?C AC?C ABC?C B?BC A?AB AB?AB AC?AB ABC?AB BC?ф A?AC AB?AC AC?AC ABC?AC BC?B A?BC AB?BC AC?BC ABC?BC BC?C A?ABC AB?ABC AC?ABC ABC?ABC BC?BC 5.5 设关系模式R(ABCD),如果规定,关系中B值与D值之间是一对多联系,A值与C 值

之间是一对一联系。试写出相应的函数依赖。

解:从B值与D值之间有一对多联系,可写出函数依赖D?B,从A值与C值之间是一对一

联系。可写出函数依赖A?C和C?A。 5.6试举出反例说明下列规则不成立:

① { A→B }?{ B→A }

② { AB→C,A→C }?{ B→C } ③ { AB→C }?{ A→C } 答:设有三个关系:

r1 A B r2 A B C r3 A B C 1 1 2 1 2 1 2 3 2 1 2 2 2 1 3 4

3 2 3

(1)在关系r1中,A→B成立,但B→A不成立。

(2)在关系r2中,AB→C和A→C成立,但B→C不成立 (3)在关系r3中,AB→C成立,但A→C不成立。 5.7 设关系模式R(ABCD),F是R上成立的FD集,F={ A→B,C→B },则相对于F,试写出关系模式R的关键码。并说明理由。

解:R的关键码为ACD。因为从已知的F,只能推出ACD→ABCD。 5.8 设关系模式R(ABCD),F是R上成立的FD集,F={A→B,B→C},

① 试写出属性集BD的闭包(BD)+。

② 试写出所有左部是B的函数依赖(即形为“B→?”)。

+

解:①从已知的F,可推出BD→BCD,所以(BD)=BCD。

②由于B+=BC,因此左部是B的FD有四个: B→φ,B→B,B→C,B→BC。

5.9设关系模式R(ABC)分解成ρ={ AB,BC },如果R上的FD集F={ A→B },那么这个分解是损失分解。试举出R的一个关系r,不满足mρ(r)=r。 解:这个反例r可以举测试时的初始表格: A B C AB a1 a2 b13 BC b21 a2 a3

π

AB(r)

BC(r)有四个元组:

A B C

a1 a2 b13 a1 a2 a3 b21 a2 b13 b21 a2 a3

即mρ(r)≠r。

5.10试解释数据库“丢失信息”与“未丢失信息”两个概念。“丢失信息”与“丢失数据”

有什么区别?

答:数据库中丢失信息是指r≠mρ(r),未丢失信息是指r=mρ(r)。 丢失信息是指不能辨别元组的真伪,而丢失数据是指丢失元组。 5.11设关系模式R(ABC),F是R上成立的FD集,F={ A→C,B→C },试分别求F在

模式AB和AC上的投影。 答:π

AB(F)=φ

(即不存在非平凡的FD)

π

AC(F)={ A→C }

5.12设关系模式R(ABC),F是R上成立的FD集,F={ B→A,C→A },ρ={ AB,BC }是R上的一个分解,那么分解ρ是否保持FD集F?并说明理由。 答:已知F={ B→A,C→A },而π

AB(F)={ B→A },

π

BC(F)=φ

显然,分解ρ丢失了FD C→A。

5.13设关系模式R(ABC),F是R上成立的FD集,F={ B→C,C→A },那么分解ρ=

{ AB,AC }相对于F,是否无损分解和保持FD?并说明理由。 答:①已知F={ B→C,C→A },

而π

AB(F)=φ

,π

AC(F)={ C→A }

显然,这个分解丢失了FD B→C

② 用测试过程可以知道,ρ相对于F是损失分解。 5.14设关系模式R(ABCD),F是R上成立的FD集,F={ A→B,B→C,A→D,D→C },

ρ={ AB,AC,BD }是R的一个分解。 ① 相对于F,ρ是无损分解吗?为什么? ② 试求F在ρ的每个模式上的投影。 ③ ρ保持F吗?为什么?

答:①用测试过程可以知道,ρ相对于F是损失分解。

②π

AB(F)={ A→B },

π

AC(F)={ A→C },

π

BD(F)=φ

③显然,分解ρ不保持FD集F,丢失了B→C、A→D和D→C等三个FD。 5.15设关系模式R(ABCD),R上的FD集F={ A→C,D→C,BD→A},试说明ρ={ AB,

ACD,BCD }相对于F是损失分解的理由。

答:据已知的F集,不可能把初始表格修改为有一个全a行的表格,因此ρ相对于F是损

失分解。

5.16设关系模式R(ABCD),F是R上成立的FD集,F={ AB→CD,A→D }。

① 试说明R不是2NF模式的理由。 ② 试把R分解成2NF模式集。

答:①从已知FD集F,可知R的候选键是AB。

另外,AB→D是一个局部依赖,因此R不是2NF模式。 ③ 此时R应分解成ρ={ AD,ABC },ρ是2NF模式集。 5.17设关系模式R(ABC),F是R上成立的FD集,F={ C→B,B→A }。

① 试说明R不是3NF模式的理由。 ② 试把R分解成3NF模式集。

答:①从已知FD集F,可知R的候选键是C。

从C→B和B→A,可知C→A是一个传递依赖,因此R不是3NF模式。 ③ 此时R应分解成ρ={ CB,BA },ρ是3NF模式集。 5.18设有一个记录各个球队队员每场比赛进球数的关系模式

R(队员编号,比赛场次,进球数,球队名,队长名)

如果规定每个队员只能属于一个球队,每个球队只有一个队长。 ① 试写出关系模式R的基本FD和关键码。

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

解:(1)根据每个队员只能属于一个球队,可写出FD:队员编号→球队名

根据每个球队只有一个队长,可写出FD:球队名→队长名 “每个队员每场比赛只有一个进球数”,这条规则也是成立的。因此还可写出FD: (队员编号,比赛场次)→进球数

R的关键码为(队员编号,比赛场次)。 (2)R中存在这样的FD:

(队员编号,比赛场次)→(球队名,队长名)

队员编号 →(球队名,队长名)

可见前一个FD是局部依赖,所以R不是2NF模式。 R应分解成R1(队员编号,球队名,队长名) R2(队员编号,比赛场次,进球数) 此处,R1和R2都是2NF模式。 (3)R2已是3NF模式。

在R1(队员编号,球队名,队长名)中,存在两个FD:

队员编号 → 球队名 球队名 → 队长名

关键码为队员编号,存在传递依赖,因此R1不是3NF模式。 R1应分解成R11(队员编号,球队名) R12(球队名,队长名) 这两个模式都是3NF模式。

因此,R分解成3NF模式集时,ρ= { R11,R12,R2 }。

5.19设有关系模式R(职工编号,日期,日营业额,部门名,部门经理),该模式统计商店

里每个职工的日营业额,以及职工所在的部门和经理信息。

如果规定:每个职工每天只有一个营业额;每个职工只在一个部门工作;每个部门只有一个经理。

试回答下列问题:

(1)根据上述规定,写出模式R的基本FD和关键码; (2)说明R不是2NF的理由,并把R分解成2NF模式集; (3)进而分解成3NF模式集。 解:(1)基本的FD有三个: (职工编号,日期)→ 日营业额 职工编号 → 部门名 部门名 → 部门经理 R的关键码为(职工编号,日期)。 (2)R中有两个这样的FD: (职工编号,日期)→(部门名,部门经理) 职工编号 → (部门名,部门经理)

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

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

部门名 → 部门经理

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

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

5.20设关系模式R(ABC)上有一个MVD A→→B。如果已知R的当前关系存在三个元组

(ab1c1)、(ab2c2)和(ab3c3),那么这个关系中至少还应该存在哪些元组? 解:这个关系中至少还应存在下面6个元组:(ab1c2),(ab2c1),(ab1c3),(ab3c1),(ab2c3),

(ab3c2)。

7.2 数据库系统的生存期分成哪几个阶段?数据库结构的设计在生存期中的地位如何? 答:对DBS生存期的划分,一般分为七个阶段,即规划、需求分析、概念设计、逻辑设计、物理设计、实现和运行维护。 DB结构设计的任务就是把概念设计阶段设计好的基本ER图转换成与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构。

7.4基于数据库系统生存期的数据库设计分成哪几个阶段? 答:基于DBS生存期的DBD分成以下五个阶段: 规划;需求描述和分析;概念设计;逻辑设计;物理设计。 7.5 数据库设计的规划阶段应做哪些事情?

答:DBD中规划阶段的主要任务是进行建立DB的必要性及可行性分析,确定DBS在组织中和信息系统中的地位,以及各个DB之间的联系。

7.6 数据库设计的需求分析阶段是如何实现的?目标是什么? 答:需求分析阶段的工作由下面四步组成: ·分析用户活动,产生用户活动图;

·确定系统范围,产生系统范围图; ·分析用户活动所涉及的数据,产生数据流图;

·分析系统数据,产生数据字典。 需求分析阶段的目标是对系统的整个应用情况作全面的、详细的调查,确定企业组织的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求;并把这些要求写成用户和数据库设计者都能接受的文档。 7.10概念设计的具体步骤是什么? 答:概念设计的主要步走可分为三步:

(1) 进行数据抽象,设计局部概念模式; (2) 将局部概念模式综合成全局概念模式; (3) 评审。

7.13逻辑设计的目的是什么?

答:逻辑设计的目的是把概念设计阶段设计好的基本ER图转换成与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构(包括数据库模式和外模式)。这些模式在功能、性能、完整性和一致性约束及数据库的可扩充性等方面均应满足用户的各种要求。 7.14试述逻辑设计阶段的主要步骤及内容。

答:逻辑设计阶段主要有五步:形成初始模式,设计子模式,设计应用程序梗概,评价模式和修改模式。

7.15规范化理论对数据库设计有什么指导意义?

答:规范化理论是数据库设计的指南和工具.具体地讲可在以下三个方面起重要作用: (1) 在数据库分析阶段用数据依赖的概念来分析和表示各数据项之间的联系; (2) 在概念设计阶段,用规范化理论消除初步ER图中冗余的联系;

(3)在ER图向关系模型转换过程中,用模式分解的概念和算法指导设计. 7.16 什么是数据库结构的物理设计?试述其具体步骤。

答:对于给定的基本数据模型选取一个最适合应用环境的物理结构的过程,称为DB的物理设计。 物理设计有五步:确定DB的存储记录结构;确定数据存储按排;存取方法的设计;完整性和安全性的设计;应用程序设计。 7.17 数据库实现阶段主要做哪几件事情? 答:数据库实现阶段主要有以下三项工作:

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

Top