1、中级软件设计师下午试题-44 及答案解析(总分:240.00,做题时间:90 分钟)一、试题一(总题数:1,分数:45.00)说明某学校建立了一个网上作业提交与管理系统,基本功能描述如下。(1)账号和密码。任课老师用账号和密码登录系统后,提交所有选修学生的名单。系统自动为每个选修学生创建登录系统的账号和密码。(2)作业提交。选修学生使用账号和密码登录系统后,可以向系统申请所选课程的作业。系统首先检查学生的当前状态,如果该选修学生还没有做过作业,则从数据库服务器申请一份作业。若申请成功,则显示需要完成的作业。学生需在线完成作业,单击提交按钮上交作业。(3)在线批阅。系统自动在线批改作业,显示作业
2、成绩,并将该成绩记录在作业成绩统计文件中。(分数:45.00)(1).问题 1在系统的需求分析阶段,使用用例对系统需求建模。表 1-8和表 1-9分别给出了其中用例“创建选修学生账号和密码”、用例“作业申请”的概要描述。(分数:15.00)_(2).问题 2如果将数据库服务器(记为 DB)作为一个外部实体,那么在绘制该网上作业提交与管理系统的数据流图时,还应有哪些外部实体和数据存储?(分数:15.00)_(3).问题 3该网上作业提交与管理系统的顶层数据流图中,相关数据流的部分信息如表 1-10所示。表 1-10 顶层数据流图数据流描述表序号 数据流名称 起点 终点 账号和密码 (11) 网上
3、作业提交与管理系统 账号和密码 (12) 网上作业提交与管理系统 (13) 任课老师 网上作业提交与管理系统 作业申请 (14) 网上作业提交与管理系统 作业申请 网上作业提交与管理系统 (15) (16) (17) 网上作业提交与管理系统 需完成的作业 网上作业提交与管理系统 (18) 提交的作业 (19) (20) 作业成绩 (21) (22) (23) (24) 作业成绩统计文件请使用说明中的词汇,结合问题 2的解答,将表 1-10中的(11)(24)空缺处的内容填写完整。(分数:15.00)_二、试题二(总题数:1,分数:60.00)说明某软件开发公司,决定结合自身工作的需求开发设计本
4、公司的项目工作管理系统,由郭工程师承担数据库的设计工作。公司项目管理的需求分析如下。1组织机构。该公司有多个部门,每个部门有多个职员、多个办公室,每个办公室有一部电话。当部门变更时更换新的部门代码。职员辞职后,若再次被聘用仍使用辞职前的代码。被聘用职员担任某职务,职务用职务代码来标识。职务分为:工程师、高级工程师、经理助理、经理等。职员的工资根据等级区分,共分为 S、A、B、C、D 5 个等级。一个职务对应某个等级,一个等级对应多个职务。职员月工资等于职员月工作时间(小时)乘以小时工资。职员的人事变动及职位变更(升级、降级)在月初进行。2项目管理。项目用项目代码标识,使用过的项目代码不能重复使
5、用。一个部门可承担多个项目,但一个项目仅由一个部门承担。一个项目有一名项目主管和多个职员;一个职员可参加多个项目。项目代码由系统自动生成,一旦项目建立,项目名、部门代码及起始年月日不能再变更。3项目的工作管理流程为:项目工作计划输入(初始计划)工作业绩输入业绩生成(每月一次)计划修正(每月一次)。项目工作计划输入。项目主管使用如图 1-9所示的计划输入界面,输入项目代码、职员代码、职员参加某个项目的月工作时间(计划)。图中空白区域为可输入项。项目代码 123456 项目名 ABCD 部门代码 03 部门名 开发部起始年月日 2007-06-11结束年月日 2007-11-31登陆时间 2007
6、-05-28职员代码 职员名 6月 7月 8月 9月 10月 11月12月 1月2月3月 4月5月 合计0302 小郭 120 180 180 180 180 180 10200316 小谢 120 180 180 150 150 150 9300309 张三 90 150 150 180 180 180 9300328 李四 120 180 180 120 120 90 8700321 王五 90 150 150 150 150 90 810工作业绩输入。输入职员每天参加各个项目的工作时间。如图 1-10所示为工作业绩输入界面,图中空白区域为可输入项。其中,出勤时间由考勤系统管理,指定项目代
7、码的顺序可以不同,并且一天可以输入多个项目代码,但同一个项目代码不能重复输入。 职工代号 0302 职员名 小郭 输入年月 2007 6月每个项目的工作时间年月日 星期 出勤时间项目代码 工作时间 项目代码 工作时间 备注2007-06-11 一 12.0 123456 8.0 345678 4.02007-06-12 二 15.0 123456 10.0 345678 5.02007-06-13 三 18.0 123456 15.0 345678 3.02007-06-14 四 15.0 123456 15.02007-06-15 五 18.0 123456 18.02007-06-16 六
8、 10.0 123456 10.02007-06-17 日 0.0业绩生成。月底汇总职员的当月工作业绩,生成月工作业绩表。计划修正。项目主管根据项目进度修改以后的工作计划。郭工程师根据公司的项目需求将数据库关系模式设计如下:部门(部门代码,部门名,起始年月,终止年月,办公室,办公电话);职务(职务代码,职务名);等级(等级代码,等级名,年月,小时工资);职员(职员代码,职员名,部门代码,职务代码,任职时间);项目(项目代码,项目名,部门代码,起始年月日,结束年月日,项目主管);工作计划(项目代码,职员代码,年月,工作时间)。(分数:60.00)(1).问题 1请使用“关系模式标记规则”(见本题
9、附内容,全书同),给出“部门”、“等级”、“项目”和“工作计划”关系模式的主键和外键。(分数:15.00)_(2).问题 2请将以下关系模式中的(1)和(2)空缺处填入属性名称(要求使用题干说明中已有的属性名称)。(1)郭工程师设计的关系模式不能管理职务和等级之间的关系,可以通过修改“职务”关系模式来实现。修改后的关系模式为:职务( (1) )(2)为了管理公司职员参加各项目每天的工作业绩,需设计工作业绩关系模式为:工作业绩( (2) )(分数:15.00)_(3).问题 3郭工程师设计的“部门”关系模式中存在什么问题?请用 100字以内的文字简要说明理由。为了解决这个问题可将关系模式分解,请
10、给出分解后的关系模式(分解后的关系模式的关系名可依次取“部门_A”、“部门_B”、)。(分数:15.00)_(4).问题 4假定月工作业绩关系模式为:月工作业绩(职员代码,年月,工作时间),请将以下“查询职员代码、职员名、年月、月工资”SQL 语句中(3)(5)空缺处的内容填写完整。SELECT (3) FROM (4) WHERE (5) 附关系模式的标记规则如下:关系名(属性名 1,属性名 2,属性名 n)其中:若该属性仅为主键属性时,则该属性名下画实下画线;若该属性仅为外键属性时,则该属性名下画虚下画线;若该属性既是主键属性,又是外键属性时,则在该属性名下画实下画线和虚下画线;若该属性既
11、不是主键属性,又不是外键属性时,则在该属性名下不做标记。(分数:15.00)_三、试题三(总题数:1,分数:60.00)说明某超市管理系统的前台销售子系统以最基本的方式处理销售业务。系统的功能需求如下:记录每种商品的编号、单价和现有数量;为顾客选购的商品计价、收费,并打印清单;帮助商家找出哪种商品将脱销,从而及时补充货源;随时按上级系统的要求报告当前的款货数量、增减商品的种类或修改商品定价;交接班时结算货款数目和商品数目。每台收款机可以处理任何数目的销售事件,但一个销售事件只能由一台收款机处理。每个销售事件从收款机响应收款人员的指令开始,先向商品发送检索请求消息来查找将被出售的商品。如果该商品
12、的数量少于下限,则向供货员发送缺货登记消息。每名供货员可以提供一种或多种商品,同一品牌的商品只能由一位供货员来提供。接着收款机发送计价和入账消息请求售出操作,再由销售事件发送记账消息给相应的账册,并控制流程返回收款机等待下一次销售操作。每本销售账册可以记录任何数目的销售事件,但一个销售事件只能由一本销售账册记录。该销售子系统采用面向对象方法开发,系统中的类及类之间的关系用 UML类图表示,图 1-11是该系统类图中的一部分;系统的动态行为采用 UML序列图表示,图 1-12是销售事件部分的序列图。(分数:60.00)(1).问题 1根据题干的说明及图 1-11、图 1-12的相关信息,类商品除
13、了售出和缺货登记操作之外,还应具有哪些主要操作? (请使用说明中给出的词语回答问题)(分数:15.00)_(2).问题 2请将图 1-11中类商品、类特价商品和类计量商品 3者之间的联系补充完整。(分数:15.00)_(3).问题 3识别关联的多重度是面向对象建模过程中的一个重要步骤。请根据说明中给出的描述,将图 1-11中 (1)(8)空缺处的内容填写完整。(分数:15.00)_(4).问题 4请使用说明中给出的词语,将销售事件序列图中的(A)(D)空缺处的内容填写完整。(分数:15.00)_四、试题四(总题数:1,分数:30.00)说明某大学城图书馆需要在无线阅览厅的某些位置上放置无线接入
14、点 AP(Access Poin)。假设每个无线 AP 覆盖范围的半径是 6米,因此必须使得每台笔记本电脑上的无线网卡到某个无线 AP的直线距离不超过 6米。为了简化问题,假设所有无线网卡在同一直线上,并且无线 AP沿该直线放置。该问题可以建模为如图 1-13所示,其中直线表示无线网卡所在的直线,实心正方形表示无线网卡。现采用贪心策略实现用尽可能少的无线 AP覆盖所有的无线网卡。实现贪心算法的流程如图 1-14所示。其中,di(1iN)表示第 i张无线网卡到通道 A端的距离,N表示无线网卡的总数,无线网卡的编号按照无线网卡到通道 A端的距离从小到大进行编号:sk表示第k(k1)个无线 AP到通
15、道 A端的距离。算法结束后 k的值为无线 AP的总数。(分数:30.00)(1).问题 1请填补图 1-14流程图中(1)(4)空缺处的内容。(分数:15.00)_(2).问题 2该贪心算法的时间复杂度为 (5) 。(分数:15.00)_五、试题五(总题数:1,分数:15.00)1.说明一般的树结构常采用孩子兄弟表示法表示,即用二叉链表做树的存储结构,链表中节点的两个链域分别指向该节点的第一个孩子节点和下一个兄弟节点。例如,如图 1-15(a)所示树的孩子兄弟表示如图 1-15(b)所示。函数 LevelTraverse()的功能是对给定树进行层序遍历。例如,对如图 1-15所示的树进行层序遍
16、历时,节点的访问次序为 D B A E F P C。对树进行层序遍历时使用了队列结构,实现队列基本操作的函数原型如表 1-11所示。Bool、Status 类型定义如下:树的二叉链表节点定义如下:表 1-11 实现队列基本操作的函数原型表函数原型 说明void InitQueue (Queue *Q) 初始化队列Bool IsEmpty (Queue Q) 判断队列是否为空,若是则返回 true,否则返回 falsevoid EnQueue (Queue *Q, TreeNode p) 元素入队列void DeQueue (Queue *Q, TreeNode *p) 元素出队列C函数程序(分
17、数:15.00)_六、试题六(总题数:1,分数:15.00)2.说明已知某企业欲开发一家用电器遥控系统,即用户使用一个遥控器即可控制某些家用电器的开与关。遥控器面板如图 1-16所示。该遥控器共有 4个按钮,编号分别是 0至 3,按钮 0和 2能够遥控打开电器 1和电器 2,按钮 1和 3则能遥控关闭电器 1和电器 2。由于遥控系统需要支持形式多样的电器,因此,该系统的设计要求具有较高的扩展性。现假设需要控制客厅电视和卧室电灯,对该遥控系统进行设计所得类图如图 1-17所示。在图 1-17中,类 RomoteController的方法 onPressButton(int button)表示当遥
18、控器按键按下时调用的方法,参数为按键的编号;Command 接口中 on和 off方法分别用于控制电器的开与关;Light 中turnLight (int degree)方法用于调整电灯灯光的强弱,参数 degree值为 0时表示关灯,值为 100时表示开灯并且将灯光亮度调整到最大;TV 中 setChannel(int channel)方法表示设置电视播放的频道,参数channel值为 0时表示关闭电视,为 1时表示开机并将频道切换为第 1频道。C+代码(分数:15.00)_七、试题七(总题数:1,分数:15.00)3.说明已知某企业欲开发一家用电器遥控系统,即用户使用一个遥控器即可控制某些
19、家用电器的开与关。遥控器面板如图 1-18所示。该遥控器共有 4个按钮,编号分别是 0至 3,按钮 0和 2能够遥控打开电器 1和电器 2,按钮 1和 3则能遥控关闭电器 1和电器 2。由于遥控系统需要支持形式多样的电器,因此,该系统的设计要求具有较高的扩展性。现假设需要控制客厅电视和卧室电灯,对该遥控系统进行设计所得类图如图 1-19所示。在图 1-19中,类 RomoteController的方法 onPressButton(int button)表示当遥控器按键按下时调用的方法,参数为按键的编号;Command 接口中 on和 off方法分别用于控制电器的开与关;Light 中turnL
20、ight (int degree)方法用于调整电灯灯光的强弱,参数 degree值为 0时表示关灯,值为 100时表示开灯并且将灯光亮度调整到最大;TV 中 setChannel(int channel)方法表示设置电视播放的频道,参数channel值为 0时表示关闭电视,为 1时表示开机并将频道切换为第 1频道。Java代码(分数:15.00)_中级软件设计师下午试题-44 答案解析(总分:240.00,做题时间:90 分钟)一、试题一(总题数:1,分数:45.00)说明某学校建立了一个网上作业提交与管理系统,基本功能描述如下。(1)账号和密码。任课老师用账号和密码登录系统后,提交所有选修学
21、生的名单。系统自动为每个选修学生创建登录系统的账号和密码。(2)作业提交。选修学生使用账号和密码登录系统后,可以向系统申请所选课程的作业。系统首先检查学生的当前状态,如果该选修学生还没有做过作业,则从数据库服务器申请一份作业。若申请成功,则显示需要完成的作业。学生需在线完成作业,单击提交按钮上交作业。(3)在线批阅。系统自动在线批改作业,显示作业成绩,并将该成绩记录在作业成绩统计文件中。(分数:45.00)(1).问题 1在系统的需求分析阶段,使用用例对系统需求建模。表 1-8和表 1-9分别给出了其中用例“创建选修学生账号和密码”、用例“作业申请”的概要描述。(分数:15.00)_正确答案:
22、(问题 1这是一道要求读者掌握用例获取方法的综合分析题。本题的解答思路如下。由题干中给出的关键信息“账号和密码:任课老师用账号和密码登录系统后,提交所有选修学生的名单。系统自动为每个选修学生创建登录系统的账号和密码”,并结合表 1-8中给出的信息可知,用例“创建选修学生账号和密码”是在任课老师登录系统并提交选修学生名单之后触发产生的,因此该用例的触发器是“提交选修学生名单”。在该用例中输入角色(Actor)主要是“任课老师”,输入信息有“账号和密码”和“所有选修学生名单”,而输出角色“任课老师”将接收“登录成功或失败通知”等系统输出信息,输出角色“每个选修学生”将接收到“登录账号和密码”和“登
23、录账号和密码激活通知”等输出信息。完整的“创建选修学生账号和密码”用例描述表如表 1-12所示。表 1-12 用例“创建选修学生账号和密码”描述表用例名称 创建选修学生账号和密码触发器 提交选修学生名单主要输入 主要输出输入信息 角色(Actor) 输出信息 角色(Actor)账号和密码 任课老师 登录成功或失败通知 任课老师登录账号和密码 每个选修学 生所有选修学生名单 任课老师 登录账号和密码激活通知每个选修学生任课老师登录系统的账号和密码任课老师信息库同理,由题干中关键信息“作业提交:学生使用账号和密码登录系统后,可以向系统申请所选课程的作业。系统首先检查学生的当前状态,如果该学生还没有
24、做过作业,则从数据库服务器申请一份作业。若申请成功,则显示需要完成的作业”,并结合表 1-9中给出的信息可知,用例“作业申请”是在选修学生向系统提交“申请作业请求”时触发产生的,因此该用例的触发器是“申请作业请求”。该用例的主要输入角色是“选修学生”,其输入信息有“账号和密码”和“申请所选课程的作业”。 在用例“作业申请”中输出角色有两个,即“选修学生”和“数据库服务器”。其中,“选修学生”角色将接收系统输出的“登录成功或失败通知”、“当前状态信息”、“(作业)申请成功或失败通知”及“需要完成的作业”等信息。“数据库服务器”角色将接收到系统输出的“申请一份作业”信息。 将以上分析结果进行整理,
25、完整的用例“作业申请”描述表如表 1-13所示。 表 1-12 用例“创建选修学生账号和密码”描述表用例名称 作业申请触发器 申请作业请求主要输入 主要输出输入信息 角色(Actor) 输出信息 角色(Actor)账号和密码 选修学生 登录成功或失败通知 选修学生当前状态信息 选修学生申请一份作业 数据库服务器申请成功或失败通知 选修学生申请所选课程的作业 选修学生需完成的作业 选修学生学生登陆系统的账号和密码 学生信息库学生的当前状态 学生信息库)解析:(2).问题 2如果将数据库服务器(记为 DB)作为一个外部实体,那么在绘制该网上作业提交与管理系统的数据流图时,还应有哪些外部实体和数据存
26、储?(分数:15.00)_正确答案:(问题 2这是一道要求读者掌握数据流图中外部实体识别的综合分析题。本题的解答思路如下。外部实体是指存在于软件系统之外的人员或组织。它指出系统所需数据的来源地(即信源)和系统所输出数据的归宿地(即信宿)。根据说明中提供的信息,并结合问题 1的分析过程可知,“选修学生”和“任课老师”向“网上作业提交与管理系统”提供了最原始的输入数据,并从系统中获取相应的输出数据。因此可以确定“选修学生”、“任课老师”是数据流图中除数据库服务器(记为 DB)之外的两个外部实体。数据存储用来表示暂时保存数据的地方,每个数据存储都有一个名字。由题干给出的关键信息“在线批阅:系统自动在
27、线批改作业,显示作业成绩,并将该成绩记录在作业成绩统计文件中”可知,“作业成绩统计文件”是一个数据存储。)解析:(3).问题 3该网上作业提交与管理系统的顶层数据流图中,相关数据流的部分信息如表 1-10所示。表 1-10 顶层数据流图数据流描述表序号 数据流名称 起点 终点 账号和密码 (11) 网上作业提交与管理系统 账号和密码 (12) 网上作业提交与管理系统 (13) 任课老师 网上作业提交与管理系统 作业申请 (14) 网上作业提交与管理系统 作业申请 网上作业提交与管理系统 (15) (16) (17) 网上作业提交与管理系统 需完成的作业 网上作业提交与管理系统 (18) 提交的
28、作业 (19) (20) 作业成绩 (21) (22) (23) (24) 作业成绩统计文件请使用说明中的词汇,结合问题 2的解答,将表 1-10中的(11)(24)空缺处的内容填写完整。(分数:15.00)_正确答案:(问题 3这是一道要求读者掌握数据流图中数据流识别的综合分析题。本题的解答思路如下。根据说明中提供的信息,并结合问题 1、问题 2的分析过程可知,外部实体“选修学生”和“任课老师”各自向“网上作业提交与管理系统”提交登录的“账号和密码”,因此(11)、(12)空缺处所填写的数据流起点分别是“选修学生”和“任课老师”。由于“任课老师”登录“网上作业提交与管理系统”后向系统提交的数
29、据流是“所有选修学生名单”,因此(13)空缺处所填写的数据流名称是“所有选修学生名单”。由于数据流“作业申请”是由“选修学生”登录系统后向该系统提交的,因此(14)空缺处所填写的数据流起点是“选修学生”。由题干中关键信息“如果该学生还没有做过作业,则从数据库服务器申请一份作业”可知,由“网上作业提交与管理系统”产生的数据流“作业申请”将送往外部实体“数据库服务器”,因此(15)空缺处所填写的数据流终点是“数据库服务器”。由题干中关键信息“若申请成功,则显示需要完成的作业”可知,由“网上作业提交与管理系统”产生的数据流“需完成的作业”将送给外部实体“选修学生”,因此(18)空缺处所填写的数据流终
30、点是“选修学生”。由题干中关键信息“学生需在线完成作业,单击提交按钮上交作业”可知,数据流“提交的作业”是由“选修学生”在线完成后向“网上作业提交与管理系统”提交的,因此(19)空缺处所填写的数据流起点是“选修学生”,(20)空缺处所填写的数据流终点是“网上作业提交与管理系统”。由题干中关键信息“在线批阅并将该成绩记录在作业成绩统计文件中”可知,由“网上作业提交与管理系统”产生的数据流“作业成绩”也将送往数据存储“作业成绩统计文件”,因此(23)空缺处所填写的数据流名称是“作业成绩”,(24)空缺处所填写的数据流起点是“网上作业提交与管理系统”。由题干中关键信息“在线批阅:系统自动在线批改作业
31、,显示作业成绩”可知,数据流“作业成绩”是由“网上作业提交与管理系统”向外部实体“选修学生”提供的,而非“任课老师”向“选修学生”提供“作业成绩”,因此(21)空缺处所填写的数据流起点是“网上作业提交与管理系统”,(22)空缺处所填写的数据流终点是“选修学生”。由题干中关键信息“如果该学生还没有做过作业,则从数据库服务器申请一份作业。若申请成功,则显示需要完成的作业”间接可知,外部实体“数据库服务器”将产生一条数据流“所申请的作业”送至“网上作业提交与管理系统”,因此(16)空缺处所填写的数据流名称是“所申请的作业”,(17)空缺处所填写的数据流起点是“数据库服务器”。将以上分析结果进行整理,
32、完整的顶层数据流图中数据流描述信息如表 1-14所示。表1-14 顶层数据流图数据流描述表序号 数据 起点 终点流名称账号和密码选修学生网上作业提交与管理系统账号和密码任课老师网上作业提交与管理系统所有选修学生名单任课老师网上作业提交与管理系统 作业申请 选修学生网上作业提交与管理系统 作业申请网上作业提交与管理系统数据库服务器所申请的作业数据库服务器网上作业提交与管理系统需完成的作业网上作业提交与管理系统选修学生提交的作业选修学生网上作业提交与管理系统 作业成绩网上作业提交与管理系统选修学生 作业成绩网上作业提交与管理系统作业成绩统计文件)解析:二、试题二(总题数:1,分数:60.00)说明
33、某软件开发公司,决定结合自身工作的需求开发设计本公司的项目工作管理系统,由郭工程师承担数据库的设计工作。公司项目管理的需求分析如下。1组织机构。该公司有多个部门,每个部门有多个职员、多个办公室,每个办公室有一部电话。当部门变更时更换新的部门代码。职员辞职后,若再次被聘用仍使用辞职前的代码。被聘用职员担任某职务,职务用职务代码来标识。职务分为:工程师、高级工程师、经理助理、经理等。职员的工资根据等级区分,共分为 S、A、B、C、D 5 个等级。一个职务对应某个等级,一个等级对应多个职务。职员月工资等于职员月工作时间(小时)乘以小时工资。职员的人事变动及职位变更(升级、降级)在月初进行。2项目管理
34、。项目用项目代码标识,使用过的项目代码不能重复使用。一个部门可承担多个项目,但一个项目仅由一个部门承担。一个项目有一名项目主管和多个职员;一个职员可参加多个项目。项目代码由系统自动生成,一旦项目建立,项目名、部门代码及起始年月日不能再变更。3项目的工作管理流程为:项目工作计划输入(初始计划)工作业绩输入业绩生成(每月一次)计划修正(每月一次)。项目工作计划输入。项目主管使用如图 1-9所示的计划输入界面,输入项目代码、职员代码、职员参加某个项目的月工作时间(计划)。图中空白区域为可输入项。项目代码 123456 项目名 ABCD 部门代 码 03 部门名 开发 部起始年月日 2007-06-1
35、1 结束年 月日 2007-11-31 登陆时 间 2007-05-28职员代码 职员名 6月 7月 8月 9月10月11月12月1月2月3月 4月5月 合计0302 小郭 120 180 180 180 180 180 10200316 小谢 120 180 180 150 150 150 9300309 张三 90 150 150 180 180 180 9300328 李四 120 180 180 120 120 90 8700321 王五 90 150 150 150 150 90 810工作业绩输入。输入职员每天参加各个项目的工作时间。如图 1-10所示为工作业绩输入界面,图中空白区
36、域为可输入项。其中,出勤时间由考勤系统管理,指定项目代码的顺序可以不同,并且一天可以输入多个项目代码,但同一个项目代码不能重复输入。 职工代号 0302职员名小郭输入年月20076月每个项目的工作时间年月 日 星期 出勤时间项目代码工作时间项目代码工作时间备注2007-06-11一 12.01234568.03456784.02007-06-12二 15.012345610.03456785.02007-06-13三 18.012345615.03456783.02007-06-14四 15.012345615.02007-06-15五 18.0123418.0562007-06-16六 10
37、.012345610.02007-06-17日 0.0业绩生成。月底汇总职员的当月工作业绩,生成月工作业绩表。计划修正。项目主管根据项目进度修改以后的工作计划。郭工程师根据公司的项目需求将数据库关系模式设计如下:部门(部门代码,部门名,起始年月,终止年月,办公室,办公电话);职务(职务代码,职务名);等级(等级代码,等级名,年月,小时工资);职员(职员代码,职员名,部门代码,职务代码,任职时间);项目(项目代码,项目名,部门代码,起始年月日,结束年月日,项目主管);工作计划(项目代码,职员代码,年月,工作时间)。(分数:60.00)(1).问题 1请使用“关系模式标记规则”(见本题附内容,全书
38、同),给出“部门”、“等级”、“项目”和“工作计划”关系模式的主键和外键。(分数:15.00)_正确答案:(问题 1这是一道要求读者根据题目给定的关系模式,以及属性间的函数依赖关系和给定的关系实例,并结合 E-R图向关系模式的转换方法来确定各关系模式主键和外键的综合分析题。本试题的解答思路如下。设 K为 R(U,F)中的属性的组合,若 KU,且对于 K的任何一个真子集 K,都有 K不能决定 U,则 K为R的候选码(候选关键字),若有多个候选码,则选一个作为主码(主键)。部门关系模式的主键和外键。由题干中给出的关键信息“该公司有多个部门,每个部门有多个职员、多个办公室”可知,部门代码多值决定办公
39、室,如果仅用(部门代码)作为主键,则无法唯一区分部门关系中的每一个元组(记录)。如果用(部门代码,办公室)作为主键,则可以唯一区分部门关系中的每一个元组,因此,部门关系模式的主键如下。部门(部门代码,部门名,起始年月,终止年月,办公室,办公电话)等级关系模式的主键和外键。由题干中给出的关键信息“一个职务对应某个等级,一个等级对应多个职务”,“职员月工资等于职员月工作时间(小时)乘以小时工资”,“职员的人事变动及职位变更(升级、降级)在月初进行”可知,如果仅用“等级代码”作为主键,则无法唯一区分等级关系中的每一个元组,这是因为对于同一个等级在不同的时期小时工资值不一定一样。例如,等级 1在 20
40、07年 6月小时工资为 10元,可能到 2007年 10月小时工资为 15元。可见用(等级代码,年月)作为主键,可以唯一区分等级关系中的每一个元组。因此等级关系模式的主键如下。等级(等级代码,等级名,年月,小时工资)项目关系模式的主键和外键。由题干中给出的关键信息“项目用项目代码标识,使用过的项目代码不能重复使用”可知,项目代码可以决定项目关系中的全属性,因此,项目关系模式的主键是“项目代码”。在项目关系模式中,由于部门代码是部门关系的主键,因此“部门代码”应为项目关系模式的外键。同时考虑到项目主管应该来自职员,所以“项目主管”也是项目关系模式的外键。最后可得项目关系模式的主键、外键如下。项目
41、(项目代码,项目名,*,起始年月日,结束年月日,*)工作计划关系模式的主键和外键。由题干中给出的关键信息“一个项目有一名项目主管和多个职员;一个职员可参加多个项目”,“项目代码由系统自动生成,一旦项目建立,项目名、部门代码及起始年月日不能再变更”可知,在工作计划关系中,由于一个项目有多个职员参加,因此仅用“项目代码”作为主键,则无法唯一确定关系中的每一个元组。又由于工作计划是按月给职员安排的,因此工作计划关系的主键是(项目代码,职员代码,年月)。最后可得工作计划关系模式的主键、外键如下。工作计划(项目带代码,职员带代码,年月,工作时间)解析:(2).问题 2请将以下关系模式中的(1)和(2)空
42、缺处填入属性名称(要求使用题干说明中已有的属性名称)。(1)郭工程师设计的关系模式不能管理职务和等级之间的关系,可以通过修改“职务”关系模式来实现。修改后的关系模式为:职务( (1) )(2)为了管理公司职员参加各项目每天的工作业绩,需设计工作业绩关系模式为:工作业绩( (2) )(分数:15.00)_正确答案:(问题 2郭工程师所设计的关系模式不能管理职务和等级之间的关系,为此可以在“职务”关系模式中增加属性“等级代码”来实现,修改后的关系模式如下。职务(职务代码,职务名,等级代码)为了管理公司职员参加各项目每天的工作业绩,需设计工作业绩的关系模式。根据图 1-10所给出的工作业绩输入界面实例分析,可得工作业绩关系模式如下。工作业绩(项目代码,职员代码,年月日,工作时间)解析:(3).问题 3郭工程师设计的“部门”关系模式中存在什么问题?请用 100字以内的文字简要说明理由。为了解决这个问题可将关系模式分解,请给出分解后的关系模式(分解后的关系模式的关系名可依次取“部门_A”、“部门_B”、)。(分数:15.00)_正确答案:(问题 3郭工程师设计的“部门”关系模式中存在的主要问题是数据冗余,因为部门关系模式属于 2范
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1