全国计算机等级考试四级数据库论述题真题.docx

上传人:scccc 文档编号:14743341 上传时间:2022-02-16 格式:DOCX 页数:9 大小:26.49KB
返回 下载 相关 举报
全国计算机等级考试四级数据库论述题真题.docx_第1页
第1页 / 共9页
全国计算机等级考试四级数据库论述题真题.docx_第2页
第2页 / 共9页
全国计算机等级考试四级数据库论述题真题.docx_第3页
第3页 / 共9页
全国计算机等级考试四级数据库论述题真题.docx_第4页
第4页 / 共9页
全国计算机等级考试四级数据库论述题真题.docx_第5页
第5页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《全国计算机等级考试四级数据库论述题真题.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试四级数据库论述题真题.docx(9页珍藏版)》请在三一文库上搜索。

1、全国计算机等级考试四级数据库论述题真题(1.(XXXX 年)请设计SRS系统的数据结构和算法要点,使上述三项操作都有较高的执行效率。从以F方面阐述你的设计:(1)SRS 系统的数据结构(15分) 数据结构的Pascal语句描述 数据结构的示意图 数据结构的简单文字说明SRS 系统的算法要点(10 分)(只要简单的文字说明,不必写出Pascal程序) 试卷成绩插入 学生成绩查询 成绩单输出(3) 简单陈述你的上述设计的理由(5分)答案:本题可有多种不同的设计方案,下面给出其中一个较好的方案。(1) 数据结构(15分,其中对三种操作的有效支持各4分,叙述的条理性3分。) 数据结构的Pascal语句

2、描述TYPEpptr=T pnode;pn ode=RECORDcname:string;score:0.100;next:pptrEND;sptr= T pnode;snode=RECORDsno:integer;sname:string;llink,rlink:sptr;plink:pptrEND;VARt:sptr; 数据结构的示意图XXLiu ?OS72OS60XXFang ?XXChen ?XXLiDS85DB66 ?SE89AI92 ?DS90OS95每份试卷成绩作为一个链表结点,包含课程名和成绩,每个学生的所有试卷成绩结点链接成一个单链表,并且二叉排序树的学生结点中有一个指针指向

3、该单链表的第一个结点。2)算法要点( 10分,三种操作各 3分,叙述的条理性 1 分) 试卷成绩插入,根据试卷的学号在二叉排序树中查找该学生结点。若找到,则在该学生结点所指的成绩链表中插入一个成绩结点;若未找到,则先在二叉排序树中插入一个新的学生结点,然后再往这个学生结点所指的(空的)成绩链表中插入一个成绩结点。 学生成绩查询,根据所给学号在二叉排序树中查找该学生结点,再在该结点所指的成绩链表中沿着指针读出所有成绩。 成绩单输出。对二叉排序树进行对称序周游,在访问到每个学生结点时输出该结点指向的成绩链表中的所有成绩。3)设计理由( 5 分)学生结点组织成二叉排序树,使三种操作都有较高的效率:插

4、入n个学生结点O(nlog2n), 查找一个学生结点 O(log2n), 输出所有学生结点 O(n)。每个学生的所有成绩结点组织成链表,动态申请空间,适合于每个学生选修的课程数不等的实际情况,节省空间。2.(XXXX 年)人们在管理实践中发现,数据库技术是信息资源的整理、保存、管理和使用的最有效的手段。数据库按其数据结构模型分类,通常可分为层次型数据库、网络型数据库、关系型数据库和面向对象型数据库,各种类似的数据模型都有自身的特点。试从关系数据模型的优点和弱点论述:(1)为什么人们在开发以事务处理为主的信息系统(例如管理信息系统)时,大多选 用关系型数据库作为开发环境?( 18分)(2)在许多

5、含有复杂数据结构或丰富语义的实际应用领域中,为什么要选用面向对象 数据库或要对关系型数据库作某些扩充和修改?( 12分)答案 :(1) 首先,关系数据模型结构简单,为二维表格结构与目前事务处理系统中数据多以二维表格结构组织和表示相适应。(10分)其次,关系数据模型的其他优点也适应事务处理的要求:表格是一集合,因此集合论等知识可以引入关系型数据模型中,使它具有坚实的数 学理论基础。( 4 分)有简单、易懂 易学的关系数据库的标准语言 SQL的支持。(2分) 数据具有较高的独立性。(2分)(2) 在含有复杂数据结构或丰富语义的实际应用领域中,一般选用面向对象数据库, 或要对关系数据库作某些扩充和修

