当前位置:文档之家› 数据库原理及应用 chp4课后习题答案

数据库原理及应用 chp4课后习题答案

第四章关系规范化
1.设有关系模式R(职工名,项目名,工资,部门号,部门名,部门经理)
如果规定:
每个职工可参加多个项目,各领一份工资;
每个项目只属于一个部门经理;
每个部门只有一个经理。

该模式中,函数依赖关系如下图所示:
试回答下列问题:
(1) 请分析该模式是不是一个好的关系模式?为什么?(5分)
(2) 试问关系模式R最高已经达到第几范式?如果该模式不是一个好的模
式,试用规范化理论对其进行分解使之达到第三范式。

( 5分)
参考答案:
2、
(1) R(职工名,项目名,工资,部门号,部门名,部门经理)不是一个好的关系模式,因为:
通过图中关系依赖图可以发现其码为(职工号,项目名)
①插入异常
假设职工号为07102,部门号为S1的职工还未参加项目,因项目名是主属性,因此该学生的信息无法插入R。

②删除异常
假定某个职工本来只参加了项目名为“三建”的一个工程。

现在因某种原因,他连“三建”工程也不参加了。

因项目名是主属性,此操作将导致该学生信息的
整个元组都要删除。

③数据冗余度大
如果一个职工参加了10个工程,那么他的部门名称和部门经理的值就要重复存储了10次。

④修改复杂
例如由于某种原因,某职工要改变所参与的项目,在修改此职工元组的项目名的同时,还可能需要修改其部门号,部门名称和部门经理。

如果这个职工参加了K个工程,则必须无遗漏地修改K个元组中全部部门号,部门名称和部门经理信息。

(2)职工名,项目名,工资,部门号,部门名,部门经理
由于部门名,部门经理部分函数依赖于码,因此该模式只满足第一范式,-----1分
所以采用投影分解法将一个1NF的关系分解为多个2NF的关系,即:SLC分解为两个关系模式,以消除这些部分函数依赖
R1(职工名,项目名,工资)∈2NF
R2(项目名,部门号,部门名,部门经理)∈2NF
但是2NF关系模式R2中,部门名和部门经理传递函数依赖于项目名,即R2中存在非主属性对码的传递函数依赖。

所以进一步把SL分解为两个关系模式,以消除传递函数依赖:
R2(项目名,部门号)∈3NF
R3(部门号,部门名,部门经理)∈3NF。

相关主题