数据库原理第四章课后题答案(第四版)

简介: 数据库原理第四章课后题答案(第四版)

一、选择题

1. B    2. B    3. D    4. B    5. C

6. D    7. B    8. D    9. D    10. D

11. A   12.C   13.D    14.C    15.B

二、填空题

1. 超键(或超码)

2. 正确  完备

3. 属性集X的闭包X +    函数依赖集F的闭包F +

4. 平凡的函数依赖  自反性

5. {ADC}    φ

6. 2NF  3NF  BCNF

7. 无损连接  保持函数依赖

8. AB  BC  BD

9. Bφ  BB  BC  BBC

10. BC  AD  DC

11. AB  1NF

12. AD  2NF

13. BCNF

14. 包含

15. 函数依赖

16. BCNF

三、简答题

1.解释下列术语的含义:函数依赖、平凡函数依赖、非平凡函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、范式、无损连接分解、保持函数依赖分解。

函数依赖(Functional Dependency,FD)是关系模式中属性之间的一种逻辑依赖关系。

当属性集Y是属性集X的子集(即YX)时,则必然存在着函数依赖XY,这种类型的函数依赖称为平凡的函数依赖。如果Y不是X的子集,则称XY为非平凡的函数依赖。

设有关系模式RU),U是属性全集,XYU的子集,如果XY,并且对于X的任何一个真子集X′,都有X'\Y,则称YX完全函数依赖(Full Functional Dependency),记作XY。如果对X的某个真子集X',有X'→Y,则称YX部分函数依赖(Partial Functional Dependency),记作XY

设有关系模式RU),U是属性全集,XYZU的子集,若XY,但Y\X,而YZYXZY),则称ZX传递函数依赖(Transitive Functional Dependency),记作:XZ

关系模式规范化过程中为不同程度的规范化要求设立的不同标准称为范式

2.给出2NF、3NF和BCNF的形式化定义,并说明它们之间的区别和联系。

如果关系模式R∈1NF,且每个非主属性都完全函数依赖于R的主码,则称R属于第二范式(Second Normal Form),简称2NF,记作R∈2NF。

如果关系模式R∈2NF,且每个非主属性都不传递函数依赖于R的主码,则称R属于第三范式(Third Normal Form),简称3NF,记作R∈3NF。

如果关系模式R∈1NF,且所有的函数依赖XYYX),决定因素X都包含了R的一个候选码,则称R属于BC范式(Boyce-Codd Normal Form),记作R∈BCNF。

区别和联系:

(1)BCNF3NF2NF

(2)BCNF、3NF与2NF均是针对函数依赖而定义划分的。2NF、3NF和BCNF是在函数依赖的条件下对模式分解所能达到的分离程度的测度。一个模式中的关系模式如果都属于BCNF,那么在函数依赖范畴内,它已实现了彻底的分离,已消除了插入和删除异常。

3.什么叫关系模式分解?为什么要有关系模式分解?模式分解要遵守什么准则?

设有关系模式RU),R1,R2,…,Rk都是R的子集(此处把关系模式看成是属性的集合),R=R1∪R2∪…∪Rk,关系模式的集合用ρ表示,ρ={R1,R2,…,Rk}。用ρ代替R的过程称为关系模式的分解。

关系模式分解是为了消除关系模式中不合理的数据冗余和操作异常问题。

衡量关系模式的一个分解是否可取,主要有两个标准:即分解是否具有无损连接,分解是否保持了函数依赖。

4.试证明全码的关系必是3NF,也必是BCNF。

设有关系RUF),因为R含全码,所以U中的属性均为主属性,即R不含任何非主属性。根据3NF的定义,R中没有非主属性对码有传递函数依赖存在。根据定义可下结论:R3NF。证毕。

5.设有关系模式RABCD),函数依赖F={ACCABACDACBDA}

(1)求出R的所有候选码。

(2)求出F的最小函数依赖集Fmin。

(3)根据函数依赖关系,确定关系模式R属于第几范式。

(4)将R分解为3NF,并保持无损连接性和函数依赖性。

(1)候选码是BD

(2){ACCABADA}

(3)第1范式

(4)P={ACBADABD}

6.设有关系模式RABCD),函数依赖F={ACCABACDAC}

(1)求(AD) +,B +。

(2)求出R的所有候选码。

(3)求出F的最小函数依赖集Fmin。

(4)根据函数依赖关系,确定关系模式R属于第几范式。

(5)将R分解为3NF,并保持无损连接性和函数依赖性。

(6)将R分解为BCNF,并保持无损连接性。

(1)(AD) +=ACD,B +=ABC

(2)BD

(3){ACCABADA}

(4)第1范式

(5)P={R1(AC),R2(BA),R3(DA),R4(BD)}

(6)P={R1(AC),R2(ABD) }

7.关系模式RABCDE),函数依赖F={ADEDDBBCDCDA}。

(1)求R的候选码。

(2)根据函数依赖关系,确定关系模式R属于第几范式。

(3)将R分解为3NF,并保持无损连接性。

(1)CE

(2)第1范式

