SQL数据库管理与应用习题与答案 联系客服

发布时间 : 星期五 文章SQL数据库管理与应用习题与答案更新完毕开始阅读f394c1010740be1e650e9a9c

第三章

习题: 一、填空题:

1.数据依赖的类型有很多,其中最重要的是【1】和【2】。

2.实体类型的【1】之间相互依赖又相互限制的关系称为数据依赖。 3.被F逻辑蕴涵的函数依赖的集合称为F的【1】。

4.如果一个关系模式R的每一个属性的域都只包含单一的值,则称R满足【1】。 5.如果关系模式R满足【1】,而且它的所有非主属性完全函数依赖于候选键,则R满足【2】。

6.如果关系模式R满足【1】,并且它的任何一个非主属性都不传递依赖于任何候选键,则R满足【2】。

7.关系模式R中,若每一个决定因素都包含键,则关系模式R属于【1】。 二、判断题:

1.函数依赖是指关系模式R的某个或某些元组满足的约束条件。【1】

2.如果在同一组属性子集上,不存在第二个函数依赖,则该组属性集为候选键。【1】 3.如果一个关系模式∈3NF,则该关系模式一定∈BCNF。【1】

4.如果一个关系数据库模式中的关系模式都属于BCNF,则在函数依赖的范畴内,已实现了彻底的分离,消除了插入、删除和修改的异常。【1】

5.规范化的过程是用一组等价的关系子模式,使关系模式中的各关系模式达到某种程度的“分离”,让一个关系描述一个概念、一个实体或实体间的一种联系。规范化的实质就是概念的单一化。【1】

6.规范化理论为数据库设计提供了理论的指南和工具。规范化程度越高,模式就越好。【1】

7.一个无损连接的分解一定保持函数依赖。【1】 8.一个保持函数依赖的分解一定具有无损连接。【1】 三、单项选择题:

1. 有关函数依赖错误的是:

A.函数依赖实际上是对现实世界中事物的性质之间相关性的一种断言。 B.函数依赖是指关系模式R的某个或某些元组满足的约束条件。 C.函数依赖是现实世界中属性间关系的客观存在。 D.函数依赖是数据库设计者的人为强制的产物。

2.对于键的描述错误的是:

A.键是唯一地确定一个实体的属性的集合。 B.主键是候选键的子集。 C.主键可以不唯一。

D.主键可以包含多个属性。

3.对于第三泛式的描述错误的是: A.如果一个关系模式R不存在部分依赖和传递依赖,则R满足3NF。 B.属于BCNF的关系模式必属于3NF。 C.属于3NF的关系模式必属于BCNF。

