DB 复习Word文件下载.docx
《DB 复习Word文件下载.docx》由会员分享,可在线阅读,更多相关《DB 复习Word文件下载.docx(13页珍藏版)》请在冰点文库上搜索。
C.某个DBMS所支持的数据模型D.包括存储结构和存取方法的物理结构
12.为了防止一个用户的工作不适当地影响另一个用户,应该采取____C____。
A.完整性控制B.安全性控制C.并发控制D.访问控制
13.不允许任何其他事务对这个锁定目标再加任何类型锁的锁是___B___。
A.共享锁B.排它锁
C.共享锁或排它锁D.以上都不是
14.数据库恢复的基础是利用转储的冗余数据。
这些转储的冗余数据包括___C____。
A.数据字典、视图、数据库后备副本B.数据字典、应用程序、日志文件
C.日志文件、数据库后备副本D.数据字典、应用程序、审计档案
15.设关系R(A,B,C)和S(B,C,D),下列各关系代数表达式不成立的是___C____。
A.
B.R
C.
D.R
S
得分
二、填空题(每空1分,10空,共10分)
1.在SQL中,只有①行列子集视图才可以执行更新操作。
2.SQL的数据更新功能主要包括②INSERT、③UPDATE和④DELETE三个语句。
3.并发操作带来数据不一致性包括三类:
丢失修改、⑤不可重复读_和⑥读脏数据。
4.在关系数据库的规范化理论中,在执行“分解”时,必须遵守规范化原则:
既要保持___⑦函数依赖____关系,又要具有__⑧无损_____连接性。
5.若关系R满足第三范式,说明在R中消除了非主属性对码的⑨部分函数和传递函数依赖。
6.数据字典通常包括数据项、数据结构、数据流、⑩数据存储、和处理过程五个部分。
三、简答题(每题5分,共20分)
1.什么是数据库的安全性?
(2分)数据库安全性控制有哪些常用方法?
(3分)
答:
数据库的安全性是指保护数据库,防止不合法的使用所照成的数据泄露、更改和破坏。
数据库安全性控制的方法主要有:
(1)用户标识和鉴别;
(2)存取权限的控制;
(3)视图机制;
(4)审计;
(5)数据加密。
2.什么是游标?
(1分)请写出嵌入式SQL使用游标的步骤?
(4*1分)
游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,每个游标都有名字。
游标的步骤为:
(1)说明游标。
EXECSQLDECLARE<
游标名>
CURSORFOR<
SELECT语句>
;
(2)打开游标。
EXECSQLOPEN<
(3)推进游标指针并取当前记录。
EXECSQLFETCH<
INTO<
主变量>
[<
指示变量>
][,……];
(4)关闭游标。
EXECSQLCLOSE<
3.为保证数据库是可恢复的,登记日志文件时必须遵循哪两条原则?
(2分)其作用是什么?
必须遵循的原则:
(1)登记的次序严格按并发事务执行的时间次序;
(2)必须先写日志文件,后写数据库。
作用:
如果先执行更新操作,再登记日志文件,那么一旦在更新已完而日志文件未登记时发生故障,则相关数据对象的旧值丢失,无法再恢复。
反之,如果先登记日志文件,再执行更新操作,那么一旦在两者之间发生故障,则不过多做一次无用的撤销,不影响系统的恢复。
4.数据库系统的生存期分成哪几个阶段?
(3分)在视图的集成中的各分E-R图之间的冲突主要有哪三类?
(2分)
数据库系统的生存期一般分为6个阶段:
需求分析,概念结构设计、逻辑结构设计、物理结构设计、数据库实现、数据库运行和维护。
各分E-R图之间的冲突主要有:
属性冲突、命名冲突、结构冲突。
四、SQL语言(每题3分,共30分)
已知学生成绩库中包括学生表S、学生选课表SC、课程表Course。
其关系模式如下:
S(Sno,Sname,Ssex,Sage,Sdept),SC(Sno,Cno,Cname,Grade)、Course(Cno,Cname,Lhour,Credit)。
其中:
Sno为学号,Sname为姓名,Ssex为性别,Sage为年龄,Sdept为系名;
Cno为课程号,Cname为课程名,Grade为选课分数,Lhour为学时,Credit为学分。
请写出实现下列功能的SQL语句:
1.创建学生表S,要求Sno为主关键字,同时Ssex只允许取“男”或“女”
createtableS(Snochar(4)primarykey,Snamechar(8),
Ssexchar(4)check(Ssexin(‘男’,‘女’)),Sagesmallint,Sdeptchar(6));
2.查询“信息系”的学生的姓名,要求不显示重名的学生。
selectdistinctSnamefromSwhereSdept=’信息系’;
3.按分数降序排序,输出“管理系”学生选修了“数据库原理”课程的学生的姓名和分数
selectSname,GradeFromS,SCwhereSdept=’管理系’andCname=’数据库原理’andS.Sno=SC.SnoorderbyGradedesc;
4.插入一条记录(25,’李明’,’男’,21,’信息系’)
insertintoSValues(25,’李明’,’男’,21,’信息系’);
5.删除姓“王”的学生记录
deletefromSwhereSnamelike‘王%’;
6.将S表中增加“政治面貌”列Poli,类型为字符型,长度为6
ALTERTABLESADDPoliCHAR(6);
7.查询有3门以上课程是85分以上的学生的学号及(85分以上的)课程数
SELECTSno,COUNT(*)
FROMSC
WHEREGrade>
=85
GROUPBYSno
HAVINGCOUNT(*)>
=3;
8.将所有选修“操作系统”课程的学生成绩增加5分
UPDATESC
SETGrade=Grade+5
WHERECnoIN
(SELECTCnoFROMCourseWHERECname=’操作系统’);
9.把查询S表和修改学生年龄的权限授予给所有用户
GRANTUPDATE(Sage),SELECTONTABLESTOPUBLIC;
10.建立一个名为savg的视图,要求该视图包含学生的学号及他的平均成绩
CREATEVIEWsavg(Sno,Gavg)
AS
SELECTSno,AVG(Grade)
GROUPBYSno;
五、数据库设计(每小题8分,2小题,共16分)
设要建立一个企业数据库,该企业有多个下属单位,每一位有多个职工,一个职工仅隶属于一个单位,且一个职工仅在一个工程中工作,但一个工程中有很多职工参加建设,有多个供应商为各个工程供应不同设备。
单位的属性有:
单位名、电话。
职工的属性有:
职工号、姓名、性别。
设备的属性有:
设备号、设备名、产地。
供应商的属性有:
姓名、电话。
工程的属性有:
工程名、地点。
请完成如下处理:
1.设计满足上述要求的E-R图。
2.将该E-R图转换为等价的关系模式方式,并用下划线标明每个关系中的关键字。
答:
(1)E-R图如下图:
(2)转换的关系模式:
单位(单位名,电话)
职工(职工号,单位名,工程名,姓名,性别)
设备(设备名,设备号,产地)
供应商(姓名,电话)
工程(工程名,地点)
供应(姓名,工程名,设备名,数量)
六、程序设计题(9分,两题任选一题)
注:
关系模式同第四题“学生成绩库”
1、创建触发器Trigger_St,实现当修改学生表(S)中的数据时,显示提示信息“该S表被修改了”;
最后删除该触发器Trigger_St。
创建触发器:
CREATETRIGGERTrigger_StonS
FORupdate
AS
PRINT'
该S表被修改了!
'
;
删除触发器:
DROPTRIGGERTrigger_StonS;
2、在学生成绩库中创建存储过程Proc_Cs,要求实现如下功能:
产生学分为3的课程的学生选课情况列表,其中包括课程号、课程名、学分、学号、姓名、性别等;
最后删除该存储过程。
创建存储过程:
CreateProcedureProc_Cs
as
selectSC.Cno,Cname,Credit,S.Sno,Sname,Ssex
fromSC,Course,S
whereSC.Cno=Course.CnoandSC.Sno=S.SnoandCourse.Credit=3;
删除存储过程:
DROPProcedureProc_Cs;
1.下面哪个不是数据库的特征_______D___。
A.可为各种用户共享,冗余度较小B.数据独立性较高
C.按一定数据模型组织、描述和储存D.不易扩展
2.若关系R满足第三范式,说明在R中消除了非主属性对码的__A____依赖。
A.传递函数B.多值C.部分函数和传递函数D.部分函数
3.设关系R和S的元组个数分别为30和200,关系T是R与S的笛卡尔积,则T的元组个数为__B_____。
A.230B.6000C.320D.170
4.为了方便用户使用数据库,常把SQL语言嵌入到某种高级语言中,嵌入SQL的高级语言称为___A____。
A.宿主语言B.自含语言C.查询语言D.嵌套语言
5.关系模型中三类完整性约束分别是实体完整性、参照完整性和___C__。
A.系统完整性B.操作完整性C.用户定义完整性D.数据完整性
6.将E-R图转换成关系模型时,若联系为M:
N,则该联系转换成关系时,其码为_____B___。
A.M端实体的码B.两端实体码的组合C.N端实体的码
D.既不包括M端实体的码,也不包括N端实体的码
7.防止不合语义的数据进入数据库,保证数据的正确性和相容性,是数据库__A___的定义。
A.完整性B.安全性C.恢复D.并发控制
8.在嵌入式SQL中,向主语言传递SQL执行状态信息主要用___B____。
A.游标量B.通信区C.指示变量D.主变量
9.数据库安全标准中,TCSEC/TDI又称紫皮书,将系统安全级别划分为四组共__C_____个等级。
A.六B.五C.七D.四
10.E-R图是数据库设计的工具之一,它适用于设计数据库的___D___
A.物理结构B.逻辑结构
C.局部结构D.概念结构
11.在SQL语言中的视图VIEW是数据库的___C__。
A.内模式 B.模式C.外模式D.存储模式
12.有关系S(SNO,SNAME,SAGE),C(CNO,CNAME),SC(SNO,CNO,GRADE)。
其中SNO是学生号,SNAME是学生姓名,SAGE是学生年龄,CNO是课程号,CNAME是课程名称。
要查询选修“数据库原理”课的年龄不小于20的全体学生姓名的SQL语句是SELECT SNAME FROMS,C,SCWHERE子句。
这里的WHERE子句的内容是D
A.SAGE>
=20 and CNAME=’数据库原理’
B.S.SNO=SC.SNO andC.CNO=SC.CNOandSAGEin>
=20and
CNAMEin‘数据库原理’
C.SAGEin>
=20 and CNAME in ‘数据库原理’
D.S.SNO=SC.SNOandC.CNO=SC.CNOandSAGE>
=20andCNAME=‘数据库原理’
13.学生表(id,name,sex,age,depart_id,depart_name),存在的函数依赖是id→{name,sex,age,depart_id};
dept_id→dept_name,其满足B
A.1NF B.2NF C.3NF D.BCNF
14.若系统在运行过程中,由于某种原因,造成系统停止运行,致使事务在执行过程中以非控制方式终止,这时内存中的信息丢失,而存储在外存上的数据未受影响,这种情况称为__C_。
A.事务故障B.介质故障C.系统故障D.运行故障
15.__B__用来记录对数据库中数据进行的每一次更新操作。
A.后援副本B.日志文件C.数据库D.缓冲区
1.关系数据模型中,二维表的列称为__属性______,二维表的行称为____元组_______。
2.候选码的诸属性称为_主属性______,不包含在任何候选码中的属性称为__非主属性__。
3.各分E-R图之间的冲突主要有三类:
__属性______、___命名_______和__结构_____。
4.数据库运行过程中可能发生的故障种类有事务内部故障、系统故障、_介质故障____、计算机病毒。
5.数据库设计的步骤通常分为六个阶段:
需求分析、概念结构设计、逻辑结构设计、
_____物理结构设计___________、数据库实施、数据库运行和维护。
三、简答题(每题5分,4题,共20分)
1.数据独立性包括哪两种独立性?
(1分)请分别描述这两种独立性的概念。
(2*2分)
逻辑数据独立性是指局部逻辑数据结构与全局逻辑数据结构之间的独立性。
当数据库的全局逻辑数据结构发生变化时,它不影响某些局部的逻辑结构的性质,应用程序不必修改。
物理数据独立性是指数据的存储结构与存取方法改变时,对数据库的全局逻辑结构和应用程序不必作修改的一种特性。
2.简述日志文件中需要登记的内容包括哪些?
(2分)每个日志记录的内容包括哪些?
日志文件登记内容包括:
各个事物的开始标记、各个事物的结束标记、各个事物的所有更新操作。
(2分)
记录的内容包括:
事物标识(标明是那个事物)、操作的类型(插入、删除或修改)、操作对象、更新前数据的旧值、更新后数据的新值。
3.请描述事务的概念(1分)及事务的四个特性?
(4分)
事务:
所谓事务是用户定义的一个操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。
事务具有四个特性:
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。
这个四个特性也简称为ACID特性。
⑴.原子性
事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
⑵.一致性
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。
如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,系统将事务中对数据库的所有已完成的操作全部撤消,滚回到事务开始时的一致状态。
⑶.隔离性
一个事务的执行不能被其他事务干扰。
即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
⑷.持续性
持续性也称永久性(Permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
接下来的其他操作或故障不应该对其执行结果有任何影响。
4.数据库恢复的基本技术有哪些?
(1分)请详细描述这几种方式。
恢复机制涉及的两个关键问题是:
第一,如何建立冗余数据;
第二,如何利用这些冗余数据实施数据库恢复。
建立冗余数据最常用的技术是数据转储和登录日志文件。
通常在一个数据库系统中,这两种方法是一起使用的。
所谓转储即DBA定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。
这些备用的数据文本称为后备副本或后援副本。
日志文件是用来记录事务对数据库的更新操作的文件。
不同数据库系统采用的日志文件格式并不完全一样。
概括起来日志文件主要有两种格式:
以记录为单位的日志文件和以数据块为单位的日志文件。
日志文件在数据库恢复中起着非常重要的作用。
可以用来进行事务故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复。
四、SQL语言(每题3分,10题,共30分)
设有关系模式:
xsqk(学号,姓名,性别,系别,班级,专业,出生年月,总学分,备注)
xskc(课程号,课程名,开课学期,学时,学分)
xscj(学号,课程号,成绩)
1.查询出生年月在“1981-01-01”至“1982-05-30”之间的学生情况;
SELECT*
FROMxsqk
WHERE出生年月BETWEEN‘1981-01-01’AND‘1982-05-30’;
2.查询姓名中包含“红”字的学生情况;
FROMxsqk
WHERE姓名LIKE‘%红%’;
3.统计“信息管理”专业的人数;
SELECTCOUNT(sno)AS信息管理人数
WHERE专业=’信息管理’;
4.统计每个学生每学期的最低分、最高分及平均分;
SELECTMAX(成绩)AS最高分,MIN(成绩)AS最低分,AVG(成绩)AS平均分
FROMxskc,xscj
WHERExskc.课程号=xscj.课程号
GROUPBY学号,开课学期;
5.向xskc表中插入一条记录,课程号为“111”、课程名为“计算机英语”、开课学期为5、学时为48、学分为3;
INSERTINTOxskc
VALUSE(‘111’,’计算机英语’,5,48,3)
6.查询总学分为空的学生情况;
WHERE总学分ISNULL;
7.用AlterTable命令,为xskc表增加一个缺省值得约束,约束名为Period_Def,要求实现学时列的默认值为56。
ALTERTABLExskc
ADDCONSTRAINTPeriod_DefDEFAULT56FOR学时;
8.用Update命令将xskc表中的计算机英语的开课学期改为4。
UPDATExskc
SET开课学期=4
WHERE课程名=’计算机英语’;
9.删除xsqk表中学号为“02020101”的记录;
DELETE
WHERE学号=’02020101’;
10.用SQL的GRANT命令给用户王明授予对xsqk表的SELECT权力,并且可以将该权利授予其他用户。
GRANTSELECTONxsqkTO王明
WITHGRANTOPTION;
科室:
科名,科地址,科电话,科主任名
病房:
病房号,床位号
医生:
姓名,职称,所属科室名,年龄,工作证号
病人:
病历号,姓名,性别,诊断
其中,一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。
1.根据语义绘制ER图
2.将ER图转换为关系模式。
2、答:
对应的关系模型结构如下:
科室(科名,科地址,科电话,科主任名)
病房(病房号,床位号,科室名)
医生(工作证号,姓名,职称,科室名,年龄)
病人(病历号,姓名,性别,主治医生,病房号)
六、程序设计题(9分,两题任选一题)
关系模式同第六题
1.用CreateProcedure命令创建一个名为AVG_PRO的存储过程,要求输入一个学号,根据该学生所选课程的平均成绩显示提示信息,如果平均成绩在60分以上,则显示“该学生综合成绩合格!
”否则,显示“此学生综合成绩不合格!
”
2.用CreateTrigger命令创建一个名为tri_update触发器要求修改xskc表的课程号时,同时修改xscj表相应课程号的值。
CREATEPROCEDUREAVG_PRO
@SNOCHAR(8)
AS
DECLARE@SAVGTININT
SELECT@SAVG=avg(成绩)
FROMxscj
WHERExscj.学号=@SNO
IF@SAVG>
=60
PRINT’此学生综合成绩合格!
’
ELSE
PRINT’此学生综合成绩不合格