(3)P={R1(AC)R2(BC)R3(CD)R4(DEC)R5(CEA)R6(BE)}

8.判断以下关系模式的分解是否具有无损连接性。

(1)关系模式RUVWXYZ),函数依赖F={UVWZYUWYX},分解ρ={WZVYWXYUV}。

(2)关系模式RBOISQD),函数依赖F={SDIBISQBO},分解ρ={SDIBISQBO}。

(3)关系模式RABCD),函数依赖F={ACDCBDA},分解ρ={ABACDBCD}。

(4)关系模式RABCDE),函数依赖F={ACCDBCDECCEA},分解ρ={ADABBCCDEAE}。

(1)否

(2)是

(3)否

(4)否

9.设有关系模式SCSCG),函数依赖集为F={SCG}。请确定SC的范式等级,并证明。

候选码SC,

非主属性G都完全依赖于主码,属于第二范式;

非主属性G不传递函数依赖于主码,属于第三范式;

函数依赖决定因素包括候选码,属于BC范式;

对于函数依赖SCG,SC包含了关系的候选码,属于第四范式。

10.设有关系模式RABCDEF),函数依赖集F={ABCBCABCDEFEC}。试问:关系模式R是否为BCNF,并证明结论。

此题目题干存在问题,建议删除。

11.设有关系模式RABCDE),函数依赖集F={ADEDDB,(BC)→D,(DC)→A}。

(1)求出R的候选码。

(2)判断ρ={ABAECEBCDAC}是否为无损连接分解?

(1)CE

(2)是。

12.设有关系模式RABCDE),函数依赖集F={ACBDCDDECCEA}。

判断ρ={ADABBECDEAE}是否为无损连接分解?

不是无损连接分解。

13.设有函数依赖集F={ABCEACGPBEPACDEPHBPDHGABCPG},求属性集D关于F的闭包D +。

D +={DGH}

14.已知关系模式R的全部属性集U={ABCDEG}及其函数依赖集:F={ABCCABCDACDBDEGBECCGBDCEAG},求属性集BD的闭包(BD)+。

BD)+={ABCDEG}

15.设有函数依赖集F={DGCACDEAB},求闭包D +、C +、A +、(CD)+、(AD)+、(AC)+、(ACD)+。

D +={DG}

C +={ABC}

CD)+={ABCDEG}

AD)+={ABDG}

AC)+={ABC}

ACD)+={ABCDEG}

16.设有函数依赖集F={ABCEACGPBEPACDEPHBPDHGABCPG},求与F等价的最小函数依赖集。

Fmin={ABEACGPBEPACDEPHBPDHDGABPABG}

17.设有关系模式RUF),其中:U={EFGH},F={EGGEFEGHEGFHE},求F的最小函数依赖集。

Fmin={ EGGEFEHE }

18.求以下给定关系模式的所有候选码。

(1)关系模式RABCDEP),其函数依赖集F={ABCPEACED}。

(2)关系模式RCTSNG),其函数依赖集F={CTCSGSN}。

(3)关系模式RCSZ),其函数依赖集F={(CS)→ZZC}。

(4)关系模式RSDIBOQ),其函数依赖集F={SDIBBOOQQI}。

(5)关系模式RSDIBOQ),其函数依赖集F={IBBOIQSD}。

(6)关系模式RABCDEF),其函数依赖集F={ABEACFADBBCCD}。

(1)CE

(2)CS

(3)CS,ZS

(4)SISBSOSQ

(5)SI

(6)ABACAD

19.设有关系R,如图4-36所示。

试问R属于第几范式?如何规范化为3NF?写出规范化的步骤。

职工号

职工名

年龄

性别

单位号

单位名

E1

ZHAO

20

F

D3

CCC

E2

QIAN

25

M

D1

AAA

E3

SEN

38

M

D3

CCC

E4

LI

25

F

D3

CCC

图4-36  关系R

关系R主码为职工号,每个非主属性都完全函数依赖于主码,因此R属于第二范式。因为单位名依赖于单位号,单位号依赖于职工号,即非主属性传递函数依赖于R的主码,所以R不属于第三范式。

规范化步骤:

(1)求出关系模式R的最小函数依赖集。

Fmin={职工号→职工名,职工号→年龄,职工号→性别,职工号→单位号,单位号→单位名}

(2)根据算法4.6的第(2)步,可看出F中没有满足条件的函数依赖。

(3)根据算法4.6的第(3)步,将R分解为:R1={职工号,职工名,年龄,性别,单位号},R2={单位号,单位名}。

(4)ρ={ R1={职工号,职工名,年龄,性别,单位号},R2={单位号,单位名}}。

20.要建立关于系、学生、班级、研究会等信息的一个关系数据库。规定:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一个宿舍区。每个学生可参加若干研究会,每个研究会有若干学生。

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

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

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

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

学生参加某研究会,有一个入会年份。

试给出上述数据库的关系模式;写出每个关系的最小依赖集(基本的函数依赖集,不是导出的函数依赖);指出是否存在传递函数依赖;对于函数依赖左部是多属性的情况,讨论其函数依赖是完全函数依赖还是部分函数依赖,指出各关系的候选码。

