请使用“关系模式标记规则”,给出部门、等级、项目、工作计划关系模式的主键和外键,以及基本函数依赖集F1、F2、F3和F4。 请使用“关系模式标记规则”,给出部门、等级、项目、工作计划关系模式的主键和外键,以及基本函数依赖集F1、F2、F3和F4。

admin2006-03-15  35

问题 请使用“关系模式标记规则”,给出部门、等级、项目、工作计划关系模式的主键和外键,以及基本函数依赖集F1、F2、F3和F4。
请使用“关系模式标记规则”,给出部门、等级、项目、工作计划关系模式的主键和外键,以及基本函数依赖集F1、F2、F3和F4。

选项

答案(1)部门关系模式属于2范式(或2NF),该关系模式存在冗余问题,因为某部门有多少个办公室,部门代码、部门名、起始年月、终止年月就要重复多少次。 为了解决这个问题可将模式分解,分解后的关系模式为: 部门_A (部门代码,部门名,起始年月,终止年月) 部门_B (部门代码,办公室,办公电话) (2)SELECT 职员代码,职员名,年月,工作时间*小时工资AS 月工资 FROM 职员,职务,等级,月工作业绩 WHERE 职员.职务代码=职务.职务代码 AND 职务.等级代码=等级.等级代码 AND 等级.年月=月工作业绩.年月 AND 职员.职员代码=月工作业绩.职员代码;

解析 (1)部门关系模式存在的主要问题是数据冗余,因为部门关系模式属于2范式(或 2NF)。例如,假设某个部门有10个办公室,部门代码、部门名、起始年月、终止年月就要重复10次。为了解决这个问题可将模式分解,分解后的关系模式为:
   部门_ A(部门代码,部门名,起始年月,终止年月)
   部门_ B(部门代码,办公室,办公电话)
(2)假定月工作业绩关系模式为:月工作业绩(职员代码,年月,工作时间),那么“查询职员代码、职员名、年月、月工资”的SQL语句如下;
   SELECT 职员代码,职员名,年月,工作时间*小时工资AS月工资
          FROM 职员,职务,等级,月工作业绩
          WHERE 职员.职务代码=职务.职务代码 AND
                职务.等级代码;等级.等级代码AND
                等级.年月=月工作业绩.年月AND
                职员.职员代码;月工作业绩.职员代码;
转载请注明原文地址:https://kaotiyun.com/show/y8UZ777K
0

相关试题推荐
最新回复(0)