2010上半年数据库系统工程师考试真题及答案-下午卷.doc
《2010上半年数据库系统工程师考试真题及答案-下午卷.doc》由会员分享,可在线阅读,更多相关《2010上半年数据库系统工程师考试真题及答案-下午卷.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2010上半年数据库系统工程师考试真题及答案-下午卷试题一阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。说明某大型企业的数据中心为了集中管理、控制用户对数据的访问并支持大量的连接需求,欲构建数据管理中问件,其主要功能如下:(1)数据管理员可通过中间件进行用户管理、操作管理和权限管理。用户管理维护用户信息,用户信息(用户名、密码)存储在用户表中;操作管理维护数据实体的标准操作及其所属的后端数据库信息,标准操作和后端数据库信息存放在操作表中;权限管理维护权限表,该表存储用户可执行的操作信息。(2)中间件验证前端应用提供的用户信息。若验证不通过,返回非法用户信息;若验证通过,中间
2、件将等待前端应用提交操作请求。(3)前端应用提交操作请求后,中间件先对请求进行格式检查。如果格式不正确,返回格式错误信息;如果格式正确,则进行权限验证(验证用户是否有权执行请求的操作),若用户无权执行该操作,则返回权限不足信息,否则进行连接管理。(4)连接管理连接相应的后台数据库并提交操作。连接管理先检查是否存在空闲的数据库连接,如果不存在,新建连接;如果存在,则重用连接。(5)后端数据库执行操作并将结果传给中间件,中间件对收到的操作结果进行处理后,将其返回给前端应用。现采用结构化方法对系统进行分析与设计,获得如图1-1所示的顶层数据流图和图1-2所示的0层数据流图。问题1使用说明中的词语,给
3、出图1-1中的实体E1E3的名称。问题2使用说明中的词语,给出图1-2中的数据存储D1D3的名称。问题3给出图1-2中加工P的名称及其输入、输出流。 名称起点终点输入流P输出流P除加工P的输入与输出流外,图1-2还缺失了两条数据流,请给出这两条数据流的起点和终点。 起点终点注:名称使用说明中的词汇,起点和终点均使用图1-2中的符号或词汇。问题4在绘制数据流图时,需要注意加工的绘制。请给出三种在绘制加工的输入、输出时可能出现的错误。试题一分析本题考查数据流图(DFD)的应用,是比较传统的题目,要求考生细心分析题目中所描述的内容。DFD是一种便于用户理解、分析系统数据流程的图形工具,是系统逻辑模型
4、的重要组成部分。问题1本问题考查顶层DFD。项层DFD一股用来确定系统边界,将待开发系统看作是一个加工,因此图中只有唯一的一个加工和一些外部实体,以及这两者之问的输入输出数据流。题目要求根据描述确定图中的外部实体。分析题目中的描述,并结合已经在顶层数据流图中给出的数据流进行分析。题目中有信息描述:数据管理员可通过中间件进行用户管理、操作管理和权限管理;前端应用提交操作请求;连接管理连接相应的后台数据库并提交操作。由此可知该中间件系统有数据管理员、前端应用和后端数据库三个外部实体。对应图1-1中数据流和实体的对应关系,可知E1为前端应用,E2为数据管理员,E3为后端数据库。问题2本问题考查0层D
5、FD中数据存储的确定。说明中描述:用户信息(用户名、密码)存储在用户表中;标准操作和后端数据库信息存放在操作表中;权限管理维护信息存放在权限表中。因此数据存储为用户表、操作表以及权限表。再根据图1-2中D1的输入数据流从用户管理来,D2的输入数据流从操作管理来,D3的输入数据流从权限管理来,所以D1为用户表,D2为操作表,D3为权限表。问题3本问题考查0层DFD中缺失的加工和数据流。比较图1-1和图1-2,可知顶层DFD中的操作结果和处理后的操作结果没有在0层DFD中体现。再根据描述:后端数据库执行操作并将结果传给中间件,中间件对收到的操作结果进行处理后,将其返回给前端应用。可知,需要有操作结
6、果处理,因此P为操作结果处理,其输入流从后端数据库E3来的操作结果,输出结果为处理后的操作结果,并返回给前端应用E1。考查完P及其输入输出流之后,对图1-2的内部数据流进行考查,以找出缺失的另外2条数据流。从图中可以看出D2和D3只有输入流没有输出流,这是常见DFD设计时的错误,所以首先考查D2和D3的输出流。描述中:权限验证是验证用户是否有权执行请求的操作,若用户有权执行该操作,进行连接管理;连接管理连接相应的后台数据库并提交操作;权限表存储用户可执行的操作信息。因此,权限验证有从权限表D3来的输入数据流。而要连接后端数据库,需要数据库信息,从权限验证的输出流中包含有数据库信息可知,权限验证
7、需要获取到数据库信息,所以还需从操作表D2来的输入流。问题4本问题考查在绘制数据流图中加工绘制时的注意事项。绘制加工时可能出现的错误有:加工的输入、输出时可能出现只有输入而无输出、只有输出而无输入、输入的数据流无法通过加工产生输出流以及输入的数据流与输出的数据流名称相同等错误。参考答案问题1E1:前端应用 E2:数据管理员 E3:后端数据库问题2D1:用户表 D2:操作表 D3:权限表问题3P的名称:操作结果处理 名称起点终点输入流操作结果E3P输出流处理后的操作结果PE1缺少的数据流: 起点终点D2权限验证D3权限验证问题4在绘制数据流图的加工时,可能出现的输入、输出错误:只有输入而无输出或
8、者黑洞只有输出而无输入或者奇迹输入的数据流无法通过加工产生输出流或者灰洞输入的数据流与输出的数据流名称相同试题二阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。说明天津市某银行信息系统的数据库部分关系模式如下所示:客户 (客户号,姓名,性别,地址,邮编,电话)账户 (账户号,客户号,开户支行号,余额)支行(支行号,支行名称,城市,资产总额)交易 (交易号,账户号,业务金额,交易日期)其中,业务金额为正值表示客户向账户存款;为负值表示取款。问题1以下是创建账户关系的SQL语句,账户号唯一识别一个账户,客户号为客户关系的唯一标识,且不能为空。账户余额不能小于1.00元。请将空缺部分补
9、充完整。CREATE TABLE账户(账户号CHAR(19) (a) ,客户号CHAR(10) (b) ;开户支行号CHAR(6) NOT NULL,余额NUMBER(8,2) (c) );问题2(1)现银行决策者希望查看在天津市各支行开户且2009年9月使用了银行存取服务的所有客户的详细信息,请补充完整相应的查询语句。(交易日期形式为2000-01-01)SELECT DISTINCT客户.*FROM客户,账户,支行,交易WHERE客户.客户号=账户.客户号 AND账户.开户支行号=支行.支行号AND(d) AND交易.账户号=账户.账户号 AND(e) ;上述查询优化后的语句如下,请补充完
10、整。SELECT DISTINCT客户.*FROM 客户,账户, (f) AS新支行, (g) AS新交易WHERE客户.客户号=账户.客户号AND账户.开户支行号=新支行.支行号AND新交易.账户号=账户.账户号;(2)假定一名客户可以申请多个账户,给出在该银行当前所有账户余额之和超过百万的客户信息并按客户号降序排列。SELECT *FROM客户WHERE (h)(SELECT客户号FROM账户GROUP BY客户号 (i) )ORDER BY (j) ;问题3(1)为账户关系增加一个属性“账户标记”,缺省值为0,取值类型为整数;并将当前账户关系中所有记录的“账户标记”属性值修改为0。请补充
11、相关SQL语句。ALTER TABLE 账户 (k) DEFAULT 0;UPDATE 账户 (l) ;(2)对于每笔金额超过10万元的交易,其对应账户标记属性值加1,给出触发器实现的方案。CREATE TRIGGER 交易_触发器 (m) ON交易REFERENCING NEW ROW AS 新交易FOR EACH ROWWHEN (n)BEGIN ATOMICUPDATE 账户 SET 账户标记=账户标记+1WHERE (o) ;COMMIT WORK;END试题二分析本题考查SQL语句的基本语法与结构知识。此类题目要求考生掌握SQL语句的基本语法和结构,认真阅读题目给出的关系模式,针对题
12、目的要求具体分析并解答。本试题已经给出了4个关系模式,需要分析每个实体的属性特征及实体之间的联系,补充完整SQL语句。问题1由于问题1中“账户号唯一识别一个账户”可知账户号为账户关系的主键,即不能为空且唯一标识一条账户信息,因此需要用PRIMARY KEY对该属性进行主键约束;又由于“客户号为客户关系的唯一标识,且不能为空”可知客户号为客户关系的主键,在账户关系中应作外键,用FOREIGN KEY对该属性进行外键约束;由“账户余额不能小于1.00元”可知需要限制账户余额属性值的范围,通过CHECK约束来实现。从上分析可见,完整的SQL语句如下:CREATE TABLE账户(账户号CHAR(19
13、) PRIMARY KEY,客户号CHAR(10) FOREIGN KEY(客户号)REFERENcEs客户(客户号),开户支行号CHAR(6) NOT NULL,余额 NUMBER(8,2) CHECK(余额1.00);注:PRIMARY KEY可替换为NOT NULL UNIQUE或NOT NULL PRIMARY KEY。问题2SQL查询通过SELECT语句实现。(1)根据问题2要求应在表连接条件的基础上,需要添加两个条件:支行关系的城市属性值为“天津市”,即支行城市=天津市;在2009年9月存在交易记录,由于交易日期形式为2000-01-01,所以需要通过模糊匹配来实现,用LIKE关键
14、词和通配符表示,即交易交易日期LIKE2009-09-%。WHERE子句中条件的先后顺序会对执行效率产生影响。假如解析器是按照先后顺序依次解析并列条件,优化的原则是:表之间的连接必须出现在其他WHERE条件之后,那些可以过滤掉最多条记录的条件尽可能出现在WHERE子句中其他条件的前面。要实现上述优化过程,可以重新组织WHERE条件的顺序或者通过嵌套查询以缩小连接记录数目的规模来实现。根据问题2要求,考生需要添加两个子查询以缩小参与连接的记录的数目,即筛选出天津市的所有支行(SELECT+FROM支行WHERE城市=天津市),而且找到2009年9月发生的交易记录(SELECT+FROM交易WHE
15、RE交易日期LIKE2009-09-%),然后再做连接查询。(2)根据问题2要求,可通过予查询实现“所有账户余额之和超过百万的客户信息”的查询;对SUM函数计算的结果应通过HAVING条件语句进行约束;降序通过DESC关键字来实现。SELECT *FROM 客户WHERE 客户号 IN(SELECT 客户号 FROM 账户 GROUP BY客户号HAVING SUM(余额)1000000.00)ORDER BY客户号 DESC;问题3(1)关系模式的修改通过ALTER语句来实现,使用ADD添加属性;使用SET修改属性值。ALTER TABLE 账户 ADD 账户标记 INT DEFAULT 0
16、;UPDATE 账户 SET 账户标记 =0;(2)创建触发器可通过CREATE TRIGGER语句实现,问题3要求考生掌握该语句的基本语法结构。按照问题3要求,在交易关系中插入一条记录时触发器应自动执行,故需要创建基于INSERT类型的触发器,其触发条件是新插入交易记录的金额属性值100000.00;最后添加表连接条件。完整的触发器实现方案如下:CREATE TRIGGER交易触发器AFTER INSERT ON交易REFERENCING NEW ROW AS新交易FOR EACH ROWWHEN新交易.金额100000.00BEGIN ATOMICUPDATE 账户 SET 账户标记=账户
17、标记+1WHERE 账户.账户号=新交易.账户号;COMMIT WORK;END参考答案问题1(a)PRIMARY KEY/NOT NULL UNIQUE/NOT NULL PRIMARY KEY(b)FOREIGN KEY(客户号)REFERENCES客户(客户号)(C)CHECK(余额1.00)问题2(1)(d)支行.城市=天津市(e)交易.交易日期 LIKE2009-09-%或等价表示注:(d)(e)次序无关(f)(SELECT*FROM 支行 WHERE城市=天津市)(g)(SELECT*FROM 交易 WHERE交易日期LIKE2009-09%)或等价表示(2)(h)客户号IN(i)
18、HAVING SUM(余额)1000000.00或等价表示(i)客户号 DESC问题3(1)(k)ADD账户标记INT(1)SET账户标记=0;(2)(m)AFTER INSERT(n)新交易.金额100000.00或等价表示(o)账户.账户号=新交易.账户号试题三阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。说明某学校拟开发一套实验管理系统,对各课程的实验安排进行管理。需求分析每个实验室可进行的实验类型不同。由于实验室和实验员资源有限,需根据学生人数分批次安排实验室和实验员。一门含实验的课程可以开设给多个班级,每个班级每学期可以开设多门含实验的课程。每个实验室都有其可开设的实
19、验类型。一门课程的一种实验可以根据人数、实验室的可容纳人数和实验室类型,分批次开设在多个实验室的不同时间段。一个实验室的一次实验可以分配多个实验员负责辅导实验,实验员给出学生的每次实验成绩。1课程信息包括:课程编号、课程名称、实验学时、授课学期和开课的班级等信息;实验信息记录该课程的实验进度信息,包括:实验名、实验类型、学时、安排周次等信息,如表3-1所示。 表3-1课程及实验信息课程编号15054037课程名称数字电视原理实验学时12班级电0501,信0501,计0501授课院系机械与电气工程授课学期第三学期序号实验名实验类型难度学时安排周次1505403701音视频AD-DA实验验证性12
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2010 上半年 数据库 系统 工程师 考试 答案 下午
限制150内