6、改是因为:关系数据模型不擅长于表示复杂对象数据类型。(4分)也不擅长于表示实体间的语义联系。(4分)而面向对象数据模型在这两方面有优势。( 4分)3.(XXXX 年) 设计一个用于管理会议室的数据库。经调查分析,得到的数据项列出如下: 房间号 r#CHAR(4),部门号 d#CHAR(3),部门名称 dnameCHAR(20)房间容量 contentINT , 部门主管dmanagerCHAR(8,开会日期 mdateDATE会议名称cnameCHAR(20)会议主题 (subject)CHAR(80),会议类型(type),部门人数 dnumINT,当前房间状态 stateCHAR(1),并

7、确定以会议室(room)信息,部门(department )信息,会议(conference )信息为实 体,它们通过“开会( meeting ) ”联系起来。为了简化问题做如下假定: l 会议以部门召l 会议室按部门借用,且不预借。开,但一个部门在同一会议室不能重复召开同一个会议。l 当前房间状态取值为 1表示该会议室当前正在开会,取值为 0表示该会议室当前未被借用。数据库概念设计的只包含主键属性的简化E-R图如下:cnamer#会议 conference 房间 room 部门 departmentd# 开会 meetingmnp 要求:数据库的逻辑结构设计:给出相应的表名、表的属性名(数据

8、类型可省)、主键。(14 分 )给出下列查询的 SQL语句:(16分,每小题4分)a)当前未借用的会议室(房间号)和容量:b)XXXX 年 4 月 8 日有哪些部门(部门名称)在开会?他们的主管是谁?c)XXXX 年 4 月 8 日信息中心在哪个会议室(房间号)开会?会议名称和主题是什 么?d)当前能够适合信息中心开会的有哪些会议室(房间号)?答案(1) 数据库的逻辑结构设计 (给出相应的表名 ,表结构 ,主键;(14 分)room(r#,content,state)主键:r#(3分)主键 :cname(3 分)department(d#,dname,dmanager,dnum)主键:d#(3

9、 分)conference(cname,subject,type)meeting(r#,d#,cname,mdate)主键(r#,d#,cname)(5分) 给出下列查询的SQL语句:(16分,每小题4分)a)当前未借用的会议室 (房间号)和容量:selectr#,contentfromroomwherestate= 0b)XXXX 年4月 8日有哪些部门 (部门名称 )在开会?他们的主管是谁 ?Selectdname,dmanagerfromdepartmentd,meetingmwhered.d#=m.d#andmdate= XXXX年 4 月 8 日Selectdname,dmanage

10、rfromdepartmentdwhered.d#=in(selectm.d#=frommeetingmWheremdate= XXXX 年 4 月 8 日)c) XXXX 年4月 8日信息中心在哪个会议室 (房间号)开会?会议名称和主题是什么 ?Selectr#,ame,subjectfromdepartmentd,meetingm,conferencecwhered.d#=m.d#ame=ameandMdate= XXXX年 4 月 8 日anddname=信息中心或(注: 本题中 Selectr#,ame,也可以是 Selectr#,ame,Selectr#,ame,subjectfro

11、mmeetingm,conferencec信息中心)WhereMdate= XXXX年 4 月 8 日ame=ameandm.d#=(select d.d#fromdepartmentdwheredname= d) 当前能够适合信息中心开会的有哪些会议室( 房间号 )?Selectr#fromroomwherestate= O andcontent=(selectdnumfromdepartmentwheredname=信息中心 )4.(XXXX 年)(l) 、为了维护数据库的参照完整性,当删除被参照关系的元组时,系统可能采取哪些做法?( 15 分)(2) 、若有学生关系 S(S#,SNAME

12、,SEX,AGE)其主键为 S#;选课关系 SC(S#,C#,GRADE,其主键为(S#,C#),且S.S#=SC.S#。假定学生号为 01001 的学生离开学校不再回来了,为此若删除关系 S中S#= 01001 的元组时,如果关系SC中有4个元组的S#= 01001,应该选用哪一种做法?为什么?( 1 5分)答案 :(1) 、为了维护数据库的参照完整性,当删除被参照关系的元组时,系统可能采取如下三种做法(每种做法得 5 分):l) 级联删除 (cascades) :即,当删除被参照关系的元组时,同时将参照关系中所有外键值与被参照关系中要被删除元组的主键值相等(相对应)的元组一起删除。2) 拒

13、绝删除 (restricted):即,只当参照关系中没有任何元组的外键值与被参照关系中要被删除的元组的主键值相等相对应)时,系统才执行该删除操作,否则拒绝执行该删除操作。3) 置空值删除 (nullfies):即,当删除被参照关系的元组时,同时将参照关系中所有 与被参照关系中要被删除元组的主健值相等 (相对应 )的外键值都置为空值。 、对于本题的情况,应该选用第一种做法。即,将关系SC中S#= 01001的4个元组也一起删除。 (得 10分)因为当一个学生离开学校不再回来,他的个人信息记录若从sc关系中删除。关系中删除了,那么他的选课信息记录就没有保存的必要,也应随之从(得 5分)5 为学校中