(1)关系模式为:

系({系号,系名,系办公室地点,宿舍区,人数},{系号→系名,系号→系办公室地点,系名→系办公室地点,系号→宿舍区})

班级({班号,专业名,系号,人数,入校年份}{班号→专业名,班号→系号,班号→入校年份,(专业名,入校年份)→班号}),其中,人数为冗余属性,可以通过计算指定班级号的人数获得。

学生({学号,姓名,出生年月,系号,班号}{学号→姓名,学号→出生年月,学号→系号,学号→班号,学号→宿舍区,班号→系号}

入会({学号,研究会名,入会年份}{(学号,研究会名)→入会年份}

研究会({研究会名,成立年份,地点,人数}{研究会名→成立年份,研究会名→地点}),其中,人数为冗余属性,可以通过入会关系计算查询。

(2)传递函数依赖有:系号→系办公室地点;学号→宿舍区;

3以上关系模式中没有部分函数依赖。

系关系中候选码为:系号;外码为:无

班级关系中候选键为:班号、(专业名,入校年份);外码为:系号

学生关系中候选键为:学号;外码为:班号

入会关系中候选键为:(学号,研究会名);外码为:学号或研究会名

研究会关系中候选键为:研究会名;外码为:无

21.设有函数依赖集F={AB→CE,A→C,GP→B,EP→A,CDE→P,HB→P,D→HG,ABC→PG},求与F等价的最小函数依赖集。

同16题答案。

22.设有关系模式R(B,O,I,S,Q,D),其上函数依赖集为:F={S→D,I→B,IS→Q,B→O},如果用SD、IB、ISQ和BO代替R,这样的分解具有无损连接吗?

该分解是无损连接。

23.设关系R(课程名,教师名,教师地址),它是第几范式?是否存在删除异常?如何将它分解为高一级的范式。

关系R是第一范式。该关系的主码为(课程名,教师名),因为教师地址函数依赖于教师名,因此不满足每个非主属性都完全函数依赖于R的主码,因此不属于第二范式。

该关系存在删除异常,当某课程被删除时,相应的教师名和教师地址也被删除,但现实中该教师仍在存在。

关系R可分解为R1={课程名,教师名},R2={教师名,教师地址}。

目录
相关文章
|
2月前
|
存储 缓存 网络安全
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
|
3月前
|
缓存 算法 关系型数据库
Mysql(3)—数据库相关概念及工作原理
数据库是一个以某种有组织的方式存储的数据集合。它通常包括一个或多个不同的主题领域或用途的数据表。
107 5
Mysql(3)—数据库相关概念及工作原理
|
2月前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
73 2
|
3月前
|
SQL 关系型数据库 数据库
SQL数据库:核心原理与应用实践
随着信息技术的飞速发展,数据库管理系统已成为各类组织和企业中不可或缺的核心组件。在众多数据库管理系统中,SQL(结构化查询语言)数据库以其强大的数据管理能力和灵活性,广泛应用于各类业务场景。本文将深入探讨SQL数据库的基本原理、核心特性以及实际应用。一、SQL数据库概述SQL数据库是一种关系型数据库
133 5
|
3月前
|
SQL 关系型数据库 MySQL
sql注入原理与实战(三)数据库操作
sql注入原理与实战(三)数据库操作
sql注入原理与实战(三)数据库操作
|
3月前
|
SQL 存储 Java
sql注入原理与实战(二)数据库原理
sql注入原理与实战(二)数据库原理
|
5月前
|
消息中间件 Kafka 数据库
深入理解Kafka的数据一致性原理及其与传统数据库的对比
【8月更文挑战第24天】在分布式系统中,确保数据一致性至关重要。传统数据库利用ACID原则保障事务完整性;相比之下,Kafka作为高性能消息队列,采用副本机制与日志结构确保数据一致性。通过同步所有副本上的数据、维护消息顺序以及支持生产者的幂等性操作,Kafka在不牺牲性能的前提下实现了高可用性和数据可靠性。这些特性使Kafka成为处理大规模数据流的理想工具。
116 6
|
6月前
|
存储 SQL 关系型数据库
(六)MySQL索引原理篇:深入数据库底层揭开索引机制的神秘面纱!
《索引原理篇》它现在终于来了!但对于索引原理及底层实现,相信大家多多少少都有了解过,毕竟这也是面试过程中出现次数较为频繁的一个技术点。在本文中就来一窥`MySQL`索引底层的神秘面纱!
418 5
|
6月前
|
SQL 存储 安全
SQL数据库:核心原理、应用实践与未来展望
在电子商务领域,SQL数据库用于存储商品信息、用户信息、订单信息等。通过SQL数据库,电商平台可以实现商品的快速检索、用户行为的跟踪分析、订单状态的实时更新等功能,提升用户体验和运营效率。
|
5月前
|
存储 NoSQL 关系型数据库
Web中的数据库:原理、应用与代码实现
Web中的数据库:原理、应用与代码实现
168 0