全国计算机等级考试四级数据库论述题真题(附答案)
本文由loginboy贡献
pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
中华IT学习网www.100itxx
官方总站:圣才学习网www.100xuexi
全国计算机等级考试四级数据库论述题真题 1.(1997 年) 本题要求设计一个学生试卷成绩输入、查询和成绩单输出系统(简称 SRS)的数据结构和 算法要点。问题描述如下: 要输入到 SRS 系统中的每一份试卷成绩反映一个学生选修一门课程的考试结果,它包 括以下数据项:学号、姓名、课程名、成绩。由于实行了灵活的选课制度,所以每个学生选 修多少门课程, 选修哪些课程都可以不同。 要输入的多份试卷成绩并未按任何数据项排列顺 序,它们以任意的顺序被输入到系统中来。 SRS 系统要具有以下功能:①试卷成绩插入,将试卷成绩逐个插入到 SRS 系统的数据 结构中。②学生成绩查询,给出学号查该学生所选修的各门课程的考试成绩。③成绩单输 出,按学号递增的顺序依次输出所有学生的学号、姓名,及其所选修的各门课程的课程名和 成绩。 (为简单起见,假设上述所有工作都在计算机内存中进行。 ) 请设计 SRS 系统的数据结构和算法要点,使上述三项操作都有较高的执行效率。从以 下方面阐述你的设计: (1)SRS 系统的数据结构(15 分) ①数据结构的 Pascal 语句描述 ②数据结构的示意图 ③数据结构的简单文字说明 (2)SRS 系统的算法要点(10 分) (只要简单的文字说明,不必写出 Pasca
l 程序) ①试卷成绩插入 ②学生成绩查询 ③成绩单输出 (3)简单陈述你的上述设计的理由(5 分) 答案: 本题可有多种不同的设计方案,下面给出其中一个较好的方案。 (1)数据结构(15 分,其中对三种操作的有效支持各 4 分,叙述的条理性 3 分。 ) ①数据结构的 Pascal 语句描述 TYPEpptr=↑pnode; pnode=RECORD cname:string; score:0..100; next:pptr END; sptr=↑pnode; snode=RECORD sno:integer; sname:string; llink,rlink:sptr; plink:pptr END; VARt:sptr; ②数据结构的示意图
华 中
网 习 T学 I
w. ww
0i 10
om .c xx t
中华IT学习网是一家为全国各类IT考试和专业课学习提供全套复习资料的专业性网站,致力于打造成拥有全国最多最好IT资料库的大型学习类网站
中华IT学习网www.100itxx
官方总站:圣才学习网www.100xuexi
华 中
9508027Liu?? OS72 OS60 9408023Fang?? 9508091Chen ? 9508010Li DS85 DB66? SE89 AI92? DS90 OS95 t ③数据结构的简单文字说明 每个学生结点包含学生的学号和姓名,所有学生结点组织 成一棵二叉排序树,用 link-rlink 法存储。 每份试卷成绩作为一个链表结点, 包含课程名和成绩, 每个学生的所有试
卷成绩结点链 接成一个单链表,并且二叉排序树的学生结点中有一个指针指向该单链表的第一个结点。 (2)算法要点(10 分,三种操作各 3 分,叙述的条理性 1 分) ①试卷成绩插入,根据试卷的学号在二叉排序树中查该学生结点。若到,则在该学 生结点所指的成绩链表中插入一个成绩结点; 若未到, 则先在二叉排序树中插入一个新的 学生结点,然后再往这个学生结点所指的(空的)成绩链表中插入一个成绩结点。 ②学生成绩查询, 根据所给学号在二叉排序树中查该学生结点, 再在该结点所指的成 绩链表中沿着指针读出所有成绩。 ③成绩单输出。 对二叉排序树进行对称序周游, 在访问到每个学生结点时输出该结点指 向的成绩链表中的所有成绩。 (3)设计理由(5 分) ①学生结点组织成二叉排序树,使三种操作都有较高的效率:插入 n 个学生结点 O(nlog2n),查一个学生结点 O(log2n),输出所有学生结点 O(n)。 ②每个学生的所有成绩结点组织成链表, 动态
申请空间, 适合于每个学生选修的课程数 不等的实际情况,节省空间。 2.(1998 年) 人们在管理实践中发现,数据库技术是信息资源的整理、保存、管理和使用的最有效的 手段。数据库按其数据结构模型分类,通常可分为层次型数据库、网络型数据库、关系型数 据库和面向对象型数据库, 各种类似的数据模型都有自身的特点。 试从关系数据模型的优点 和弱点论述: (1)为什么人们在开发以事务处理为主的信息系统(例如管理信息系统)时,大多选用 关系型数据库作为开发环境?(18 分) (2)在许多含有复杂数据结构或丰富语义的实际应用领域中,为什么要选用面向对象数 据库或要对关系型数据库作某些扩充和修改?(12 分) 答案: (1)首先,关系数据模型结构简单,为二维表格结构与目前事务处理系统中数据多以二 维表格结构组织和表示相适应。 (10 分) 其次,关系数据模型的其他优点也适应事务处理的要求: 因此集合论等知识可以引入关系型数据模型中, 使它具有坚实的数学 ①表格是一集合,
网 习 T学 I
w. ww
0i 10
om .c xx t
中华IT学习网是一家为全国各类IT考试和专业课学习提供全套复习资料的专业性网站,致力于打造成拥有全国最多最好IT资料库的大型学习类网站
中华IT学习网www.100itxx
官方总站:圣才学习网www.100xuexi
华 中
理论基础。 分) (4 ②有简单、易懂`易学的关系数据库的标准语言 SQL 的支持。 分) (2 ③数据具有较高的独立性。 分) (2 (2)在含有复杂数据结构或丰富语义的实际应用领域中,一般选用面向对象数据库
四级考试需要带什么,或 要对关系数据库作某些扩充和修改是因为: ①关系数据模型不擅长于表示复杂对象数据类型。 分) (4 ②也不擅长于表示实体间的语义联系。 分) (4 ③而面向对象数据模型在这两方面有优势。 分) (4 3.(2000 年)设计一个用于管理会议室的数据库。经调查分析,得到的数据项列出如下: 房间号 r#CHAR(4),部门号 d#CHAR(3),部门名称 dnameCHAR(20), 房间容量 contentINT,部门主管 dmanagerCHAR(8),开会日期 mdateDATE, 会议名称 cnameCHAR(20),会议主题(subject)CHAR(80),会议类型(type), 部门人数 dnumINT,当前房间状态 stateCHAR(1), 并确定以
会议室(room)信息,部门(department)信息,会议(conference)信息为实 体,它们通过“开会(meeting)”联系起来。为了简化问题做如下假定: l 会议以部门召开,但一个部门在同一会议室不能重复召开同一个会议。 l 会议室按部门借用,且不预借。 l 当前房间状态取值为‘1’表示该会议室当前正在开会,取值为‘0’表示该会议 室当前未被借用。 数据库概念设计的只包含主键属性的简化 E-R 图如下: cname r# 会议 conference 房间 room 部门 department d# 开会 meeting m n p 要求: ⑴数据库的逻辑结构设计:给出相应的表名、表的属性名(数据类型可省)、主键。(14 分) ⑵给出下列查询的 SQL 语句: (16 分,每小题 4 分) a)当前未借用的会议室(房间号)和容量: b)2000 年 4 月 8 日有哪些部门(部门名称)在开会?他们的主管是谁? c)2000 年 4 月 8 日‘信息中心’在哪个会议室(房间号)开会?会议名称和主题是什么? d)当前能够适合‘信息中心’开会的有哪些会议室(房间号)?
网 习 T学 I
w. ww
0i 10
om .c xx t
答案: (1)数据库的逻辑结构设计(给出相应的表名,表结构,主键;(14 分) room(r#,content,state)主键:r
#(3 分) department(d#,dname,dmanager,dnum)主键:d#(3 分) conference(cname,subject,type)主键:cname(3 分)
中华IT学习网是一家为全国各类IT考试和专业课学习提供全套复习资料的专业性网站,致力于打造成拥有全国最多最好IT资料库的大型学习类网站
中华IT学习网www.100itxx
官方总站:圣才学习网www.100xuexi
meeting(r#,d#,cname,mdate)主键(r#,d#,cname)(5 分) (2)给出下列查询的 SQL 语句:(16 分,每小题 4 分) a)当前未借用的会议室(房间号)和容量: selectr#,contentfromroomwherestate=’0’ b)2000 年 4 月 8 日有哪些部门(部门名称)在开会?他们的主管是谁? Selectdname,dmanagerfromdepartmentd,meetingm whered.d#=m.d#andmdate=’2000 年 4 月 8 日’ 或 Selectdname,dmanagerfromdepartmentd whered.d#=in(selectm.d#=frommeetingmWheremdate=’2000 年 4 月 8 日’) c)2000 年 4 月 8 日’信息中心’在哪个会议
室(房间号)开会?会议名称和主题是什么? Selectr#,mame,subjectfromdepartmentd,meetingm,confe
rencec whered.d#=m.d#andmame=cameand Mdate=’2000 年 4 月 8 日’anddname=’信息中心’ 或(注:本题中 Selectr#,came,……也可以是 Selectr#,mame,…… Selectr#,came,subjectfrommeetingm,conferencec WhereMdate=’2000 年 4 月 8 日’andmame=cameand m.d#=(selectd.d#fromdepartmentdwheredname=’信息中心’) d)当前能够适合’信息中心’开会的有哪些会议室(房间号)? Selectr#fromroomwherestate=’O’and content>=(selectdnumfromdepartmentwheredname=’信息中心’)
华 中
4.(2001 年) (l)、为了维护数据库的参照完整性,当删除被参照关系的元组时,系统可能采取哪些做 法?(15 分) (2)、 若有学生关系 S(S#,SNAME,SEX,AGE), 其主键为 S#; 选课关系 SC(S#,C#,GRADE), 其主键为(S#,C#),且 S.S#=SC.S#。假定学生号为‘01001’的学生离开学校不再回来了,为 此若删除关系 S 中 S#=‘01001’的元组时,如果关系 SC 中有 4 个元组的 S#=‘01001’,应该选 用哪一种做法?为什么?(15 分)
网 习 T学 I
w. ww
0i 10
om .c xx t
答案: (1)、为了维护数据库的参照完整性,当删除被参照关系的元组时,系统可能采取如下 三种做法(每种做法得 5 分) : l)级联删除(cascades):即,当删除被参照关系的元组时,同时将参照关系中所有外键值 与被参照关系中要被删除元组的主键值相等(相对应)的元组一起删除。 2)拒绝删除(restricted):即,只当参照关系中没有任何元组的外键值与被参照关系中要 被删除的元组的主键值相等(相对应)时,系统才执行该删除操作,否则拒绝执行该删除操 作。 3)置空值删除(nullfies):即,当删除被参照关系的元组时,同时将参照关系中所有与被 参照关系中要被删除元组的主健值相等(相对应)的外键值都置为空值。 (2)、对于本题的情况,应该选用第一种做法。即,将关系 SC 中 S#=‘01001’的 4 个元组 也一起删除。(得 10 分) 因为当一个学生离开学校不再回来,他的个人信息记录若从 S 关系中删除了,那么他 的选课信息记录就没有保存的必要,也应随之从 SC 关系中删除。(得 5 分)
中华IT学习网是一家为全国各类IT考试和专业课学习提供全套复习资料的专业性网站,致力于打造成拥有全国最多最好IT资料库的大型学习类网站
中华IT学习网www.100itxx
官方总站:圣才学习网www.100xuexi
5.(2002 年)为学校中学生选课管理这个现实问题进行数据库模式设计。根据调查分析, 确定它的属性集合为: U={S#,C#,SNAME,CNAME,TEACHER,GRADE,SD} 下面给出两种确定的模式设计方案: 方案一:只有一个关系模式: R(S#,C#,SNAME,CNAME,TEACHE
R,GRADE,SD) 方案二:如果根据属性之间存在的联系或相关性,建立如下三个关系: S(S#,SNAME,SD),C(C#,CNAME,TEACHER),SC(S#,C#,GRADE) (1).试分析这两种模式设计方案各自的优缺点。 (26 分) (2).通常情况下你认为哪种方案更“好”些?请说明理由。 分) (4 答案: 对一个现实问题,进行关系数据库模式设计,通常其设计结果不是唯一的。每个方案有 各自的优缺点。对本题可以得到如下的分析结果: 对方案一:这个关系模式存在如下问题: (每个问题 4 分,共 16 分。若只给出问题,没 有说明得 2.5 分) (1).数据存在大量冗余。例如: (至少给出 1 项) S#,SNAME,SD 要重复“每个学生选修的课程数” C#,CNAME,TEACHER 要重复“学生选修这门课的人数” (2).更新异常。由于数据存在大量冗余,容易引起更新异常。例如,当更新某门课程的 教师时,由于数据存在大量冗余,可能造成与这门课程有关的元组中,一部分元组的 TEACHER 的值被更新,而另一部分元组的 TEACHER 的值未被更新。 (3).插入异常。显然,这个关系的主键是 S#和 C#。由于主键属性值不能为空值,当登 记学生信息时,由于该学生尚未选课,C#未确定,该学生的其他信息也无法登入,这不是 我们的意愿。 (4).删除异常。如果某些课程因故删除了,则只选修这些课程的学生信息也被删除了, 这往往也不是我们的本意,我们并不希望删除这些学生的信息。 对方案二:如果根
据属性之间存在的联系或相关性,建立了三个关系,则方案一中存在 的异常现象被消除了。 (得 5 分) 但对诸如“查张三的数据库技术课程的成绩”之类的问题时, 这需要连接这三个关系才 能完成,这个查询代价高而且会影响效率。 (得 2.5 分) 相比之下,第一个方案则可直接投影、选择就可以完成这类查询,不需要连接操作,显 然代价低而且效率高。 (得 2.5 分) 比较这两种设计方案: 本人认为第二种设计方案虽然对某些查询问题连接操作较多, 但 它仍比第一种方案“好”,因为它不存在上述异常问题。 (得 4 分) 6.(2003 年)在"学生-选课-课程"数据库中有三个关系: S(S#, SNAME, SEX, AGE, SD), SC(S#,C#,GRADE),C(C#,CNAME,TEACHER)。它们的主码分别是 S#,(S#,C#), C#,并且其他属性都允许为空值(NULL)。用下面的 SQL 语句创建了两个视图: createviewCS_SasselectS#,SNAME,AGEfromS whereSD=’计算机系’; createviewS_G(S#,GAVG)asselectS#,avg(GRADE) fromSCgroupbyS#; 若用下面的 SQL 语句对上述视图进行修改,它们能被成功执行吗?为什么? (1)updateCS_SsetSNAME=’WANGPING’whereS#=’200301001’;
华 中
网 习 T学 I
w. ww
0i 10
om .c xx t
中华I

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。