阅读下面关于项目工作管理系统的数据库设计说明,回答问题1至问题3。 【说明】 E软件开发公司,决定开发设计本公司的项目工作管理系统,由王先生承担数据库的设计工作。公司项目管理的需求分析如下: 1.组织机构:E公司有多个部门,每个部门有多个职员、

admin2009-05-15  74

问题 阅读下面关于项目工作管理系统的数据库设计说明,回答问题1至问题3。
【说明】
   E软件开发公司,决定开发设计本公司的项目工作管理系统,由王先生承担数据库的设计工作。公司项目管理的需求分析如下:
   1.组织机构:E公司有多个部门,每个部门有多个职员、多个办公室,每个办公室有一部电话。当部门变更时更换新的部门代码。职员辞职后,若再次被聘用仍使用辞职前的代码。被聘用职员担任某职务,职务用职务代码来标识。职务分为:工程师、高级工程师、经理助理、经理等。职员的工资根据等级区分,共分为S、A、B、C、D五个等级。一个职务对应某个等级,一个等级对应多个职务。职员月工资等于职员月工作时间(小时)乘以小时工资。职员的人事变动及职位变更(升级、降级)在月初进行。
   2.项目管理:项目用项目代码标识,使用过的项目代码不能重复使用。一个部门可承担多个项目,但一个项目仅由一个部门承担。一个项目有一名项目主管和多个职员;—个职员可参加多个项目。项目代码由系统自动生成,一旦项目建立,项目名、部门代码及起始年月日不能再变更。
   3.项目的工作管理流程为:项目上作计划输入(初始计划)→工作业绩输入→业绩生成(每月一次)→计划修正(每月一次)。
   (1)项目工作计划输入:项目主管使用如图22-14所示计划输入界面,输入项目代码、职员代码、职员参加某个项目的月工作时间(计划)。图中白色部分为可输入项。
   (2)工作业绩输入:输入职员每天参加各个项目的工作时间。图22-15为工作业绩输入界面,图中白色部分为可输入项。其中,出勤时间由考勤系统管理,指定项目代码的顺序可以不同,并且一天可以输入多个项目代码,但同—个项目代码不能重复输入。
   (3)业绩生成:月底汇总职员的当月工作业绩,生成月工作业绩表。
   (4)计划修正:项目主管根据项目进度修改以后的工作计划。
               
   王先生根据公司的项目需求将数据库关系模式设计如图22-16所示。
   

选项

答案部门(部门代码,部门名,起始年月,终止年月,办公室,办公电话) F1={部门代码→(部门名,起始年月,终止年月),部门代码→办公室,办公室→办公电话} 注:部门代码→(部门名,起始年月,终止年月)可写成(下同): 部门代码→部门名,部门代码→起始年月,部门代码→终止年月 等级(等级代码,等级名,年月,小时工资) F2={等级代码→等级名,(等级代码,年月)→小时工资} 项目(项目代码,项目名,[*],起始年月日,结束年月日,[*]) F3={项目代码→(项目名,部门代码

解析 本题要求给出部门、等级、项目、工作计划关系模式的主键和外键,以及基本函数依赖集。这些需要从试题描述和图22-14、图22-15中得到答案。我们只以“部门”为例进行分析,其他三个可类似进行。
   “当部门变更时更换新的部门代码”,这说明“部门代码→(部门名,起始年月,终止年月)。“每个部门有多个职员、多个办公室,每个办公室有一部电话”。这说明“部门代码→办公室”,“办公室→办公电话”。因此,“部门代码”是关系模式“部门”主键。
   但是,因为这个关系模式不满足BCNF,这样会有些问题,例如,在这个关系模式中,如果某个部门有多个办公室,则“部门代码”相同的记录的“办公电话”却不一定相同。这种现象又否定了“部门代码”是主键的结论。为了解决这个问题,必须增加“办公室”为主属性。因此,关系模式“部门”的主键为(部门代码,办公室),无外键。
转载请注明原文地址:https://jikaoti.com/ti/wex7FFFM
0

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