中级软件设计师2005上半年下午试题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

中级软件设计师2005上半年下午试题试题一阅读以下说明和数据流图,回答问题1~问题3。【说明】学生住宿服务系统帮助学生在就学的缄市内找到所需的住房,系统对出租的房屋信息、房主信息、需要租房的学生信息以及学生和房主的会面信息进行管理和维护。房主信息包括姓名、地址、电话号码以及系统分配的唯一身份标识(D)和密码;房屋信息包括房屋地址、类型(单间/套间)、适合住宿的人数、房租、房主的ID以及现在是否可以出租(例如由于装修原因,需等到装修后才可出租或者房屋已被租出)。每当房屋信息发生变化时,房主必须通知系统,系统将更新房屋文件以便学生能够获得准确的可租用房屋信息。房主向系统中加入可租用的房屋信息时,须交纳一定的费用,由系统自动给出费用信息。房主可随时更新房屋的各种属性。学生可通过系统查询现有的可租用的房屋,但必须先在系统中注册。学生信息包括姓名、现住址、电话号码、出生日期、性别以及系统分配的唯一身份标识(1D)和密码。若学生希望租用某房屋,则需要发出租房请求,请求中包含房屋的详细信息,系统将安排学生与房主会面的时间和地点,并将会面信息通知学生和房主,会面信息包括会面时间、地点以及会面双方的基本信息,系统将记录会面信息。学生住宿服务系统的顶层图如图1-1所示;学生住宿服务系统的第0层DFD图如图1-2所示,其中,加工3的细化图如图1-3所示。【数据流图1-1】【数据流图1-2】【数据流图1-3】2.【问题1】(1)数据流图1-1缺少了一条数据流(在图1-2中也未给出该数据流),请给出此数据流的起点和终点,并采用说明中的词汇给出此数据流名。(2)数据流图1-2中缺少了与“查询房屋”加工相关的数据流,请指出此数据流的起点和终点。这道题您没有回答答案:(1)起点:学生住宿服务系统终点:房主数据流名:费用信息或交纳的费用或费用(2)起点:房屋文件终点:查询房屋或4[分析]问题1:(1)题目中明确地说明了“房主向系统中加入可租用的房屋信息时,需交纳一定的费用,由系统自动给出费用信息”,但是在数据流图中却没有相关的数据流。所以,需要补齐的数据流为:起点:学生住宿服务系统终点:房主数据流名:费用信息或交纳的费用或费用(2)查询房屋需要读取房屋文件,所以数据流的起点和终点为;起点:房屋文件终点:查询房屋或43.【问题2】“安排会面”加工除需要写入会面文件外,还需要访问哪些文件?这道题您没有回答答案:房主文件学生文件[分析]问题2:题目中说明了“将会面信息通知学生和房主,会面信息包括会面时间、地点以及会面双方的基本信息,系统将记录会面信息”。此处要注意会面双方的基本信息也被包含在会面信息中了。所以,安排会面需要查询学生文件和房主文件以获得双方的基本信息7.【问题3】请补齐下列数据字典条目:登录信息=学生ID+密码注册信息=___________这道题您没有回答答案:姓名+现住址+电话号码+出生日期+性别[分析]问题3:根据数据流图4-2中的加工3以及数据流图4-3加工3的细化图可以看出,学生信息包含了登录信息和注册信息,登录信息为学生ID和密码,所以学生信息中除去登录信息就是注册信息了,因此,注册信息为:姓名+现住址+电话号码+出生日期+性别试题二阅读以下说明和表,回答问题1~问题4。【说明】某公司信息管理系统的需求分析和部分关系模式设计的结果描述如下。1.公司有多个部门,每个部门有一名负责人、一间办公室、一部电话、多名职员,每个职员最多属于一个部门,负责人也是一名公司职员。2.公司职员的月工资大于等于1000元且小于等于8000元。3.数据库的部分关系模式设计如下:职员(职员号,职员姓名,月工资,部门号,办公室,电话)部门(部门号,部门名,负责人代码,任职时间)4.“职员”和“部门”的关系示例分别如表2-1和表2-2所示。【表2-1】“职员”关系职员号职员姓名月工资部门号办公室电话60801汪俊华10001A座201688312260802杨晓军32001A座201688312260803王晓华43002B座202688312360804邢彦军28002B座202688312360805吕靖原53003A座301688312460806芦文峰32003A座301688312460807牟雪松28003A座301688312460808高亚南12004B座302688312560810周黎32004B座302688312560820姚应磊12004B座302688312560821程文驰32005B座303688312660836许俊坤0Null……【表2-2】“部门”关系部门号部门名负责人代码任职时间1财务部608022001-8-52市场部608032002-6-33研发部608052002-6-34生产部1608102003-8-15生产部2608212004-6-31.【问题1】根据上述说明,请给出(1)“职员”关系模式的主键和外键。(2)“部门”关系模式的主键和外键。这道题您没有回答答案:(1)主键:职员号外键:部门号(2)主键:部门号,或部门名外键:负责人代码[分析]问题1:本试题中,“部门”关系的主键为部门号,“职员”关系的主键为职员号。在“部门”关系中,部门由于负责人也是来自职员关系,所以负责人代码是外键。在“职员”关系中,部门号是“部门”关系的主键,因此部门号是外键。根据题意,“职员”和“部门”的关系模式可表示如下:职员(职员号,职员姓名,月工资,部门号,办公室,电话)部门(部门号,部门名,,任职时间)4.【问题2】(1)用SQL定义“职员”关系模式,请在空缺处填入正确的内容。CreateTable职员(职员号CHAR(5)(a),职员姓名CHAR(8),月工资NUMBER(4),部门号CHAR(1),办公室CHAR(20),电话CHAR(8),(b)(部门号),CHECK(月工资>=1000AND月工资<=8000));(2)针对人数大于等于2的部门创建视图D_View(Dept,D_num,D_Totals,D_AvgPay),其中,Dept为部门号,D_num为部门人数,D_Totals为工资总数,D_AvgPay为平均工资,请在空缺处填入正确的内容。CreateViewD_View(Dept,D_num,D_Totfls,D_AvgPay)As(Select部门号,(c)from职员(d)count(*)>=2WHERE部门号ISNOTNULL);这道题您没有回答答案:(a)PRIMARYKEY(b)FOREIGNKEY(部门号)REFERENCES部门(c)count(*),Sum(月工资),Avg(月工资)(d)GROUPby部门号HAVING注:以上答案中的单词可以小写。[分析]问题2:用SQL定义关系模式的一个非常重要的问题是完整性控制。完整性控制应具有三方面的功能:定义功能、检测功能、处理功能(一旦发现违背了完整性约束条件,采取相关的动作来保证数据的完整性)。数据库中最重要的约束是声明一个或一组属性形成关系的键。键的约束在SQL的CREATETABLE命令中声明。在关系系统中,最重要的完整性约束条件是实体完整性和参照完整性。1.实体完整性定义在关系中只能有一个主键。声明主键有两种方法:①将PRIMARYKEY保留字加在属性类型之后;②在属性列表中引入一个新元素,该元素包含保留字PRIMARYKEY和用圆括号括起的形成该键的属性或属性组列表。2.参照完整性参照完整性定义格式如下:FOREIGNKEY(属性名)REFERENCES表名(属性名)[ONDELETE[CASCADEt|SETNULL]参照完整性通过使用保留字FOREIGNKEY定义哪些列为外码;REFERENCES指明外键对应于哪个表的主键;ONDELETECASCADE指明删除被参照关系的元组时,同时删除参照关系中的元组;SETNULL表示置为空值方式。本试题中,职员关系的主键为职员号,部门关系的主键为部门号,这样,职员关系中的部门号是外键。其中,职员关系的主键职员号可采用如下两种方式定义:职员号CHAR(5)PRIMARYKEY或者是PRIMARYKEY(职员号)根据分析问题2(1)职员关系的SQL定义如下:CreateTable职员(职员号CHAR(5)PRIMARYKEY,职员姓名CHAR(8),月工资NUMBER(4),部门号CHAR(1),办公室CHAR(20),电话CHAR(8),FOREIGNKEY(部门号)REFERENCES部门(部门号),问题2(2)的关键在于要对职员关系采用分组语句按部门分类,并统计。如果统计的元组个数大于等于2,则在结果集中。根据分析,针对人数大于等于2的部门创建视图D——View(Dept,D_num,D_Tomis,D_AvgPay)如下:CreateViewDView(Dept,Dnum,DTotals,DAvgPay)As(Select部门号,count(*),Sum(月工资),Avg(月工资)from职员GROUPby部门号HAVINGcount(*)>=2WHERE部门号ISNOTNULL);5.【问题3】对于表2-1、表2-2所示的“职员”和“部门”关系,请指出下列各行是否可以插入“职员”关系,为什么?这道题您没有回答答案:(1)该行不能插入“职员”关系,它违反了用户定义完整性中月工资的取值范围必须大于等于1000元,小于等于8000元。(1分)(2)该行不能插入“职员”关系,因为职员号“60802”在表2-1中已存在,违反了实体完整性中主键必须唯一区分关系中的每一个属性。(3)该行可以插入“职员”关系,尽管部门号、电话和办公室为空,但是它表示该职员没有分配到某个部门。[分析]问题3:本题主要考查完整性定义的约束性。下表是待将插入的记录组。(1)由于在职员表中的定义中,职员的月工资的取值范围必须大于等于1000元,小于等于8000元。该行不能插入“职员”关系,它违反了用户定义完整性,该条记录不能插入。(2)该元组不能插入“职员”关系,因为职员号“60802”在职员表中已存在,违反了实体完整性中主键必须唯一区分关系中的每一个属性。(3)该行可以插入“职员”关系,尽管部门号、电话和办公室为空,但是它表示该职员没有分配到某个部门9.【问题4】原来的“职员”关系模式存在什么问题?在不增加新关系模式的前提下,请给出修改后的“职员”和“部门”关系模式。这道题您没有回答答案:“职员”关系模式主要的问题是:数据冗余问题。因为某部门的职员人数有多少,其办公室和电话将要重复存入多少。数据修改不一致问题。因为某部门的办公室变了可能会导致某些职员的办公室属性修改了,某些职员的未修改。将关系模式修改为:职员(职员号,职员姓名,月工资,部门号)部门(部门号,部门名,负责人代码,任职时间,办公室,电话)[分析]问题4:此题考察的是查询效率的问题。在涉及相关查询的某些情形中,构造临时关系可以提高查询效率。原来的“职员”关系模式主要的问题是数据冗余和数据修改不一致问题。例如,某部门的职员人数有100个,其办公室和电话的属性值将要重复存入100次。如果某部门的办公室变了,可能会导致有些职员的办公室属性值修改了,另一些职员的办公室属性值未修改。根据题意,每个部门有一名负责人、一间办公室、一部电话,因此,为了解决冗余和数据修改不一致的问题,应该将职员关系模式中的属性“办公室”和“电话”放到部门关系模式中,这样修改后的关系模式为:职员(职员号,职员姓名,月工资,部门号—)部门(部门号,部门名,负责人代码,任职时间,办公室,电话)试题三阅读以下说明和流程图,从供选择的答案中选出应填入流程图(n)处的字句写在答题纸的对应栏内。【说明】一个印刷电路板的布线区域可分成n×m个方格,如图3-1(a)所示,现在需要确定电路板中给定的两个方格的中心点之间的最短布线方案。电路只能沿水平或垂直方向布线,如图3-1(b)中虚线所示。为了避免线路相交,应将已布过线的方格做封锁标记,其他线路不允许穿过被封锁的方格。【图3-1】设给定印刷电路板的

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功