金状元试卷网-江西财经大学考研真题数据结构与数据库原理2004
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
江西财经大学
2004年攻读硕士学位研究生入学考试试题
(A卷)
专业:计算机应用技术
考试科目:数据结构与数据库原理
重要提示:考生必须将所有答案写在答题纸上,本试题上的任何标记均不作判题依据
第一部分:数据库系统原理
一、概念题(每小题3分,共15分)
1、数据模型
2、外码
3、日志文件及其作用
4、数据库设计
5、数据库系统用①描述现实世界的实体及实体间的联系。关系模型是用②表示实
体,用③表示实体间的联系。层将和网状模型是用④表示实体,用⑤表示实体间的联系,而用⑥实现实体间的联系。
其中,第5题供选择的答案有:
数据模型概念模型外模型内模型结点表
数据结构指针连线模式外模式内模式
数据描述语言数据操纵语言高级程序设计语言
二、简答题(每小题5分,共15分)
1、简述数据库系统的三级模式结构。
2、对数据库系统中的故障进行分类,并简述系统故障的恢复过程。
3、简述关系数据库实施完整性约束的内容有哪些?
三、(共14分)有一个成绩管理的数据库,它包含如下三张表:
(1) 学生表:STUDENT
学号姓名性别专业
(2) 课程表:COURSE
课程号课程名学时学分
(3) 成绩表:SCORE
学号课程号成绩学期
根据上面三张表,完成以下各题:
1、试用关系代数表示查询2002-2003学年第一学期(“02-03/1”)选修了“数据结构”课程
的学生姓名。(4分)
2、用SQL语句表示查询重修过“计算机原理”课程(即该课程在成绩表中有2条或2条
以上记录)的学生姓名及重修次数。(4分)
3、写出下列SQL语句的查询语义(即功能):
SELECT 姓名,课程名,成绩
FROM STUDENT S, COURSE C, SCORE SC
WHERE (S.学号=SC.学号) AND (C.课程号=SC.课程号) AND
SC.成绩=( SELECT MAX(SCORE.成绩)
FROM SCORE
WHERE SCORE.课程号=SC.课程号)
请给出三个实例关系表(其中学生表至少3个学生、课程表至少2门课程),并根据给出的实例关系表写出该SQL查询的执行结果。(6分)
四、(共13分)设有如下商品库存关系R:
请仅在R中已给出数据的范围内分析其函数依赖关系并解答如下问题:
1、R最高为第几范式?为什么?(3分)
2、将它分解为满足3NF范式的关系模式。(5分)
3、分解后比分解前有什么好处?为什么?(5分)
五、叙述在一个DBMS中,事务管理部件(恢复子系统、并发控制子系统)的主要职能及其分
别常用的基本技术和手段。(8分)
六、(共10分)假设数据库中数据项A、B和C的初值均为100。现有两个事务T1和T2,分别
包含如下操作:
事务T1:y=Read(C); x=Read(A); x=x+y; Write(A, x);
(即,读数据库中数据项C的值并赋给变量y;
读数据库中数据项A的值并赋给变量x;
变量x的值与变量y的值相加的结果赋给变量x;
将变量x的值写到数据库中数据项A中;)
事务T2:v=Read(C); u=Read(B); u=u+v; Write(A, u);
下面是利用锁机制来实现事务T1、T2的一个并发调度S:
T1T2
Slock C
Slock C
v=Read(C)
Unlock C
Slock B
y=Read(C)
Unlock C
Slock A
u=Read(B)
Unlock B
u=u+v
Xlock A
x=Read(A) 等待
Unlock A等待
Write(A, u) (获得排它锁,并实现写)
x=x+y
Xlock A
等待Unlock A
(获得排它锁,并实现写)Write(A, x)
Unlock A
完成以下解答:
1、调度S是否是可串行化调度?为什么?(4分)
2、利用锁机制给出关于事务T1、T2的一个可串行化并发调度S′(不能是串行调度),使它
与串行调度T1→T2的执行结果等价。并说明等价的理由。(6分)
第二部分:数据结构
一、概念题(每小题3分,共9分)
1、栈
2、二叉排序树
3、存储结构
二、简答题(每小题10分,共20分)
1、用类C 描述语言定义稀疏矩阵的三元组存储结构,并写出下列矩阵的存储表示。
⎥⎥⎥⎥⎥⎥⎥⎥⎦
⎤
⎢⎢⎢⎢⎢
⎢⎢⎢⎣⎡--=01
0000800900000001800000020000500M
2、若有一个待排序的无序序列为:{49,38,65,97,76,13,27,49},现用堆排序方法对其排序,
请图示初始堆的建立过程。
三、算法填空题(每空3分,共30分)
1、在以下算法中填上适当的类C 程序设计语言语句,使之实现求矩阵M 的转置矩阵T 的功能。其中:矩阵用三元组表示,mu 为矩阵行数、nu 为矩阵列数,tu 为矩阵非零个数,三元组(i, j, e)表示矩阵第i 行第j 列的值为e 。
Status TransposeSMatrix(TSMatrix M, TSMatrix &T) { ______________(1)_____________; if (T.tu){
for (col=1; col<=M.nu; ++col) num[col]=0;
for (t=1; t for (col=2; col T.data[q].i=M.data[p].j; T.data[q].j=M.data[p].i; T.data[q].e=M.data[p].e; _________(5)___________; }//for }//if return OK; }// TransposeSMatrix