早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

部门关系模式存在什么问题?请用100字以内的文字阐述原因。为了解决这个问题可将关系模式分解,

题目

部门关系模式存在什么问题?请用100字以内的文字阐述原因。为了解决这个问题可将关系模式分解,分解后的关系模式的关系名依次取部门_A、部门_B、……

(2)假定月工作业绩关系模式为:月工作业绩(职员代码,年月,工作时间),请给出“查询职员代码、职员名、年月、月工资”的SQL语句。

参考答案
正确答案:(1)部门关系模式属于第2范式(或2NF)该关系模式存在冗余问题因为某部门有多少个办公室部门代码、部门名、起始年月、终止年月就要重复多少次。 为了解决这个问题可将模式分解分解后的关系模式为: 部门_A(部门代码部门名起始年月终止年月) 部门_B(部门代码办公室办公电话) (2)Select职员代码职员名年月工作时间*小时工资AS 月工资 From 职员职务等级月工作业绩 Where 职员.职务代码=职务.职务代码 And 职务
(1)部门关系模式属于第2范式(或2NF),该关系模式存在冗余问题,因为某部门有多少个办公室,部门代码、部门名、起始年月、终止年月就要重复多少次。 为了解决这个问题,可将模式分解,分解后的关系模式为: 部门_A(部门代码,部门名,起始年月,终止年月) 部门_B(部门代码,办公室,办公电话) (2)Select职员代码,职员名,年月,工作时间*小时工资AS 月工资 From 职员,职务,等级,月工作业绩 Where 职员.职务代码=职务.职务代码 And 职务 解析:(1)在问题1的分析中,我们已经指出了“部门”关系模式存在问题。“部门”关系模式因为存在部分依赖,所以属于2NF,该关系模式存在冗余问题。因为某部门有多少个办公室,部门代码、部门名、起始年月、终止年月就要重复多少次。
为了解决这个问题,可将“部门”关系模式分解,分解后的关系模式为:
部门_A(部门代码,部门名,起始年月,终止年月)
部门_B(部门代码,办公室,办公电话)
(2)因为工资问题比较复杂,这里涉及多个表的查询。同时,因为所有关系模式中都没有“月工资”,按照题目的要求,“职员月工资等于职员月工作时间(小时)乘以小时工资”,而“小时工资”又不均等,每个“等级”的职员的“小时工资”都不一样。因此,必须得从“职员”关系模式中取得“职务代码”,然后在“职务”关系模式中取得“等级代码”,接着在“等级”关系模式中取得“年月”和“小时工资”,最后再根据“月工作业绩”中的“年月”和“工作时间”决定月工资。整个查询语句如下:
Select 职员代码,职员名,年月,工作时间* 小时工资AS 月工资
From 职员,职务,等级,月工作业绩
Where 职员.职务代码=职务.职务代码 And
职务.等级代码=等级.等级代码 And
等级.年月=月工作业绩,年月 And
职员.职员代码=月工作业绩.职员代码;