14、学生选课管理这个现实问题进行数据库模式设计。根据调查分析,确定它 的属性集合为:U=S#,C#,SNAME,CNAME,TEACHER,GRADE下面给出两种确定的模式设计方案:方案一:只有一个关系模式:R(S#,C#,SNAME,CNAME,TEACHER,GRADE方案二:如果根据属性之间存在的联系或相关性,建立如下三个关系:S(S#,SNAME,SD),C(C#,CNAME,TEACHER),SC(S#,C#,GRADE)(1). 试分析这两种模式设计方案各自的优缺点。( 26 分)(2). 通常情况下你认为哪种方案更“好”些?请说明理由。( 4分)答案 :对一个现实问题,进行关系数据库

15、模式设计,通常其设计结果不是的。每个方案有各 自的优缺点。对本题可以得到如下的分析结果:对方案一:这个关系模式存在如下问题:每个问题 4 分,共 16 分。若只给出问题,没有说明得 2.5 分)(1). 数据存在大量冗余。例如:(至少给出 1 项)S#,SNAME,SD 要重复“每个学生选修的课程数”C#,CNAME,TEACHEI 要重复“学生选修这门课的人数”(2). 更新异常。由于数据存在大量冗余,容易引起更新异常。例如,当更新某门课程 的教师时,由于数据存在大量冗余,可能造成与这门课程有关的元组中,一部分元组的TEACHEI的值被更新,而另一部分元组的TEACHE的值未被更新。(3).

16、插入异常。显然,这个关系的主键是S#和C#)由于主键属性值不能为空值,当登记学生信息时,由于该学生尚未选课,C#未确定,该学生的其他信息也无法登入,这不是我们的意愿。(4). 删除异常)如果某些课程因故删除了,则只选修这些课程的学生信息也被删除了, 这往往也不是我们的本意,我们并不希望删除这些学生的信息。对方案二:如果根据属性 之间存在的联系或相关性,建立了三个关系,则方案一中存在的异常现象被消除了。(得5 分)但对诸如“查找张三的数据库技术课程的成绩”之类的问题时,这需要连接这三个关 系才能完成,这个查询代价高而且会影响效率)(得 2.5 分)相比之下,第一个方案则可 直接投影、选择就可以完

17、成这类查询,不需要连接操作,显然代价低而且效率高。(得2.5 分)比较这两种设计方案:本人认为第二种设计方案虽然对某些查询问题连接操作较多,4 分) 6.(XXXX 年) 在学但它仍比第一种方案“好”,因为它不存在上述异常问题。(得生-选课-课程数据库中有三个关系:S(S#, SNAM,ESEX, AGE, SD), SC(S#, C#, GRADE,)C(C#, CNAM, TEACHER)它们的主码分别是 S#, (S# , C#), C#,并且其他属性都允许为空值(NULL)。用下面的SQL语句创建了两个视图:createviewCS_SasselectS# , SNAM,E AGEfr

18、omSwhereSD=计算机系;createviewS_G(S# , GAVG)asselectS# , avg(GRADE)fromSCgroupbyS#若用下面的SQL语句对上述视图进行修改,它们能被成功执行吗?为什么?(1)updateCS_SsetSNAME= WANGPINGwhereS#=XX1;(这里假定在表S中存在学生号S#= XX1的行)(2)insertintoCS_Svalues(XX9, YANGXIN ,21) ;(这里假定在表S中不存在学生号S#= XX9的行)(3) updateS_GsetGAVG=85whereS#= XX1;(这里假定在表SC中存在学生号S#

19、= XX1的行。)要求:首先回答这三个SQL语句中哪个(些)能被成功执行,哪个(些)不能被成功执行12分),再进一步说明能被成功执行或不能被成功执行的理由( 18分)。答案 :(1).第和两个SQL语句能被成功执行;第(3)个SQL语句不能被成功执行。(2) 因为对视图的修改最终要转换为对基本表的修改。SQL语句将转换成执行如SQL语句将转换成执行如I对于第(1)个SQL语句能被成功执行的理由是:执行这个下的SQL语句:updateSsetSNAME= WANGPINGwhereSD=计算机系andS#= XXl ;II对于第(2)个SQL语句能被成功执行的理由是:执行这个下的SQL语句:insertintoSvalues( XX9 , YANGXIN ,NULL,21,计算机系)或 insertintoS(S#,SNAME,AGE,SD)values( XX9,YANGXIN ,21, 计算机系)转换后的这两个SQL语句,在本题意的假定下是能够被成功执行的。所以第(1)和(2)个SQL语句能被成功执行。m对于第 个SQL语句不能被成功执行的理由是:由于视图S_G中的一个行是由表SC中若干行经过分组求平均值得到的,因此对视图S_G的更新就无法转换成对基本表 SC的更新。所以第(3)个SQL语句不能被成功执行。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1