数据库复习习题.docx

上传人:b****5 文档编号:28935866 上传时间:2023-07-20 格式:DOCX 页数:17 大小:23.55KB
下载 相关 举报
数据库复习习题.docx_第1页
第1页 / 共17页
数据库复习习题.docx_第2页
第2页 / 共17页
数据库复习习题.docx_第3页
第3页 / 共17页
数据库复习习题.docx_第4页
第4页 / 共17页
数据库复习习题.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数据库复习习题.docx

《数据库复习习题.docx》由会员分享,可在线阅读,更多相关《数据库复习习题.docx(17页珍藏版)》请在冰豆网上搜索。

数据库复习习题.docx

数据库复习习题

数据库复习习题

一、填空题(每空题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分)

某高校学生收费管理系统的关系模型如下:

学生(学号,姓名,性别,院系号,院系名,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 化学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1