D.3NF的”不彻底”性表现在当关系模式具有多个候选键,且这些候选键具有公共属性时,可能存在主属性对键的部分依赖和传递依赖。 4.关系模式的规范化错误的是: A.规范化的关系消除了操作中出现的异常现象。 B.规范化的规则是绝对化的,规范化的程度越高越好。 C.关系模式规范化的过程是通过`对关系模式进行分解来实现的。 D.对多数应用来说,分解到3NF就够了。 5.关于函数依赖和多值依赖错误的是: A.都描述了关于数据之间的固有联系。 B.在某个关系模式上,函数依赖和多值依赖是否成立,由关系本身的语义属性确定。 C.函数依赖是多值依赖的特殊情况。 D.X->Y、X->->Y在R(U)上是否成立仅与XY值有关 四、简答题:

1.要使一个表成为关系,必须施加什么约束?

2.定义函数依赖。给出一个其两个属性间有函数依赖的例子,给出一个其两个属性间没有函数依赖的例子。

3.给出一个有函数依赖的关系的例子,其中的决定因素有两个或多个属性。 4.什么是删除异常?举例说明。 5.什么是插入异常?举例说明。

6.定义第二泛式,举出一个在1NF但不在2NF中的关系的例子,并把该关系转化到2NF中。

7.定义第三泛式,举出一个在2NF但不在3NF中的关系的例子,并把该关系转化到3NF中。

8.定义BCNF,举出一个在3NF但不在BCNF中的关系的例子,并把该关系转化到BCNF中。

五、应用题:

1.某工厂需建立一个产品生产管理数据库,管理如下信息:

车间编号、车间主任姓名、车间电话,车间职工的职工号、职工姓名、性别、年龄、工种,车间生产的零件号、零件名称、零件的规格型号,车间生产一批零件有一个批号、数量、完成日期(同一批零件可以包括多种零件)。

(1) 试按规范化的要求给出关系数据库模式。 (2)指出每个关系模式的候选键、外键。

2.关系模式S-L-C(S#,SD,SL,C#,G),其中S#为学生号,SD为系名,SL为系住址(规定一个系住在一个地方),C#为课程号,G为课程成绩,写出可能的函数依赖,并将此关系模式规范化为2NF,3NF。

3.考虑如下的关系定义和样本数据:

PROJECT(ProjectID,EmployeeName,EmployeeSalary),其中ProjectID是项目的名字,EmployeeName是该项目的姓名,EmployeeSalary是名为EmployeeName的雇员的薪水。

PROJECT Relation ProjectID 100A 100A 100B EmployeeName Jones Smith Smith EmployeeSalary 64k 51k 51k 200A 200B 200C 200C 200D Jones Jones Parks Smith Parks 64k 64k 28k 51k 28k 假定所有的函数依赖和约束都显示在数据中,则以下哪个陈述是对的? a. ProjectID?EmployeeName b. ProjectID?EmployeeSalary

c. (ProjectID,EmployeeName)?EmployeeSalary d. EmployeeName?EmployeeSalary e. EmployeeSalary?ProjectID

f. EmployeeSalary?(ProjectID,EmployeeName) 回答如下问题:

g. PROJECT的关键字是什么?

h. 所有的非关键字属性(如果有的话)都依赖于整个关键字吗? i. PROJECT在哪个泛式中?

j. 描述PROJECT会遇到的两个更新异常。 k. ProjectID是决定因素吗?

l. EmployeeName是决定因素吗?

m. (ProjectID,EmployeeName) 是决定因素吗? n. EmployeeSalary是决定因素吗?

o. 这个关系包含传递依赖吗?如果包含,是什么? p. 重新设计该关系,消除更新异常。

参考答案

一、填空题

1.答案:【1】函数依赖(Functional Dependency简记FD) 【2】多值依赖(Multivalued Dependency简记MVD) 2.答案:【1】属性 3.答案:【1】闭包 4.答案:【1】第一范式 5.答案:【1】第一范式【2】第二范式 6.答案:【1】第二范式【2】第三范式 7.答案:【1】BCNF范式 二、判断题

1.答案:【1】错 2.答案:【1】对 3.答案:【1】错 4.答案:【1】对 5.答案:【1】对

6.答案:【1】错 7.答案:【1】错 8.答案:【1】错 三、单项选择题 1.B 2.C 3.C 4.B 5.D 四、简答题

1.列是同质的,即每一列中的分量是同一类型的数据,来自同一个域;不同的列可出自同一个域;列的顺序无所谓;任意两行不能相同;行的顺序无所谓;每一分量必须是不可分的数据项。

2.函数依赖是属性之间的一种关系,它意味着,如果我们给定了一个属性的值,我们就可以获得(查到)另一个属性的值。在关系(S#(学生号),SD(系名),MN(系负责人),CN(课名),G(成绩))中,一个系有若干个学生,但一个学生只属于一个系,有S#->SD,一个学生可以选修多门课程,每门课程有若干学生选修,每个学生学习每一门课程有一个成绩。则S#-/—>G。 3.如上例,(S#,C#)->G。

4.在2题中,有一组函数依赖{S#->SD,SD—>MN,(S#,CN)—>G},若某个系的学生全部毕业了,则在删除该系学生选修课程的信息的同时,把这个系及其负责人的信息也丢掉了,为删除异常。

5.在2题中,有一组函数依赖{S#->SD,SD—>MN,(S#,CN)—>G},如果一个系刚成立,尚无学生,或虽有了学生,还未安排课程,则无法把这个系及其负责人的信息存入数据库,为插入异常。 6.若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF。如关系S-L-C(S#(学号),SD(系别),SL(系所在住处),C#(课程号),G(成绩)) ,规定每个系只住一个地方,则函数依赖有{(S#,C#)->G,S#->SD,S#->SL,SD—>SL},此关系属于1NF,转为2NF为SC(S#,C#,G),S-L(S#,SD,SL)。

7.关系模式R〈U,F〉中若不存在这样的码X,属性组Y及非主属性Z(Z Y)使得X->Y,Y—>Z,Y—/—>X成立,则称R<U,F>∈3NF。 接上题转为3NF为S-D(S#,SD),D-L(SD,SL)。

8.关系模式R〈U,F〉∈1NF,若X->Y且Y X时X必含有码,则R<U,F>∈BCNF。 如关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程,每一教师只教一门课,每门课有若干教师

五、应用题:

1. (1)workshop(wid,wname,wtel)、emp(sid,sname,sex,age,type,wid)、

part(pno,pname,wid,specno,groupno,manu-time,qty)

(2)workshop候选键wid; emp候选键sid、外键wid; part候选键pno、外键wid

2. 函数依赖(S#,C#)-f->G, SD?SL, S#?SD, S#?SL, (S#,C#)-p->SD, (S#,C#)-p->SL

2NF:SC(S#,C#,G), S-L(S#,SD,SL)

3NF:S-D(S#,SD), D-L(SD,SL), SC(S#,C#,G)