【计算机类职业资格】计算机水平考试中级数据库系统工程师2004年下半年下午真题及答案解析.doc
《【计算机类职业资格】计算机水平考试中级数据库系统工程师2004年下半年下午真题及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】计算机水平考试中级数据库系统工程师2004年下半年下午真题及答案解析.doc(8页珍藏版)》请在麦多课文档分享上搜索。
1、计算机水平考试中级数据库系统工程师 2004 年下半年下午真题及答案解析(总分:58.00,做题时间:90 分钟)一、B试题一/B(总题数:5,分数:20.00)1.问题 1根据上述说明,由 SQL 定义的“职工”和“部门”的关系模式,以及统计各部门的人数 C、工资总数 Totals、平均工资 Averages 的 D_S 视图如下所示,请在空缺处填入正确的内容。 Create Table 部门 (部门号 CHAR(1)U (a) /U, 部门名 CHAR(16), 负责人代码 CHAR(4), 任职时间 DATE, U (b) /U(职工号); Create Table 职工(职工号 CHA
2、R(4), 姓名 CHAR(8), 年龄 NUMBER(3), 月工资 NUMBER(4), 部门号 CHAR(1), 电话 CHAR(8), 办公室 CHAR(8), U (a) /U(职工号), U (c) /U(部门号), CHECK(U (d) /U); Create View D_S(D,C,Totals,Averages)As (Select 部门号,U (e) /U from 职工 U (f) /U);(分数:4.00)_2.问题 2对于表 2-2、表 2-3 所示的“职工”和“部门”关系,请指出下列各行是否可以插入,为什么? (分数:4.00)_3.问题 3在问题 1 定义的视
3、图 D_S 上,下面哪个查询或更新是允许执行的,为什么? (1)Update D_S set D-3 where D=4; (2)Delete from D_Swhere C4; (3)Select D,Averages from D_S where C(Select C from D_S where D=:dept); (4)Select D,C From D_S where Totals10000; (5)Select*from D_S;(分数:4.00)_4.问题 4查询每个部门中月工资最高的“职工号”的 SQL 查询语句如下: Select 职工号 from 职工 E where 月工
4、资=(Select Max(月工资) from 职工 as M where M部门号=E部门号) (1)请用 30 字以内文字简要说明该查询语句对查询效率的影响。 (2)对该查询语句进行修改,使它既可以完成相同功能,又可以提高查询效率。(分数:4.00)_5.问题 5假定分别在“职工”关系中的“年龄”和“月工资”字段上创建了索引,如下的 Select 查询语句可能不会促使查询优化器使用索引,从而降低查询效率,请写出既可以完成相同功能又可以提高查询效率的 SQL 语句。 Select 姓名,年龄,月工资 from 职工 where 年龄45 or 月工资1000;(分数:4.00)_二、B试题三
5、/B(总题数:5,分数:20.00)6.问题 1对直销商品和库存商品进行概括,给出超类和子类,填入图 3-5 中(a)处所示的虚线框内,并补充联系。(分数:4.00)_7.问题 2根据你的实体联系图,完成(b)处的商品关系模式,并增加子类型的实体关系模式。(分数:4.00)_8.问题 3对所有关系模式,以下划线指出各关系模式的主键。(分数:4.00)_9.问题 4如果将商品信息只存储在中心数据库中,与在各 POS 机上存储其备份相比,从前台销售效率和更新商品库两方面论述各自的优缺点(不超过 300 字)。(分数:4.00)_10.问题 5如果考虑引入积分卡,根据累积消费金额计算积分点,再根据积
6、分点在顾客购物时进行现金返还,并修改顾客的累积消费金额和积分点。请给出新增加的积分卡关系模式,并对销售详单关系模式进行修正,指出修正后关系模式和新增关系模式的候选键和外键。(分数:4.00)_三、B试题四/B(总题数:3,分数:18.00)11.问题 1对关系“航班”,请回答以下问题: (1)列举出所有不属于任何候选键的属性(非键属性)。 (2)关系“航班”可达到第几范式,用不超过 60 个字的内容叙述理由。(分数:6.00)_12.问题 2对关系“旅客”,请回答以下的问题: (1)针对“旅客”关系,用 100 字以内文字简要说明会产生什么问题,并加以修正。 (2)列出修正后的关系模式的所有候
7、选键。 (3)把“旅客”分解为第三范式,并用图 4-1 所示的关系模式的形式表示,分解后的关系名依次取旅客 1、旅客 2、。(分数:6.00)_13.问题 3对关系“搭乘航班”,请回答以下的问题: (1)把非平凡的多值依赖属性(图 4-2 中没有表示)的例子用满足图 4-3 的方式表示出来。 (2)关系“搭乘航班”是 boyce codd 范式而不是第四范式,请用200 字以内文字阐述理由。 (3)把“搭乘航班”关系分解成第四范式,并采用图 4-1 所示的关系模式的形式表示,分解后的关系名依次取搭乘航班 1、搭乘航班 2、。(分数:6.00)_计算机水平考试中级数据库系统工程师 2004 年下
8、半年下午真题答案解析(总分:58.00,做题时间:90 分钟)一、B试题一/B(总题数:5,分数:20.00)1.问题 1根据上述说明,由 SQL 定义的“职工”和“部门”的关系模式,以及统计各部门的人数 C、工资总数 Totals、平均工资 Averages 的 D_S 视图如下所示,请在空缺处填入正确的内容。 Create Table 部门 (部门号 CHAR(1)U (a) /U, 部门名 CHAR(16), 负责人代码 CHAR(4), 任职时间 DATE, U (b) /U(职工号); Create Table 职工(职工号 CHAR(4), 姓名 CHAR(8), 年龄 NUMBE
9、R(3), 月工资 NUMBER(4), 部门号 CHAR(1), 电话 CHAR(8), 办公室 CHAR(8), U (a) /U(职工号), U (c) /U(部门号), CHECK(U (d) /U); Create View D_S(D,C,Totals,Averages)As (Select 部门号,U (e) /U from 职工 U (f) /U);(分数:4.00)_正确答案:()解析:问题 1解答 (a)PRIMARY KEY (b)FOREIGN KEY (负责人代码) REFERENCES 职工 (c)FOREIGN KEY (部门号) REFERENCES 部门 (d
10、)月工资=500 AND月工资=5000,或月工资 BETWEEN 500 AND 5000 (e)count(*),Sum (月工资),Avg (月工资) (f)GrOup by 部门号 问题 1分析 根据题意,“职工”和“部门”的关系模式如下: 用 SQL 定义关系模式的一个非常重要的问题是完整性控制。完整性控制应具有三方面的功能:定义功能、检测功能、处理功能(一旦发现违背了完整性约束条件,采取相关的动作来保证数据的完整性)。数据库中最重要的约束是声明一个或一组属性形成关系的键。键的约束在 SQL 的CREATETABLE 命令中声明。在关系系统中,最重要的完整性约束条件是:实体完整性和参
11、照完整性。 1实体完整性定义 在关系中只能有一个主键。声明主键有两种方法: 将 PRIMARY KEY 保留字加在属性类型之后。 在属性列表中引入一个新元素,该元素包含保留字 PRIMARYKEY 和用圆括号括起的形成该键的属性或属性组列表。 2参照完整性 参照完整性定义格式如下: FOREIGN KEY(属性名)REFERENCES表名(属性名) ONDELETECASCADE|SETNULL 参照完整性是通过使用如下保留字:FOREIGN KEY 定义那些列为外码; REFERENCES 指明外键对应于哪个表的主键;ON DELETE CASCADE 指明删除被参照关系的元组时,同时删除参
12、照关系中的元组;SETNULL 表示置为空值方式。本试题中,部门关系的主键为部门号,职工关系的主键为职工号。其中,部门关系的主键为部门号可采用如下两种方式定义: 部门号 CHAR(1)PRIMARY KEY 或者是 PRIMARY KEY(部门号) 又因为负责人也是一个职工,所以负责人代码应该是一个外码,应进行参照完整性定义。根据分析部门的 SQL 定义如下: Create Table 部门(部门号 CHAR(1)U PRIMARY KEY /U, 部门名 CHAR(16), 负责人代码 CHAR(4), 任职时间 DATE, UFOREIGN KEY (负责人代码) REFERENCES 职
13、工 /U(职工号); 在职工关系中,部门号是一个外码,应进行参照完整性定义。又因为在试题表 2-1 中的条件“500 元月工资5000 元”,所以在职工关系中应加上用户定义完整性。根据 分析职工的 SQL 定义如下: Create Table 职工 (职工号 CHAR(4), 姓名 CHAR(8), 年龄 NUMBER(3), 月工资 NUMBER(4), 部门号 CHAR(1), 电话 CHAR(8), 办公室 CHAR(8), UPRIMARY DEY /U (职工号), UFOREIGNKEY (部门号) REFERENCES 部门/U (部门号), CHECK(U月工资 BETWEEN
14、 500 AND 5000 /U); 建立 D_S 视图需要 COUNT 函数来统计各部门的人数 C,SUM 来计算工资总数 Totals,用 AVG 来计算平均工资 Averages,用分组语句 GROUPBY 来对不同部门进行分组。因此创建 D_S 视图的 SQL 语句是: Create ViewD_S (D,C,Totals,Averages)AS (SELECT 部门号,UCOUNT(*),SUM (月工资),AVG(月工资)/U FROM 职工 UGROUP BY 部门号)/U2.问题 2对于表 2-2、表 2-3 所示的“职工”和“部门”关系,请指出下列各行是否可以插入,为什么?
15、(分数:4.00)_正确答案:()解析:问题 2解答 (1)该行不能插入“职工”关系,它违反了实体完整性中主码必须惟一区分关系中的每一个属性。 (2)该行可以插入“职工”关系,尽管部门号、电话和办公室为空,但是它表示该雇员没有分配到某个部门。 (3)该行不能插入“职 32关系,它违反了参照完整性。因为 6 在关系“部门”中不存在。 问题 2分析 本题主要考查完整性定义的约束性。以下表是待插入的记录组。 3.问题 3在问题 1 定义的视图 D_S 上,下面哪个查询或更新是允许执行的,为什么? (1)Update D_S set D-3 where D=4; (2)Delete from D_Sw
16、here C4; (3)Select D,Averages from D_S where C(Select C from D_S where D=:dept); (4)Select D,C From D_S where Totals10000; (5)Select*from D_S;(分数:4.00)_正确答案:()解析:问题 3解答 此问考查的是对视图定义的掌握。 (1)和(2)都不能更新,因为使用分组合聚集函数定义的视图是不可更新的。(3)不一定,视子查询的返回值而定,(4)和(5)允许查询。 问题 3分析 此问考查的是视图更新必须遵循的原则。因此,需要将 SQL 语句与定义该视图的 SQ
17、L 语句结合起来考虑。由于 SQL 视图更新必须遵循以下规则: 从多个基本表通过连接操作导出的视图不允许更新。 对使用了分组、集函数操作的视图则不允许进行更新操作。 如果视图是从单个基本表通过投影、选取操作导出的则允许进行更新操作,且语法同基本表。 (1)由于 D_S 视图中包含分组操作,也即将 D_S 视图合并到 Update D_S set D=3 where D=4,结果为:Update 职工 set 部门号=3 where 部门号=4 GROUP BY 部门号,在 where 中包括 GROUP 分组操作,因此不能执行。 (2)同理,将 D_S 视图合并到 Delete from D_
18、S where C4 中,结果为:Delete from 职工 where COUNT(职工号)4 GROUP BY 部门号,因此不能执行。 (3)对于 Select D,Averages from D_S where C(Select C from D_S where D=:dept),要根据视图的返回值的情况。因此不一定能执行。 (4)对于语句 Select D,C From D_S where Totals10000可以执行。 (5)对于语句 Select*from D_S 显然是能执行的。4.问题 4查询每个部门中月工资最高的“职工号”的 SQL 查询语句如下: Select 职工号
19、from 职工 E where 月工资=(Select Max(月工资) from 职工 as M where M部门号=E部门号) (1)请用 30 字以内文字简要说明该查询语句对查询效率的影响。 (2)对该查询语句进行修改,使它既可以完成相同功能,又可以提高查询效率。(分数:4.00)_正确答案:()解析:问题 4解答 此问考查的是查询效率的问题。在涉及相关查询的某些情形中,构造临时关系可以提高查询效率。 (1)对于外层的职工关系 E 中的每一个元组,都要对内层的整个职工关系 M 进行检索,因此查询效率不高。 (2)解答一 改正后的 SQL 语句使用了临时表: Select Max(月工资
20、) as 最高工资,部门号 into Temp from 职工 Group by 部门号 Select 职工号 from 职工,Temp where 月工资=最高工资 and 职工,部门号=Temp部门号 解答二 Select 职工号 from 职工,(Select Max (月工资) as 最高工资,部门号 Group by 部门号)as depMax where 月工资=最高工资 and 职工部门号=depMax部门号 问题 4分析 此问考查的是查询效率的问题。在涉及相关查询的某些情形中,构造临时关系可以提高查询效率。 (1)对于外层的职工关系 E 中的每一个元组,都要对内层的整个职工关系
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 计算机水平 考试 中级 数据库 系统 工程师 2004 年下 半年 下午 答案 解析 DOC
