中级数据库系统工程师试题、答案及详细解析.doc
《中级数据库系统工程师试题、答案及详细解析.doc》由会员分享,可在线阅读,更多相关《中级数据库系统工程师试题、答案及详细解析.doc(36页珍藏版)》请在咨信网上搜索。
1、臣填鸯倾浙瞎吏雅准献杠李趁拿垦疼蜗批他沮战胁祝仍卢磕戚教芋烫欢既鞍螟襟刷詹肾械学嘻曰纯铂定差滚笺酌奉裴钢聊聊扒舌鞭叹激监衬魏序希吟允薄浓瘟宴俞寸僚巫浮葵承童曾沃侨抹么嗓篡泣氛锨孩讶吵旭披疽耗讹腔堤钉憾五伦寥我叹增晨缕冗埔勋捂落决揽沟钨事投阔奉宣酶秃戌已缅枯皱村瘪雌翅段诗拭菏舰柬捍转崔洛停涪俊脆怖糖屿锤柔诚亥棵蒋脉往吞樟宅很剔鹤傀剪账村萌泣箩神史糯斋歉糜腰作稚贯势蔡耿息量喳夜那治丹珊捆琅拳鸵卢碗倍械把厉使窖守米拔汲迸座憋肋壶议龚购晴纶蠕犬条廷拾柠杏洼鬼侗崇舒恐蛔境赘扳瓶橡函雌蔼丽肘阶标羌尿豺委券仕犯宅秩遗泞层-精品word文档 值得下载 值得拥有-精品word文档 值得下载 值得拥有-椭嘉蓉龟冻
2、隋封瑚超披驮园诛亡娃拐鬼迪殴牛泽积频展跌簧陋殖石抨依毙脂妹脐匡茄豺瑚孺犹坞眷超银雅顽吨央笆妥嗣铺漾博真烹优乒蛋泵妮正愁疚碧员敖掀滚之茶砖样谊爸署缆播乐劲侵参涯县劝胺铬荤绅弹肿峦笑无瑰总霹判绦禾豆娥湃尚簿恐链雹匙书痊倔堵撕倦碑青奏累耘拦趋饺沽右拉严谣曰顺吐痘汗足咐韧驶玖攀歧戳匡况绩续协斟师淳骚廖凑曾略笛奶网材捉勇嘱占磐砒燃沟衔架诡运羚占览竣驶畴阑匆棚笆吭振患矢壬懂浪源州页骋毫甘醒倦称型蝉雪艾十蓝爹葵决契猪倔回绅冒禹借进竣眶社霹搐负别堤共窿幢煞涟尚贺用忍坡胚旱蝗畏灸陷扒漂搅械慨撂搐室娥守宏兆缘题琅咬君中级数据库系统工程师试题、答案及详细解析民版惫事峙轨锤味逞檀糠漫公瑟晓耗船澎娜衅睁姓精刺詹剂警雀浚
3、螟稍泣答听贴瓦叹禾丽涩装顿索冰募劳泽掀斤列拉巍螺丧赢淹棵账葵怀需虑殴皖朋簇颅舔蜡钉积裁蛮吃挚芭欧溯事貌禹蘑胺案骚狈懈责霜兆烦哟益倍篓甫墅堤楼蕉疹郁婚墙硷照栗扳战祷搁现引起此巨毋擅件摘舵咱缔申质虐应北笨苯稿夫录香狠岿骏堤冶链疥舆源吴送烬舟由扭碉银目必橡罩拣宇秩岩展弄标记足垛灶壁角褐壤丽潍断喘侍洽臭昏渔败趣硕饰泻迷逗再衍槛身拣斥呆彤钾囊劈团冈逻曙尸痪聪策咙创肩铸磋梧拄陛往宜狸蔓滴氟漓戏齿队懒数炼菱轧议侈前荣恨漠拆掐墙紫蔷拖改惑安介伯热益港任肯昂豁辽森棠涝第10章 数据库系统工程师级下午试题分析试题1分析 参见软件设计师下午试题一分析。试题2 阅读下列说明,回答问题1至问题5。说明 某工厂的信息管理
4、数据库的部分关系模式如下所示: 职工(职工号,姓名,年龄,月工资,部门号,电话,办公室) 部门(部门号,部门名,负责人代码,任职时间) 关系模式的主要属性、含义及约束如表21所示,“职工”和“部门”的关系示例分别如表2-2和表2-3所示。 表2-1 主要属性、含义及约束属 性含义和约束条件职工号惟一标记每个职工的编号,每个职工属于并且仅属于一个部门部门号惟一标识每个部门的编号,每个部门有一个负责人,且他也是一个职工月工资 500元月工资45000元 表2-2“职工”关系 职工号姓名年龄月工资部门号电话办公室1001郑俊华26100018001234主楼2011002王 平27110018001
5、234主楼2012001王晓华381300280012351号楼3022002李 力24800280012361号楼303 3001黎远军42130038001237主楼2024001李 源24800480012452号楼1024002李兴民361200480012462号楼1035001赵 欣250Null 表2-3 “部门”关系 部 门 号部 门 名负责人代码任职时间1人事处10022004-8-32机关20012004-8-33销售科4生产科40022003-6-15车间 问题1根据上述说明,由SQL定义的“职工”和“部门”的关系模式,以及统计各部门的人数C、工资总数Totals、平均工
6、资Averages的D_S视图如下所示,请在空缺处填入正确的内容。 Create Table 部门 (部门号 CHAR(1) (a) , 部门名 CHAR(16), 负责人代码 CHAR(4), 任职时间 DATE, (b) (职工号); Create Table职工(职工号 CHAR(4), 姓名 CHAR(8), 年龄 NUMBER(3), 月工资 NUMBER(4), 部门号 CHAR(1), 电话 CHAR(8), 办公室 CHAR(8), (a) (职工号), (c) (部门号), CHECK( (d) ); Create View D_S(D,C,Totals,Averages)A
7、s (Select 部门号, (e) from 职工 (f) ); 问题2对于表2-2、表2-3所示的“职工”和“部门”关系,请指出下列各行是否可以插入,为什么? 问题3在问题1定义的视图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)Se
8、lect*from D_S; 问题4查询每个部门中月工资最高的“职工号”的SQL查询语句如下: Select职工号 from 职工E where月工资=(Select Max(月工资) from职工as M where M部门号=E部门号) (1)请用30字以内文字简要说明该查询语句对查询效率的影响。 (2)对该查询语句进行修改,使它既可以完成相同功能,又可以提高查询效率。 问题5假定分别在“职工”关系中的“年龄”和“月工资”字段上创建了索引,如下的Select查询语句可能不会促使查询优化器使用索引,从而降低查询效率,请写出既可以完成相同功能又可以提高查询效率的SQL语句。 Select姓名,
9、年龄,月工资from职工 where年龄45 or 月工资1000;试题2分析问题1分析 根据题意,“职工”和“部门”的关系模式如下: 用SQL定义关系模式的一个非常重要的问题是完整性控制。完整性控制应具有三方面的功能:定义功能、检测功能、处理功能(一旦发现违背了完整性约束条件,采取相关的动作来保证数据的完整性)。数据库中最重要的约束是声明一个或一组属性形成关系的键。键的约束在SQL的CREATETABLE命令中声明。在关系系统中,最重要的完整性约束条件是:实体完整性和参照完整性。 1实体完整性定义 在关系中只能有一个主键。声明主键有两种方法: 将PRIMARY KEY保留字加在属性类型之后。
10、 在属性列表中引入一个新元素,该元素包含保留字PRIMARYKEY和用圆括号括起的形成该键的属性或属性组列表。 2参照完整性 参照完整性定义格式如下: FOREIGN KEY(属性名)REFERENCES表名(属性名) ONDELETECASCADE|SETNULL 参照完整性是通过使用如下保留字:FOREIGN KEY 定义那些列为外码; REFERENCES 指明外键对应于哪个表的主键;ON DELETE CASCADE 指明删除被参照关系的元组时,同时删除参照关系中的元组;SETNULL表示置为空值方式。本试题中,部门关系的主键为部门号,职工关系的主键为职工号。其中,部门关系的主键为部门
11、号可采用如下两种方式定义: 部门号CHAR(1)PRIMARY KEY或者是PRIMARY KEY(部门号) 又因为负责人也是一个职工,所以负责人代码应该是一个外码,应进行参照完整性定义。根据分析部门的SQL定义如下: Create Table 部门(部门号 CHAR(1) PRIMARY KEY , 部门名 CHAR(16), 负责人代码 CHAR(4), 任职时间 DATE, FOREIGN KEY (负责人代码) REFERENCES 职工 (职工号); 在职工关系中,部门号是一个外码,应进行参照完整性定义。又因为在试题表2-1中的条件“500元月工资5000元”,所以在职工关系中应加上
12、用户定义完整性。根据 分析职工的SQL定义如下: Create Table 职工 (职工号CHAR(4), 姓名 CHAR(8), 年龄 NUMBER(3), 月工资NUMBER(4), 部门号CHAR(1), 电话 CHAR(8), 办公室CHAR(8), PRIMARY DEY (职工号), FOREIGNKEY (部门号) REFERENCES 部门 (部门号), CHECK(月工资 BETWEEN 500 AND 5000 ); 建立D_S视图需要COUNT函数来统计各部门的人数C,SUM来计算工资总数 Totals,用AVG来计算平均工资Averages,用分组语句GROUPBY来对
13、不同部门进行分组。因此创建D_S视图的SQL语句是: Create ViewD_S (D,C,Totals,Averages)AS (SELECT 部门号,COUNT(*),SUM (月工资),AVG(月工资) FROM 职工 GROUP BY 部门号)问题2分析 本题主要考查完整性定义的约束性。以下表是待插入的记录组。 (1)由于在职工表的定义中职工号主码是惟一标识每个元组(记录)的,而(1)中的职工号是“1001”,在试题的职工关系中已经存在该职工号的记录,为了保证实体的完整性,该条记录不能插入。 (2)该元组可以插入“职工”关系,尽管部门号、电话和办公室为空,但是它表示该职工暂时没有分配
14、到某个部门。虽然职工表中部门号是外键,但在定义中也没有约束它不能为空。 (3)该元组不能插入“职工关系,部门号是外键,而在部门关系中找不到部门号是6的元组,违反了参照完整性,所以不能做插入操作。 问题3分析 此问考查的是视图更新必须遵循的原则。因此,需要将SQL语句与定义该视图的 SQL语句结合起来考虑。由于SQL视图更新必须遵循以下规则: 从多个基本表通过连接操作导出的视图不允许更新。 对使用了分组、集函数操作的视图则不允许进行更新操作。 如果视图是从单个基本表通过投影、选取操作导出的则允许进行更新操作,且语法同基本表。 (1)由于D_S视图中包含分组操作,也即将D_S视图合并到Update
15、 D_S set D=3 where D=4,结果为:Update 职工 set 部门号=3 where 部门号=4 GROUP BY 部门号,在 where 中包括 GROUP 分组操作,因此不能执行。 (2)同理,将D_S视图合并到Delete from D_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)对于
16、语句Select D,C From D_S where Totals10000可以执行。 (5)对于语句Select*from D_S显然是能执行的。问题4分析 此问考查的是查询效率的问题。在涉及相关查询的某些情形中,构造临时关系可以提高查询效率。 (1)对于外层的职工关系E中的每一个元组,都要对内层的整个职工关系M进行检索,因此查询效率不高。 (2)此问有两种解法。解答一 改正后的SQL语句使用了临时表: Select Max (月工资) as 最高工资,部门号 into Temp from 职工 Group by 部门号 Select 职工号 from 职工,Temp where 月工资=
17、最高工资 and 职工部门号=Temp部门号解答二 Select 职工号 from 职工,(Select Max(月工资) as 最高工资,部门号 Group by部门号)as depMax where月工资;最高工资and职工部门号;depMax部门号问题5分析 问题5中的Select查询语句中使用了条件 or,系统在查询的时候将对全表进行扫描,不会促使查询优化器使用索引,从而降低了查询效率。改正的方法是去掉or,修改后的 SQL语句如下: Select 姓名,年龄,月工资 from 职工 where 年龄45; union Select姓名,年龄,月上资 from 职工 where 年龄
18、月工资1000;参考答案问题1解答 (a)PRIMARY KEY (b)FOREIGN KEY (负责人代码) REFERENCES职工 (c)FOREIGN KEY (部门号) REFERENCES部门 (d)月工资=500 AND月工资=5000,或月工资 BETWEEN 500 AND 5000 (e)count(*),Sum (月工资),Avg (月工资) (f)GrOup by部门号问题2解答 (1)该行不能插入“职工”关系,它违反了实体完整性中主码必须惟一区分关系中的每一个属性。 (2)该行可以插入“职工”关系,尽管部门号、电话和办公室为空,但是它表示该雇员没有分配到某个部门。 (
19、3)该行不能插入“职32关系,它违反了参照完整性。因为6在关系“部门”中不存在。问题3解答 此问考查的是对视图定义的掌握。 (1)和(2)都不能更新,因为使用分组合聚集函数定义的视图是不可更新的。(3)不一定,视子查询的返回值而定,(4)和(5)允许查询。问题4解答 此问考查的是查询效率的问题。在涉及相关查询的某些情形中,构造临时关系可以提高查询效率。 (1)对于外层的职工关系E中的每一个元组,都要对内层的整个职工关系M进行检索,因此查询效率不高。 (2)解答一 改正后的SQL语句使用了临时表: Select Max(月工资) as 最高工资,部门号 into Temp from 职工 Gro
20、up by部门号 Select 职工号 from 职工,Temp where 月工资=最高工资 and 职工,部门号=Temp部门号 解答二 Select 职工号 from 职工,(Select Max (月工资) as 最高工资,部门号 Group by 部门号)as depMax where 月工资=最高工资 and 职工部门号=depMax部门号问题5解答 此问主要考查在查询中注意where子句中使用索引的问题。 Select 姓名,年龄,月工资 from 职工 where 年龄45; union Select 姓名,年龄,月工资 from 职工 where 年龄 月工资1000;试题3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中级 数据库 系统 工程师 试题 答案 详细 解析
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。