数据库复习习题.docx
- 文档编号:28935866
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:17
- 大小:23.55KB
数据库复习习题.docx
《数据库复习习题.docx》由会员分享,可在线阅读,更多相关《数据库复习习题.docx(17页珍藏版)》请在冰豆网上搜索。
数据库复习习题
数据库复习习题
一、填空题(每空题1分,共30分)
1、数据库系统是由〔〕、硬件、相关软件、应用程序、〔〕和人员一起组成的。
2、信息世界中,实体间的联系方式分为三种,分别是〔〕、〔〕、〔〕。
高校中学生和课程之间的联系是〔〕联系。
3、依据索引的顺序和数据的物理存储顺序是否相同可以将索引分为〔〕和〔〕,一个表只能有一个〔〕索引。
4、在SQLServer2000中,变量@snums是〔〕变量;全局变量必须以〔〕个”@”符号开头。
5、设有学生成绩表score(sno,cno,degree),要查询该表中记录数的正确的SQL语句是:
〔〕。
6、SQLServer的两种验证模式分别为〔〕和〔〕。
7、数据库系统的三级模式结构从外到内分别是〔〕、概念模式、〔〕。
8、数据库根据数据模型可以划分为3种,层次模型、〔〕和〔〕。
SQLServer2000是〔〕数据库。
9、当对表中的数据进行update操作时,先删除旧行,然后再插入新行。
被删除的行首先存放到〔〕表中,插入的新行被首先插入到〔〕表中。
10、删除表TabOrder的语句是〔〕。
11、〔〕是一个虚拟表,其内容是由查询定义的。
12、关系R是3NF,当且仅当R是2NF,并且所有非主属性都是〔〕于主码。
13、SQLServer支持SQL-92标准定义的4种隔离级别,分别是未提交读、〔〕、〔〕和可串行读。
SQLServer2000默认的事务隔离级别是〔〕。
14、设有学生成绩表score(sno,cno,degree),其中sno是学号、cno是课程号、degree是成绩,则查询各门课程的平均分大于60的学生学号及其平均成绩的SQL语句是:
〔〕
15、若要把数据库pubs备份到磁盘D的目录’D:
\database\backup’下,备份文件名为pubs.bak,正确的T-SQL语句是〔〕。
16、在关系模型中,一个关系对应着通常说的一张表,表中的一列即为一个〔〕。
二、单选选择题(每小题2分,共30分)
1、在关系数据库系统中,为简化用户的查询操作,且不增加数据存储空间,一般是创建〔〕。
【A】另一个表(table)【B】游标(cursor)
【C】视图(view)【D】索引(index)
2、关系模型有三类完整性约束:
实体完整性、参照完整性和用户定义的完整性。
定义外键实现的是哪一(些)类完整性?
〔〕。
【A】实体完整性【B】参照完整性【C】自定义完整性【D】全部都是
3、设有存储过程up_getdegree(@xhint=200501001,@cnochar(10)),它的功能是查询指定学号和课程号的学生成绩,现要使用该存储过程查询学号为200501001,课程号为‘45101211’的学生成绩,则正确的调用表达式是〔〕。
【A】execup_getdegree‘200501001’,default
【B】execup_getdegree200501001
【C】execup_getdegree45101211
【D】execup_getdegreedefault,‘45101211’
4、SELECT语句中,当select子句中使用聚合函数时,则select子句中非聚合函数包含的列必须〔〕。
【A】在where子句中出现【B】在orderby子句中出现
【C】在having子句中出现【D】在groupby子句中出现
5、在关系数据库设计中,绘制E-R图属于哪一阶段的任务?
〔〕。
【A】概念结构设计 【B】物理结构设计 【C】逻辑结构设计 【D】需求分析
6、若要查找学生表(student)中所有满足以下条件的学生信息,则正确的SQL语句是〔〕。
条件为:
手机号码(telephonechar(11))的第一位为1,第二位为3,第三位为9或8。
【A】SELECTtelephoneFROMstudentWHEREtelephoneLIKE'13[^8,9]%'
【B】SELECTtelephoneFROMstudentWHEREtelephoneLIKE'13[8,9]*'
【C】SELECTtelephoneFROMstudentWHEREtelephoneLIKE'13[8,9]%'
【D】SELECTtelephoneFROMstudentWHEREtelephoneLIKE'13[^8,9]*'
7、数据字典中的数据项描述由若干项内容组成,下列选项中不属于数据项描述的是〔〕。
【A】数据量 【B】数据类型 【C】取值范围 【D】数据长度
8、T-SQL中,删除表student中的所有信息的语句是〔〕。
【A】delete*fromstudent【B】deletefromstudent
【C】droptablestudent【D】dropviewstudent
9、创建索引应使用的语句是〔〕。
【A】createdefault【B】createrule
【C】createindex【D】createproc
10、设有关系学生(学号,姓名,性别,籍贯,入学年份,入学成绩),其中入学年份为int类型,入学成绩为float类型,其他字段为字符型。
若要查询不同入学年份,不同性别学生的平均入学成绩,应使用〔〕。
【A】select入学年份,性别,avg(入学成绩)from学生
【B】select入学年份,性别,avg(入学成绩)from学生groupby入学年份,性别
【C】select入学年份,性别,avg(入学成绩)from学生groupby入学年份
【D】select入学年份,性别,avg(入学成绩)from学生groupby性别
11、要把解除默认d_mail与表student的email列的绑定,正确的语句是〔〕。
【A】execsp_bindrule‘d_mail’,’student.email’
【B】execsp_unbindrule‘d_mail’,’student.email’
【C】execsp_bindefault‘d_mail’,’student.email’
【D】execsp_unbindefalt‘d_mail’,’student.email’
12.在T-SQL中,对数据进行汇总时既要显示明细,又要显示汇总值,应使用〔〕子句。
【A】where【B】having【C】compute【D】groupby
13、设学生表中学生的性别列只能取‘男’或’女’两个值,为了保证输入数据的正确性,不能使用〔C〕实现。
【A】规则【B】触发器【C】默认【D】check约束
14、在SQLServer2000中对游标操作时,可以通过变量@@fetch_status的值判断上一次fetch是否成功,若fetch成功则该变量的值为〔〕。
【A】0【B】1【C】-100【D】-1
15、设有关系模式,院系(院系ID,院系名称),专业(专业ID,专业名称,院系ID),若要创建一个触发器实现级联修改,即修改院系ID时,把该院系开设的专业的院系ID也一起修改,则正确的定义触发器的选项是〔〕。
【A】createtriggert1on院系forupdateasupdate专业set院系ID=(select院系IDfromdeleted)where院系ID=(select院系IDfrominserted)
【B】createtriggert1on院系forupdateasupdate专业set院系ID=(select院系IDfrominserted)where院系ID=(select院系IDfromdeleted)
【C】createtriggert1on专业forupdateasdeletefrom专业where院系ID=(select院系IDfrominserted)
【D】createtriggert1on专业forupdateasdeletefrom专业where院系ID=(select院系IDfromdeleted)
三、简答题(每小题5分,共10分)
1、简述死锁是如何形成的?
如何预防死锁的发生?
2、简述什么是事务?
事务的特点是什么?
四、T-SQL程序题(每小题4分,共20分)
已知关系模型:
商品(商品编号int,商品名称varchar(20),规格char(10),产地varchar(20)),主码是商品编号。
供应商(供应商编号int,名称varchar(20),等级char
(1)),主码是供应商编号。
商品订单(订单号int,商品编号int,数量int,单价money,订货日期datetime,供应商编号int),主码是订单号和商品编号。
商品库存(商品编号int,库存数量int,定价money),主码是商品编号。
请用SQL语句实现:
1、写出创建表“商品订单”的SQL语句。
2、写出查询没有订过货的商品信息的SQL语句。
3、创建存储过程p1实现查询指定供应商编号的商品订单明细,写出创建存储过程的SQL语句。
4、创建一个规则r_grade用于限制供应商等级只能输入’1’,’2’,’3’,并绑定到列“等级”。
5、写出查询各种商品的订货总量的SQL语句。
五、分析设计题(共10分)
某单位要有一个工资管理系统,系统中有如下关系:
员工(工号、姓名、性别、部门号、部门名、电话、住址);
工资(工号、年份、月份、基本工资、三项补贴、职务补贴、职称补贴、通信费、交通费、水费(扣)、电费(扣)、应发工资、扣款合计、实发工资)。
请完成下面的问题:
1、关系员工,满足哪一种范式?
要使关系达到3NF,应如何分解?
(4分)
2、如果该单位每个月给员工发放一次工资,关系工资的主键应如何设置?
(2分)
3、现在该单位发现工资管理系统有一个问题,即如果工资改革要增加或删除一个工资项,必须修改关系工资,并重新设计程序。
请你帮他们设计一个关系模式,使得工资项目的增删不需要修改数据库就能实现。
(4分)
一、填空题(每空题1分,共30分)
1、数据库、数据库管理系统
2、1:
1,1:
n,m:
n,m:
n
3、聚集索引,非聚集索引,聚集
4、局部,2
5、selectcount(*)fromscore
6、windows验证模式,混合验证模式
7、内模式、外模式
8、网状模型,关系模型,关系
9、deleted,inserted
10、droptableTabOrder
11、视图
12、非传递函数依赖
13、提交读,可重复读,提交读
14、selectsno,avg(degree)fromscoregroupbysnohavingavg(degree)>60
15、backupdatabasepubstodisk=’D:
\database\backup\pubs.bak’
16、字段
二、单选选择题(每小题2分,共30分)
1-5:
CBDDA
6-10:
CABCB
11-15:
DCCAB
三、简答题(每小题5分,共10分)
1、产生死锁的原因是两个进程已经各自锁定一个页,但是又要访问被对方锁定的页,导致两个进程都不能继续执行,形成一个等待圈,导致死锁。
死锁是不能避免的,但是可以预防,措施如下:
(1)按同一顺序访问对象;
(2)避免事务中的用户交互;(3)保持事务简短并在一个批处理中;(4)使用较低的隔离等级;(5)使用绑定连接。
2、事务是SQLServer中的单个逻辑单元,一个事务内的SQL语句作为一个整体执行,要么区别执行,要么都不执行。
事务的特点是:
原则性、一致性、隔离性和持久性。
四、T-SQL程序题(每小题4分,共20分)
1、
createtable商品订单(订单号int,商品编号int,数量int,单价money,订货日期datetime,供应商编号int,constraintpk_spddprimarykey(订单号,商品编号))
2、
select*from商品where商品编号notin(select商品编号from商品订单)
3、
createprocedureup1(@gysidint)
as
select*from商品订单where商品编号=@gysid
4、
createruler_gradeas@valin(‘1’,’2’,’3’)
execsp_bindrule‘r_grade’,’供应商.等级’
5、
Select商品编号,sum(数量)from商品订单groupby商品编号
五、分析设计题(共10分)
1、
满足2NF,要达到3NF分解为:
员工(工号(pk)、姓名、性别、部门号、电话、住址)
部门(部门号(pk)、部门名)
2、
应把(工号、年份、月份)设置为主键
3、
分解如下:
工资项目(项目编号(PK)、项目名、扣发标志、启用标志)
工资表(工号、年份、月份(PK)、应发工资、扣款合计、实发工资)
工资明细表(工号、项目编号、年份、月份(PK)、金额)
一、填空题(每空题1分,共30分)
1、实体联系模型的三要素是实体、属性和〔〕。
2、设有学生成绩表score(sno,cno,degree),其中sno是学号,cno是课程号,degree是成绩,则查询平均分大于60的课程号及其平均成绩的SQL语句是
〔〕。
3、常用数据模型有〔〕、〔〕、〔〕和面向对象模型。
4、设属性X和Y之间是1:
1的关系,则X和X之间存在函数依赖〔〕和〔〕。
5、存储过程是SQL语句和可选控制流语句的预编译集合,它可以带输出参数,但在定义存储过程时该输出参数必须使用〔〕进行说明。
6、设有学生成绩表score(sno,cno,degree),要查询该表中不同学生的个数,正确的SQL语句是:
〔〕。
7、SQL语句中,要对查询结果进行分组应使用〔〕子句,对查询结果进行排序应使用〔〕子句。
8、视图对应的是数据库系统的三级模式结构中的〔〕。
9、包含在一个事务中的所有SQL语句要么全部都执行,要么全部都不执行,这是事务的〔〕性。
10、要在teacher表的tname列上创建一个惟一索引idx_name,索引中列的排序规则是升序排序,正确的T-SQL语句是〔〕。
11、专门的关系运算有选择、〔〕、连接和〔〕。
12、数据库设计分为需求分析、〔〕、〔〕、物理结构设计、数据库实施和数据库运行和维护等六个阶段。
实体联系模型的设计属于〔〕设计阶段的工作。
13、数据库管理系统的主要功能是〔〕、〔〕、数据库运行管理功能和数据库的建立和维护功能。
14、事务是SQLServer的单个逻辑单元,有四个属性,分别是〔〕、〔〕、〔〕、〔〕。
15、关系R是1NF,当且仅当所有的属性都是〔〕属性。
16、传统的集合运算有〔〕、〔〕、〔〕和〔〕。
二、单选选择题(每小题2分,共30分)
1、使用索引可以提高数据的查询效率,但会降低数据更新速度,一个表只能有一个〔〕索引。
【A】非聚集索引【B】惟一索引【C】聚集索引【D】组合索引
2、设有存储过程up_getdegree(@xhint),它的功能是查询指定学号的学生成绩,现要使用该存储过程查询学号为‘200501001’的学生成绩,则正确的调用表达式是〔〕。
【A】execup_getdegree
【B】execup_getdegree200501001
【C】execup_getdegree‘200501001’
【D】execup_getdegree“200501001”
3、设有关系模式student(sno,sname,sex),score(sno,cno,degee),
course(cno,cname),其中student存放学生信息,score存学生成绩,course存放课程信息,sno,sname,sex,degree,cno,cname分别表示学号,姓名,性别,成绩,课程号和课程名。
若要查询最低分课程的名称应使用〔〕。
【A】selectcnamefromstudent,course,scorewheredegree=(selectmax(degree)fromscore)
【B】selectcnamefromstudent,course,scorewherestudent.sno=score.snoanddegree=(selectmax(degree)fromscore)
【C】selectcnamefromstudents,coursec,scorescwheres.sno=sc.snoando=oanddegree=(selectmax(degree)fromscore)
【D】selectcnamefromstudent,course,scorewherestudent.sno=score.snoando=oanddegree=(selectmin(degree)fromscore)
4、设有关系S(学号,课程号,课程名,成绩),主键是学号和课程号,且(学号,课程号)→成绩是完全函数依赖,(学号,课程号)→课程名是部分函数依赖,则关系S满足〔〕。
【A】1NF【B】2NF【C】3NF【D】BCNF
5、在SQLServer2000中用于存储数据的对象是〔〕。
【A】表【B】触发器【C】存储过程【D】视图
6、T-SQL中,删除视图student的语句是〔〕。
【A】delete*fromstudent【B】deletefromstudent
【C】droptablestudent【D】dropviewstudent
7、SQLserver2000默认的事务隔离级别是〔〕。
【A】未提交读【B】可重复读【C】可串行读【D】提交读
8、要通过表“student”创建一个新表“s1”,并且把“student”中的所有男生插入到“s1”中,正确的选项是〔〕。
【A】select*fromstudentintos1wheresex=’男’
【B】select*intos1fromstudentwheresex=’男’
【C】select*fromstudentintotables1wheresex=’男’
【D】select*intotables1fromstudentwheresex=’男’
9、设有一个表,表中的某个字段的值可以是0到10000个字符,则该字段的类型应定义为〔〕类型。
【A】char【B】varchar【C】text【D】int
10、关于视图,以下描述正确的是〔〕。
【A】视图和基本表完全一样,是数据库存储的地方,可对其添加、修改、删除。
【B】视图不存储数据,所以不能对视图进行添加、修改、删除。
【C】视图一旦建立,则可在视图和表之上再建立其它的视图。
【D】视图和SQL查询一样,一个查询的结果是二维表,而视图也是二维表。
11、创建默认应使用的语句是〔〕。
【A】createdefault【B】createrule【C】createindex【D】createtrigger
12、设有关系学生(学号、姓名、性别、籍贯、入学日期),其中入学日期为datetime类型,其他字段为字符型。
若要分组查询男女学生人数及其明细,应使用〔〕。
【A】select*from学生computecount(学号)by性别
【B】select*from学生orderby性别computecount(学号)by性别
【C】select性别,count(*)from学生groupby性别
【D】select性别,count(*)from学生groupby性别orderby性别
13、下列叙述正确的是〔〕。
【A】触发器是一种特殊的存储过程,用户可以显示地调用。
【B】视图和表是基本相同的,可以存放数据。
【C】要限制表中某一列的取值是字符‘0’或‘1’,可以使用约束,也可以使用规则。
【D】SQLServer中的全局变量可以自行定义和赋值。
14、在SQLServer2000中打开一个游标,游标中的行数存放在变量〔〕中。
【A】@cursor_rows【B】@@cursor_rows
【C】@@fetch_status【D】都不对
15、下列有关数据库的并发性和事务的隔离级别的叙述正确的是〔〕。
【A】事务的隔离级别越高,则数据库的并发性越好。
【B】适当降低事务的隔离级别,可以提高数据库的并发性。
【C】SQLServer默认的事务隔离级别是未提交读。
【D】事务的隔离级别和数据库的并发性是两个相互独立的东西,没有联系。
三、简答题(每小题5分,共10分)
1、简述SQLServer2000中游标的操作过程?
2、简述DBMS的主要功能?
四、T-SQL程序题(每小题4分,共20分)
已知关系模型:
学生关系S(snoint,snamechar(8),sexchar
(2)) ,主码为sno。
其中sno为学号,sname为姓名,sex为性别;
课程关系C(cnoint,cnamechar(20),teacherchar(8)),主码为cno。
其中cno为课程号,cname为课程名,teacher为任课教师;
选课关系SC(snoint,cnoint,degreefloat),主码为sno和cno。
其中sno为学号,cno为课程号degree为成绩。
请用SQL语句实现:
1、写出查询211号课程成绩高于该课程平均成绩的所有的成绩记录的SQL语句。
2、当更改学生关系中学生的学号时,希望同时更改选课关系中该生的学号,请写出实现该功能的触发器。
3、创建一个规则r_degree,它只能取0到100之间的值,并绑定到选课关系(SC)的成绩列(degree)。
4、写出查询同时选修过“数据库”和“数据结构”这两门课程的学生信息的SQL语句。
5、写出修改表C,添加惟一约束限制课程名不能重复的SQL语句。
五、分析设计题(共10分)
某高校学生收费管理系统的关系模型如下:
学生(学号,姓名,性别,院系号,院系名,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 复习 习题