数据库系统原理试题秋试题A答题规范说明Word格式文档下载.docx
《数据库系统原理试题秋试题A答题规范说明Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据库系统原理试题秋试题A答题规范说明Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。
2.关系模型的完整性包括、参照完整性和用户自定义完整性。
3.实体的基属性是的属性。
4.关系中元组的个数称为关系的。
5.定义关系的约束包括和可以延迟检查的约束两种类型。
6.SQL语言具有数据定义、数据操作和三种功能。
7.死锁是多个事务由于而不能执行的一种状态。
8.JDBC的三层结构从上到下依次是JDBCAPI、JDBC驱动程序管理器和。
9.在关系模式R(U,F)中,如果R1NF,且不存在非码属性对码的传递函数依赖,则称R满足。
10.弱实体集的主码由强实体集的主码和组成。
二、选择题(全为单选,每小题1分,共10分)
1.一般地,数据库的逻辑层包含数据库中哪些对象()
A、全部表和全部视图。
B、部分表和部分视图。
C、全部表。
D、全部视图。
2.一个企业的不同职能部门之间形成一种隶属关系,这种隶属关系的映射基数是()
A、1:
1B、1:
nC、m:
nD、不确定
3.关于关系中的NULL值,以下说法错误的是()
A、NULL值不能作为主码的值。
B、NULL值不能作为外码的值。
C、对NULL值的测试不同于对整数类型值的测试。
D、两个取值为NULL值的属性列是相等的。
4.关于视图,以下说法正确的是()
A、视图是一个虚表,也是一个永久的数据库对象。
B、在视图上可以完成任意的查询操作。
C、在视图上可以完成任意的更新操作。
D、在视图上可以创建索引。
5.对于一元联系,以下说法正确的是()
A、一元联系不能表示标识性联系。
B、一元联系不能表示线性结构关系。
C、一元联系不能表示树形结构关系。
D、一元联系不能表示网状结构关系。
6.关于静态SQL语句的编译,正确的是()
A、静态SQL语句完全由主程序编译器编译。
B、静态SQL语句完全由DBMS编译。
C、静态SQL语句只需一次编译,可以执行多次。
D、静态SQL语句需要多次编译,可以执行多次。
7.事务的四个特性,哪一个和编程人员有关()
A、原子性B、一致性
C、隔离性D、持久性
8.对于一个定义了instead-of类型触发器的视图执行更新操作DML语句时()
A、既要执行视图的DML语句,也要执行触发器的语句块。
B、仅执行视图的DML语句,不执行触发器的语句块。
C、不执行视图的DML语句,仅执行触发器的语句块。
D、既不执行视图的DML语句,也不执行触发器的语句块。
9.执行checkpoint操作的正确顺序是()
将所有修改了的数据缓冲块输出到磁盘。
将一个日志记录<
checkpoint>
输出到稳定存储器。
将当前位于主存中的所有日志记录输出到稳定存储器。
A、
B、
C、
D、
10.任何一个二目关系模式R(A,B)可以达到的最高范式是()
A、1NFB、2NF
C、3NFD、BCNF
三、判断题(每小题1分,共10分)
正确的打√,错误的打×
。
1.数据库的外模式/模式映像可以保证数据的物理独立性。
()
2.一个联系的主码是由参与该联系的各个实体集的主码组成的。
3.关系表是数据库的一个永久对象,因此它的各个属性列的值必须在计算机中存储。
4.如果一个关系的外码不能取NULL值,该外码的取值就只能参照另一个关系的主码的取值,由于主码的取值不能重复,因此该关系的外码的取值也不会重复。
5.更新表的索引需要额外的开销,因此对于有更新操作的表不宜建索引。
6.一个视图的创建者就是视图的所有者,因此该用户就具有视图的查询和更新权限。
7.事务的一致性就是单个事务从开始到结束的执行过程中数据库状态的一致性。
8.如果一个调度的两条指令是不同数据项上的操作,则交换它们的顺序不会该表调度的执行结果。
9.当且仅当调度S的优先图中有环时产生死锁,无环时不产生死锁。
10.如果Y是X的一个真子集,那么XY是部分函数依赖。
四、关系代数解答题(每小题5分,共15分)
设有学生课程数据库中包含三个关系:
学生关系S、课程关系C、学生选课关系SC,如下图所示。
请写出以下查询问题的关系代数表达式,对于较复杂的查询问题最好能够写出求解步骤。
各个关系说明如下:
学生关系S:
Sno-学生号;
Sname-学生名;
Sex-性别;
SD-系名;
Age-年龄。
课程关系C:
Cno-课程号;
Cname-课程名;
Pcno-先修课程号;
Credit-学分。
学生选课关系SC:
Grade-成绩。
学生关系S
Sno
Sname
Sex
SD
Age
3001
王平
女
计算机
18
3002
张勇
男
19
4003
黎明
机械
4004
刘明远
1041
赵国庆
通信
20
1042
樊建玺
Cno
Grade
93
84
83
82
课程关系C学生选课关系SC
Cname
Pcno
Credit
数据库
数学
操作系统
数据结构
数字通信
信息系统
程序设计
(1)检索课程名为“数据库”课程的课程号和学分。
(5分)
第一步:
检索课程名为“数据库”的课程;
tmpCname=’数据库’(C)
第二步:
检索课程名为“数据库”课程的课程号和学分。
πCno,Credit(tmp)
最终结果:
πCno,Credit(Cname=’数据库’(C))
(2)检索没有选修课程号为1的学生的姓名和系名。
求选修了课程号为1的学生的学号;
tmp1πSno(Cno=1(SC))
求没有选修课程号为1的学生的学号;
tmp2πSno(S)-tmp1
第三步:
求没有选修课程号为1的学生的姓名和系名。
πSname,SD(S⋈tmp2)
πSname,SD(S⋈(πSno(S)-πSno(Cno=1(SC))))
(3)检索选修了选修了课程号为“2”的学生所选修的全部课程的学生号。
求选修了课程号为“2”的学生号;
tmp1πSno(Cno=’2’(SC))
求选修了课程号为“2”的学生所选修的全部课程;
tmp2πSC.Cno(SC⋈tmp1)
求选修了选修了课程号为“1”的学生所选修的全部课程的学生号。
πSno,Cno(SC)÷
tmp2
πSC.Cno(SC⋈πSno(Cno=’2’(SC)))
五、SQL语句解答题(每小题5分,共15分)
设有一个供应商、零件、工程项目数据库中包含四个关系:
供应商关系S、零件关系P、工程项目关系J和供应关系SPJ,如下图所示。
请写出以下查询问题的SQL语句,对于较复杂的查询问题最好能够写出求解步骤。
供应商关系S:
Sno-供应商编号;
Sname-供应商名称;
City-所在城市;
零件关系P:
Pno-零件编号;
Pname-零件名称;
Color-颜色;
工程项目关系J:
Jno-项目编号;
Jname-项目名称;
供应关系SPJ:
Jno-项目编号。
供应商关系S供应关系SPJ
City
S1
精益
天津
S2
胜锡
北京
S3
东方红
S4
金叶
S5
泰达
南京
Pno
Jno
Qty
P1
J1
200
J3
100
J4
700
P2
J2
P3
400
500
P5
P6
300
零件关系P
Pname
Color
螺母
红
螺栓
绿
螺丝刀
蓝
P4
凸轮
齿轮
工程项目关系J
Jname
三建
一汽
长春
造船厂
机车厂
上海
J5
弹簧厂
(1)找出为项目“J3”供应“蓝色”零件的供应商号码。
SelectSno
FromSPJ,P
WhereSPJ.Pno=P.PnoandP.Color=’蓝色’andSPJ.Jno=’J3’
(2)找出为“天津”的工程平均供应零件数目大于200的供应商号码。
找出为“天津”的工程供应零件的供应商号码及供应零件数目tmp1
SelectSPJ.Sno,SPJ.Jno,sum(Qty)SQty
FromSPJ,J
WhereSPJ.Jno=J.JnoandJ.City=’天津’
GroupbySPJ.Sno,SPJ.Jno
找出为“天津”的工程平均供应零件数目大于200的供应商号码及平均供应零件数目tmp2
Selecttmp1.Sno,avg(tmp1.SQty)
Fromtmp1
Groupbytmp1.Sno
Havingavg(tmp1.SQty)>
找出为“天津”的工程平均供应零件数目大于200的供应商号码。
Selecttmp2.Sno
Fromtmp2
From(Selecttmp1.Sno,avg(tmp1.SQty)
From(SelectSPJ.Sno,SPJ.Jno,sum(Qty)SQty
FromSPJ,J
WhereSPJ.Jno=J.JnoandJ.City=’天津’
GroupbySPJ.Sno,SPJ.Jno)tmp1
Groupbytmp1.Sno
Havingavg(tmp1.SQty)>
200)tmp2
(3)找出供应零件数目最多的供应商名字。
找出供应商号及供应零件数目tmp;
SelectSno,sum(Qty)SQty
FromSPJ
GroupbySno
找出供应商中供应零件数目最大值A;
Selectmax(SQty)
Fromtmp
找出供应零件数目最多的供应商名字。
SelectS.Sname
Fromtmp,S
Wheretmp.Sno=S.Snoandtmp.SQty=A
From(SelectSno,sum(Qty)SQty
FromSPJ
GroupbySno)tmp,S
Wheretmp.Sno=S.Snoandtmp1.SQty=
(Selectmax(SQty)
From(SelectSno,sum(Qty)SQty
FromSPJ
GroupbySno)
)
六、语法分析题(共8分)
以下是一段程序代码(主程序语言为C语言),请分析和嵌入式SQL相关的语法,程序中有2条语句有语法错误,请在程序中标识出来并予以纠正。
程序中用到的表salesreps的关系模式如下:
salesreps(nameVarchar(15),quotaNumber,salesNumber)
Main()
{
execsqlincludesqlca;
execsqlbegindeclaresection;
charrepname[16];
floatrepquota;
floatrepsales;
shortrepquota_ind;
execsqlenddeclaresection;
execsqldeclarerepcurscursorfor
selectname,quota,sales
fromsalesreps
wheresales>
quota
orderbyname;
wheneversqlerrorgotoerror;
whenevernotfoundgotodone;
execsqlopenrepcurs;
for(;
;
)
{
execsqlfetchrepcursinto:
repname,:
repquota:
repquota_ind,
:
repsales;
printf(“Name:
%\n”,repname);
If(repquota_ind<
0)
printf(“quotaisNULL\n”);
Else
printf(“Quota:
%f\n”,repquota);
printf(“Sales:
%f\n”,repsales);
}
error:
printf(“SQLerror:
%ld\n”,sqlca.sqlcode);
exit();
done:
execsqlcloserepcurs;
exit();
}
七、E-R模型设计题(共8分)
设有一个车辆管理系统,其中数据有:
车辆:
车辆号码、名称、型号;
驾驶员:
身份证号、姓名、地址、电话;
驾驶证:
驾驶证号、发证单位。
其中车辆、驾驶员及驾驶证间满足如下约定:
一辆车可以由多个驾驶员驾驶,每个驾驶员可以驾驶多辆车;
每个驾驶员可以有多个驾驶证,每个驾驶证只能供一个驾驶员使用。
请设计:
(1)该系统的E-R图,并在图上注明适当属性和联系的类型(即1:
1或1:
n或m:
n)。
(4分)
(2)将E-R图转换为关系模式,并指明主键及外键。
(2分)
(3)(2分)
(1)
(2)
车辆(车辆号码,名称,型号);
主键:
车辆号码;
外键:
无。
驾驶员(身份证号,姓名,地址,电话);
身份证号;
驾驶证(驾驶证号、发证单位);
驾驶证号;
驾驶(身份证号,车辆号码);
(身份证号,车辆号码);
身份证号,车辆号码。
拥有(身份证号,驾驶证号),主键:
身份证号,驾驶证号。
八、关系模式优化题(共8分)
假设某商业集团数据库中有一关系模式R如下:
R(商店编号,商品编号,数量,部门编号,负责人),
如果规定:
每个商店的每种商品只在一个部门销售;
每个商店的每个部门只有一个负责人;
每个商店的每种商品只有一个库存数量。
(1)根据上述规定,写出关系模式R的基本函数依赖。
(2)找出关系模式R的候选码。
(3)试问关系模式R最高已经达到第几范式?
为什么?
(4)如果R不属于3NF,请将R分解成3NF模式集。
(1)R的基本函数依赖
(商店编号,商品编号)部门编号;
(商店编号,部门编号)负责人;
(商店编号,商品编号)数量;
(2)R的候选码
由(商店编号,商品编号)商店编号,
又(商店编号,商品编号)部门编号,
故(商店编号,商品编号)(商店编号,部门编号)。
又(商店编号,部门编号)负责人,
故(商店编号,商品编号)负责人。
(传递函数依赖)
(商店编号,商品编号)数量,
故(商店编号,商品编号)(部门编号,负责人,数量)。
由此,(商店编号,商品编号)是R的候选码。
(3)
没有部分函数依赖,故R2NF,
存在传递函数依赖:
(商店编号,商品编号)负责人,故R3NF。
(4)R分解成3NF模式集
模式集R1:
R1(商店编号,商品编号,部门编号,数量)。
模式集R1存在的函数依赖:
(商店编号,商品编号)数量。
模式集R2:
(商店编号,部门编号,负责人)。
模式集R2存在的函数依赖:
(商店编号,部门编号)负责人。
九、日志分析题(共8分)
设某关系数据库系统采用了严格的两阶段封锁协议和数据库的立即更新技术进行并发事务的恢复控制。
当系统崩溃时产生了以下并发事务的日志记录。
假设在最近执行检查点时形成的特殊日志为checkpointL{T1,T2,T3,T4,T5},其中L{T1,T2,T3,T4,T5}为在检查点时活跃的事务列表(即这些事务的日志记录<
Ti,commit>
在执行检查点时还未写入日志文件)。
(1)请在以下日志记录中标出系统恢复后搜索日志的范围。
(2)请给出系统在恢复后搜索日志时所形成的两个列表。
(3)请在以下日志记录中标出系统恢复后执行Undo和Redo操作的起始位置和终止位置。
<
T0,Q,old,new>
T1,start>
T0,commit>
T1,Q,old,new>
T2,start>
T2,Q,old,new>
T3,start>
T4,start>
T4,Q,old,new>
T5,start>
checkpointL{T1,T2,T3,T4,T5}>
T1,commit>
T3,Q,old,new>
T4,commit>
T5,Q,old,new>
T6,Q,start>
T3,commit>
T7,Q,start>
T6,Q,old,new>
T8,Q,start>
T9,Q,start>
T7,Q,old,new>
T8,Q,old,new>
T9,Q,old,new>
T7,commit>
T10,Q,start>
T9,commit>
T10,Q,old,new>
T11,Q,start>
T12,Q,start>
T11,Q,old,new>
T12,Q,old,new>
T12,commit>
2.Redo-List和Undo-List列表。
Redo-List列表:
{T1,T3,T4,T7,T9,T12}
Undo-List列表:
{T2,T5,T6,T8,T10,T11}
十、外键语法题(共8分)
某个家族的家庭成员(PERSON)及其血缘关系(RELATION)定义和数据如下,
createtablePERSON(
Pnochar(20)primarykey,
Pnamechar(30)
)
createtableRELATION(
SonPnochar(20),
FatherPnochar(20),
primarykey(SonPno,FatherPno),
foreignkey(SonPno)referencesPERSON(Pno),
foreignkey(FatherPno)referencesPERSON(Pno)
家庭成员表PERSON血缘关系表RELATION
N1
N2
N3
N4
N5
SonPno
FatherPno
1.(4分)
2.(4分)
十一、附加题(10分)
THANKS!
!
致力为企业和个人提供合同协议,策划案计划书,学习课件等等
打造全网一站式需求
欢迎您的下载,资料仅供参考