《数据库原理与应用》课后习题答案 下载本文

++

因此,有G≠F,即 ∴ρ不具有函数依赖保持性。

D) 模式ad(ACD) ?BCNF,模式bc(BC) ?BCNF

3分解⑶ F={A→BC,C→AD}○,ρ={ABC,AD}

A) 候选码为:A,C 选主码为:A B) 具有无损连接性。 C) 具有函数依赖保持性 D) 均为BCNF

4分解⑷ F={A→B,B→C,C→D}○,ρ={AB,ACD}

A)

B) C) D)

5分解⑸ F={A→B,B→C,C→D}○,ρ={AB,AD,CD}

A) 候选码为:A 选主码为:A B) 不具有无损连接性。 C) 不具有函数依赖保持性 D) 均为BCNF

4.10 设有关系模式R(A,B,C,D,E),R的函数依赖集F={AB→C,C→D,D→E}。判

断分解ρ={R1(ABC),R2(CD),R3(DE)}是否为无损连接分解。并且: ⑴ 求R的所有候选码 ⑵ 求F的最小覆盖

⑶ 将R分解为3NF并具有无损连接性和函数依赖保持性 【参考答案】 初始表

Aj A B C D E Ri ABC CD DE a1 b21 b31 a2 b22 b32 a3 a3 b33 b14 a4 a4 b15 b25 a5 候选码为:A,主码为:A 具有无损连接性。 不具有函数依赖保持性

模式ad(AB) ?BCNF,模式bc(ACD) ?2NF

修改表 逐一考察F中的函数依赖:

a) AB→C表的结构不变; b) C→D,将b14改为a4 Aj A B Ri ABC CD DE a1 b21 b31 a2 b22 b32 C a3 a3 b33 D a4 a4 a4 E b15 b25 a5 c) D→E,将b15改为a5,将b25改为a5 Aj Ri ABC CD DE A a1 b21 b31 B a2 b22 b32 C a3 a3 b33 D a4 a4 a4 E a5 a5 a5 是无损连接分解

⑴ 求R的所有候选码

L类属性AB,LR类属性为CD

(AB)+ = {ABCDE},所以候选码为AB ⑵ 求F的最小覆盖

第一步:将F的所有函数依赖的右部都分解成单一属性: 由于均为单一属性,所以F1=F={AB→C,C→D,D→E} 第二步:去掉冗余的函数依赖:

没有冗余函数依赖,所以F2=F1={AB→C,C→D,D→E} 第三步:去掉冗余的属性:

没有冗余的属性,所以Fm=F2={AB→C,C→D,D→E} ⑶ 将R分解为3NF并具有无损连接性和函数依赖保持性 ρ={R1(ABC),R2(CD),R3(DE)}

4.11设有关系模式R (职工名,项目名,工资,部门名,部门经理)

如果规定每个职工可参加多个项目,各领一份工资;每个项目只属于一个部门管理;每个部门只有一个经理。

⑴ 试写出关系R的基本FD和候选码,确定主码。

⑵ 说明R不是2NF的理由,并把R分解成2NF的模式集。 ⑶ 把R分解成3NF模式集,说明理由。

【参考答案】

(1)由题意得函数依赖集F

F={[职工名,项目名] →工资,项目名→部门名,部门名→部门经理} 候选码:职工名+项目名

由于只有一个候选码,故主码即为职工名+项目名

(2)由于项目名→部门名,所以存在非主属性(部门名)对码(职工名+项目名)的部分依赖,故R没有达到2NF。 可以分解为如下两个关系模式: R1= (职工名,项目名, 工资)

R2= (项目名, 部门名, 部门经理)

(3)由于R2中存在函数依赖:项目名→部门名,部门名→部门经理,即存在非主属性(部门经理)对码(项目名)的传递依赖,故R2没有达到3NF。可以在(2)的基础上把R2进一步分解为如下两个关系模式: R1= (项目名,部门名) R2= (部门名, 部门经理)

综上,R分解成3NF模式集为: R1= (职工名,项目名, 工资) R2= (项目名,部门名) R3= (部门名, 部门经理)

第五章

5.1 名词解释

数据库设计 基于3NF的数据库设计方法 基于E-R模型的数据库设计方法 数据库设计是指对于一个给定的应用环境,根据用户的需求,在某一具体的数据库管理系统上,构造一个性能良好的数据模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的信息要求和处理要求。

基于E-R模型的数据库设计方法是由P.P.S.chen于1976年提出的数据库设计方法,其基本思想是在需求分析的基础上,用E-R图构造一个反映现实世界实体之间联系的企业模式,然后再将此企业模式转换成基于某一特定的DBMS的概念模式。

基于3NF的数据库设计方法 是由S·Atre提出的结构化设计方法,其基本思想是在需求分析的基础上,确定数据库模式中的全部属性和属性间的依赖关系,将它们组织在一个单一的关系模式中,然后再分析模式中不符合3NF的约束条件,将其进行投影分解,规范成若干个3NF关系模式的集合。

5.2 什么是数据库设计?试述数据库设计的过程

数据库设计 基于3NF的数据库设计方法 基于E-R模型的数据库设计方法 数据库设计是指对于一个给定的应用环境,根据用户的需求,在某一具体的数据库管理系统上,构造一个性能良好的数据模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的信息要求和处理要求。

按照规范设计方法、考虑数据库及其应用系统开发全过程,并仿照软件生存周期,将数据库设计分为需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和运行维护六个阶段。数据库设计过程可以用图5-1表示。

图5-1 数据库设计步骤

(1)需求分析

需求分析是对具体应用环境的业务流程和用户提出的各种要求加以调查研究和分析,并和用户共同对各种原始数据加以综合、整理的过程,是形成最终设计目标的首要阶段,也是整个数据库设计过程中最困难的阶段。该阶段任务的完成,将为以后各阶段任务打下坚实的基础。因此,对用户的各种需求及数据,能否做出准确无误、充分完备的分析,并在此基础上形成最终目标,是整个数据库设计成败的关键。

(2)概念结构设计

概念结构设计是对用户信息需求所进行的进一步抽象和归纳,结果为数据库概念结构,通常用E-R模型来表示。

数据库的概念结构与DBMS和相关软硬件无关。它是对现实世界中具体数据的抽象,实现了从现实世界到信息世界的转化过程。概念结构设计是数据库设计的一个重要环节,是数据库的逻辑结构设计和物理结构设计的基础。

(3)逻辑结构设计

概念结构设计的结果是得到一个与DBMS无关的概念模式,而逻辑结构设计就是将概念模式转化为选用的具体DBMS所支持的数据模型相符合的逻辑结构。所以,在逻辑结构设计阶段选择什么样的数据模型和哪一个具体DBMS尤为重要,它是能否满足用户各种要求的关键。

在逻辑结构设计阶段还有一个很重要的工作就是模式优化,该工作主要以用规范化理论为指导,目的是能够合理存放数据集合。逻辑结构设计阶段的模式优化,已成为影响数据库设计质量的一项重要工作。

(4)物理结构设计