完整版数据库原理及应用习题有答案.docx
《完整版数据库原理及应用习题有答案.docx》由会员分享,可在线阅读,更多相关《完整版数据库原理及应用习题有答案.docx(33页珍藏版)》请在冰豆网上搜索。
完整版数据库原理及应用习题有答案
数据库系统概论复习资料
第一章
一选择题:
1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。
在这几个阶段中,数据独立性最高的是数据库系统阶段。
2.数据库的概念模型独立于具体的机器和DBMS。
3.数据库的基本特点是数据可以共享(或数据结构化)、数据独立性、数据冗余小,易扩充、统一管理和控制。
4.数据库是存储在计算机内有结构的数据的集合。
5.数据库中存储的是数据以及数据之间的联系。
6.数据库中,数据的物理独立性是指用户的应用程序与存储在磁盘上数据库中的数据是相互独立的。
7.数据库的特点之一是数据的共享,严格地讲,这里的数据共享是指多种应用、多种语言、多个用户相互覆盖地使用数据集合。
8.据库系统的核心是数据库管理系统。
9.下述关于数据库系统的正确叙述是数据库系统减少了数据冗余。
10.将数据库的结构划分成多个层次,是为了提高数据库的逻辑独立性和物理独立性。
11.数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)三者之间的关系是DBS包括DB和DBMS。
12.在数据库中,产生数据不一致的根本原因是数据冗余。
13.数据库管理系统(DBMS)是系统软件。
14.数据库管理系统(DBMS)的主要功能是定义数据库。
15.数据库系统的特点是数据共享、数据独立、减少数据冗余、避免数据不一致和加强了数据保护。
16.据库系统的最大特点是数据的三级抽象和二级独立性。
17.数据库管理系统能实现对数据库中数据的查询、插入、修改和删除等操作,这种功能称为数据操纵功能。
18.数据库管理系统是在操作系统支持下的系统软件。
19.据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是模式
20.数据库系统的数据独立性是指不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序。
21.信息世界中的术语,与之对应的数据库术语为记录。
22.层次型、网状型和关系型数据库划分原则是数据结构。
23.传统的数据模型分类,数据库系统可以分为三种类型层次、网状和关系。
24.层次模型不能直接表示m:
n关系。
25.数据库技术的奠基人之一E.F.Codd从1970年起发表过多篇论文,主要论述的是关系数据模型。
A.层次数据模型B.网状数据模型C.D.面向对象数据模型答案:
C
二、填空题
1.数据管理技术经历了人工管理、文件系统和数据库系统三个阶段。
2.数据库是长期存储在计算机内、有组织的、可共享的数据集合。
3.DBMS是指数据库管理系统它是位于用户和操作系统之间的一层管理软件。
4.数据库管理系统的主要功能有数据定义功能、数据操纵功能、数据库的运行管理和数据库的建立以及维护等4个方面。
5.数据独立性又可分为逻辑数据独立性和物理数据独立性。
6.当数据的物理存储改变了,应用程序不变,而由DBMS处理这种改变,这是指数据的物理独立性。
7.数据模型是由数据结构、数据操作②和完整性约束③三部分组成的。
8.数据结构是对数据库系统的静态特性的描述,数据操作是对数据库系统的动态特性的描述。
9.数据库体系结构按照模式、外模式和内模式三级结构进行组织。
10.实体之间的联系可抽象为三类,它们是1∶1、1∶m和m∶n。
11.数据冗余可能导致的问题有浪费存储空间及修改麻烦和潜在的数据不一致性。
三:
简答题:
1.什么是数据库?
答:
数据库是长期存储在计算机内、有组织的、可共享的数据集合。
数据库是按某种数据模型进行组织的、存放在外存储器上,且可被多个用户同时使用。
因此,数据库具有较小的冗余度,较高的数据独立性和易扩展性。
2.什么是数据库的数据独立性?
答:
数据独立性表示应用程序与数据库中存储的数据不存在依赖关系,包括逻辑数据独立性和物理数据独立性。
逻辑数据独立性是指局部逻辑数据结构(外视图即用户的逻辑文件)与全局逻辑数据结构(概念视图)之间的独立性。
当数据库的全局逻辑数据结构(概念视图)发生变化(数据定义的修改、数据之间联系的变更或增加新的数据类型等)时,它不影响某些局部的逻辑结构的性质,应用程序不必修改。
物理数据独立性是指数据的存储结构与存取方法(内视图)改变时,对数据库的全局逻辑结构(概念视图)和应用程序不必作修改的一种特性,也就是说,数据库数据的存储结构与存取方法独立。
3.什么是数据库管理系统?
答:
数据库管理系统(DBMS)是操纵和管理数据库的一组软件,它是数据库系统(DBS)的重要组成部分。
不同的数据库系统都配有各自的DBMS,而不同的DBMS各支持一种数据库模型,虽然它们的功能强弱不同,但大多数DBMS的构成相同,功能相似。
一般说来,DBMS具有定义、建立、维护和使用数据库的功能,它通常由三部分构成:
数据描述语言及其翻译程序、数据操纵语言及其处理程序和数据库管理的例行程序。
4.什么是数据字典?
数据字典包含哪些基本内容?
答:
数据字典是数据库系统中各种描述信息和控制信息的集合,它是数据库设计与管理的有力工具,是进行详细数据收集和数据分析所获得的主要成果。
数据字典的基本内容有:
数据项、数据结构、数据流、数据存储和处理过程5个部分。
第一章补充作业部分:
假设教学管理规定:
①一个学生可选修多门课,一门课有若干学生选修;
②一个教师可讲授多门课,一门课只有一个教师讲授;
③一个学生选修一门课,仅有一个成绩。
学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、课程名。
要求:
根据上述语义画出ER图,要求在图中画出实体的属性并注明联系的类型;
解答:
第2章关系数据库
一、选择题
1、关系数据库管理系统应能实现的专门关系运算包括选择、投影、连接。
2、关系模型中,一个关键字是可由一个或多个其值能惟一标识该关系模式中任何元组的属性组成。
3、自然连接是构成新关系的有效方法。
一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的属性。
4、关系运算中花费时间可能最长的运算是笛卡尔积。
5.关系模式的任何属性不可再分。
6.在关系代数运算中,五种基本运算为并、差、选择、投影、乘积。
7、设有关系R,按条件f对关系R进行选择,正确的是sf(R)。
8、如图所示,两个关系R1和R2,它们进行运算后得到R3。
R2
D
E
M
1
2
5
M
N
M
I
J
K
R1
A
B
C
A
C
D
1
2
1
X
Y
y
R3
A
B
C
D
E
A
C
C
1
1
2
X
Y
y
M
M
N
I
I
J
A.交B.并C.笛卡尔积D.连接答案:
D
二、填空题
1、一个关系模式的定义格式为关系名(属性名1,属性名2,…,属性名n)。
2、.一个关系模式的定义主要包括关系名、属性名、属性类型、
属性长度和关键字。
3、.关系代数运算中,传统的集合运算有并、交、差和笛卡尔积。
4、关系代数运算中,基本的运算是并、差、笛卡尔积、选择和投影。
5、关系代数运算中,专门的关系运算有选择、投影和连接。
6、关系数据库中基于数学上两类运算是关系代数和关系演算。
7、.已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主关键字是系编号,系关系的外关键字无,学生关系的主关键字是学号,外关键字系编号
三、应用题:
设有如下所示的关系S(S#,SNAME,AGE,SEX)、C(C#,CNAME,TEACHER)和SC(S#,C#,GRADE),试用关系代数表达式表示下列查询语句:
(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。
(2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。
(3)检索至少选修“程军”老师所授全部课程的学生姓名(SNAME)。
(4)检索”李强”同学不学课程的课程号(C#)。
(5)检索至少选修两门课程的学生学号(S#)。
(6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。
(7)检索选修课程包含“程军”老师所授课程之一的学生学号(S#)。
(8)检索选修课程号为k1和k5的学生学号(S#)。
(9)检索选修全部课程的学生姓名(SNAME)。
(10)检索选修课程包含学号为2的学生所修课程的学生学号(S#)。
(11)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。
解:
本题各个查询语句对应的关系代数表达式表示如下:
(1).∏C#,CNAME(σTEACHER=‘程军’(C))
(2).∏S#,SNAME(σAGE>21∧SEX=”男”(s))
(3).∏SNAME{s[∏S#,C#(sc)÷∏C#(σTEACHER=‘程军’(C))]}
(4).∏C#(C)-∏C#(σSNAME=‘李强’(S)SC)
(5).∏S#(σ[1]=[4]∧[2]≠[5](SC×SC))
(6).∏C#,CNAME(C(∏S#,C#(sc)÷∏S#(S)))
(7).∏S#(SC∏C#(σTEACHER=‘程军’(C)))
(8).∏S#,C#(sc)÷∏C#(σC#=’k1’∨C#=’k5’(C))
(9).∏SNAME{s[∏S#,C#(sc)÷∏C#(C)]}
(10).∏S#,C#(sc)÷∏C#(σS#=’2’(SC))
(11).∏S#,SNAME{s[∏S#(SCσCNAME=‘C语言’(C))]}
关系R和S如下图所示,试计算R÷S。
R
A
B
C
D
a
b
c
d
a
b
e
f
a
b
h
k
b
d
e
f
b
d
d
l
c
k
c
d
c
k
e
f
S
C
D
c
d
e
f
第3章关系数据库标准语言SQL
一、选择题
1、SQL语言是非过程化的语言,易学习。
2、SQL语言是关系数据库语言。
3、SQL语言具有数据定义、数据操纵、数据控制的功能。
4、SQL语言具有两种使用方式,分别称为交互式SQL和嵌入式SQL。
5、假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。
要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系S,C,SC。
6、如下面的数据库的表中,若职工表的主关键字是职工号,部门表的主关键字是部门号,SQL操作不能执行。
A.从职工表中删除行(‘025’,‘王芳’,‘03’,720)B.将行(‘005,’,‘乔兴’,‘04’,750)插入到职工表中
C.将职工号为,‘001’的工资改为700D.将职工号为,’038’的部门号改为‘03’答案:
B
7、若用如下的SQL语句创建一个student表:
CREATETABLEstudent(NOC(4)NOTNULL,
NAMEC(8)NOTNULL,
SEXC
(2),
AGEN
(2))
可以插入到student表中的是A。
A.(‘1031’,‘曾华’,男,23)B.(‘1031’,‘曾华’,NULL,NULL)
C.(NULL,‘曾华’,‘男’,‘23’)D.(‘1031’,NULL,‘男’,23)答案:
B
第8到第11题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:
S(S#,SN,SEX,AGE,DEPT)
C(C#,CN)
SC(S#,C#,GRADE)
其中:
S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。
8、检索所有比“王华”年龄大的学生姓名、年龄和性别。
正确的SELECT语句是SELECTSN,AGE,SEXFROMSWHEREAGE>(SELECTAGEFROMSHERESN=“王华”)。
9、检索选修课程“C2”的学生中成绩最高的学生的学号。
正确的SELECT语句是SELECTS#FORMSC
WHEREC#=“C2”ANDGRADE>=ALL(ELECTGRADEFORMSCHEREC#=“C2”)。
10、检索学生姓名其所选修课程的课程号。
正确的SELECT语句是SELECTS.SN,SC.C#,SC.GRADE
FROMS,SCWHERES.S#=SC.S#。
11、检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。
正确的SELECT语句是。
二、填空题
1、SQL是结构化查询语言。
2、视图是一个虚表,它是从一个或几个基本表中导出的表。
在数据库中,只存放视图的定义,不存放视图的视图对应的数据。
3、设有如下关系表R:
R(No,NAME,SEX,AGE,CLASS)
主关键字是NO
其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。
写出实现下列功能的SQL语句。
1插入一个记录(25,“李明”,“男”,21,“95031”);insertintoRvalues(25,“李明”,“男”,21,“95031”)。
2插入“95031”班学号为30、姓名为“郑和”的学生记录;insertintoRvalues(30,“郑和”,null,null,“95031”)。
3将学号为10的学生姓名改为“王华”;updateRsetname=“王华”whereno=10。
4将所有“95101”班号改为“95091”;updateRsetclass=“95091”whereclass=“95101”。
5删除学号为20的学生记录;deletefromRwhereno=20。
6删除姓“王”的学生记录;deletefromRwherenamelike‘王%’。
答案:
①INSERTINTORVALUES(25,“李明”,“男”,21,“95031”)
②INSERTINTOR(NO,NAME,CLASS)VALUES(30,“郑和”,“95031”)
③UPDATERSETNAME=“王华”WHERENO=10
④UPDATERSETCLASS=“95091”WHERECLASS=“95101”
⑤DELETEFROMRWHERENO=20
⑥DELETEFROMRRWHERENAMELIKE“王%”
第3章书面作业
1、设学生课程数据库中有三个关系:
学生关系S(S#,SNAME,AGE,SEX)
学习关系SC(S#,C#,GRADE)
课程关系C(C#,CNAME)
其中S#、C#、SNAME、AGE、SEX、GRADE、CNAME分别表示学号、课程号、姓名、年龄、性别、成绩和课程名。
用SQL语句表达下列操作
(1)检索选修课程名称为“MATHS”的学生的学号与姓名
(2)检索至少学习了课程号为“C1”和“C2”的学生的学号
(3)检索年龄在18到20之间(含18和20)的女生的学号、姓名和年龄
(4)检索平均成绩超过80分的学生学号和平均成绩
(5)检索选修了全部课程的学生姓名
(6)检索选修了三门课以上的学生的姓名
答案:
(1)SELECTSNAME,AGE
FROMS,SC,C
WHERES.S#=SC.S#
ANDC.C#=SC.C#
ANDCNAME=’MATHS’
(2)SELECTS#
FROMSC
WHERECNO=’C1’ANDS#IN(SELECTS#
FROMSC
WHERECNO=’C2’)
(3)SELECTS#,SNAME,AGE
FROMS
WHEREAGEBETWEEN18AND20
(4)SELECTS#,AVG(GRADE)‘平均成绩’
FROMSC
GROUPBYS#
HAVINGAVG(GRADE)>80
(5)SELECTSNAME
FROMS
WHERENOTEXISTS
(SELECT*
FROMC
WHERENOTEXISTS
(SELECT*
FROMSC
WHERES#=S.S#ANDC#=C.C#
)
)
(6)SELECTSNAME
FROMS,SC
WHERES.S#=SC.S#
GROUPBYSNAME
HAVINGCOUNT(*)>3
2、设学生-课程数据库中包括三个表:
学生表:
Student(Sno,Sname,Sex,Sage,Sdept)
课程表:
Course(Cno,Cname,Ccredit)
学生选课表:
SC(Sno,Cno,Grade)
其中Sno、Sname、Sex、Sage、Sdept、Cno、Cname、Ccredit、Grade分别表示学号、姓名、性别、年龄、所在系名、课程号、课程名、学分和成绩。
试用SQL语言完成下列项操作:
(1)查询选修课程包括“1042”号学生所学的课程的学生学号
(2)创建一个计科系学生信息视图S_CS_VIEW,包括Sno学号、Sname姓名、Sex性别;
(3)通过上面第2题创建的视图修改数据,把王平的名字改为王慧平
(4)创建一选修数据库课程信息的视图,视图名称为datascore_view,包含学号、姓名、成绩。
答案:
(1)SELECTDISTINCTSNO
FROMSCSCX
WHERENOTEXISTS
(SELECT*
FROMSCSCY
WHERESCY.SNO='1042'AND
NOTEXISTS
(SELECT*
FROMSCSCZ
WHERESCZ.SNO=SCX.SNOAND
SCZ.CNO=SCY.CNO));
(2)CREATEVIEWS_CS_VIEW
AS
SELECTSNO,SNAME,SEX
FROMSTUDENT
WHERESdept=’CS’
(3)UPDATES_CS_VIEW
SETSNAME=’王慧平’
WHERESNAME=’王平’
(4)CREATEVIEWdatascore_view
AS
SELECTSNO学号、SNAME姓名、GRADE成绩
FROMSTUDENT,SC,COURSE
WHERESTUDENT.SNO=SC.SNO
ANDCOURSE.CNO=SC.CNO
ANDCNAME=’数据库’
第4章数据库的安全性
一、选择题
1、下面哪个不是数据库系统必须提供的数据控制功能可移植性。
A.安全性B.C.完整性D.并发控制
2、保护数据库,防止XX的或不合法的使用造成的数据泄漏、更改破坏。
这是指数据的安全性。
3、数据库的完整性是指数据的正确性和相容性。
4、在数据系统中,对存取权限的定义称为授权。
5、数据库管理系统通常提供授权功能来控制不同用户访问数据的权限,这主要是为了实现数据库的安全性。
6、下列SQL语句中,能够实现“收回用户ZHAO对学生表(STUD)中学号(XH)的修改权”这一功能的是REVOKEUPDATE(XH)ONSTUDFROMZHAO
7、把对关系SC的属性GRADE的修改权授予用户ZHAO的SQL语句是GRANTUPDATE(GRADE)ONSCTOZHAO
8、在SQLServer中删除触发器用( DROP )。
二、填空题
1、保护数据安全性的一般方法是设置用户标识和存取权限控制。
2、安全性控制的一般方法有用户标识鉴定、存取控制、审计、数据加密和视图的保护五级安全措施。
3、存取权限包括两方面的内容,一个是要存取的数据对象,另一个是对此数据对象进行操作的类型4、在数据库系统中对存取权限的定义称为授权。
5、在SQL语言中,为了数据库的安全性,设置了对数据的存取进行控制的语句,对用户授权使用grant语句,收回所授的权限使用revoke语句。
6、DBMS存取控制机制主要包括两部分:
自主存取控制,_强制存取控制_。
7、 当对某一表进行诸如( insert )、( update )、( delete )这些操作时,SQLServer就会自动执行触发器所定义的SQL语句。
第5章数据库完整性
一、选择题:
1、在数据库系统中,保证数据及语义正确和有效的功能是(完整性控制)
2、关于主键约束以下说法错误的是(允许空值的字段上可以定义主键约束)
3、在表或视图上执行除了(Create)以外的语句都可以激活触发器。
4、数据库的_完整性_是指数据的正确性和相容性。
5、在数据库的表定义中,限制成绩属性列的取值在0到100的范围内,属于数据的_用户自定义_约束。
二、填空题
1.数据库的完整性是指数据的实体完整性.参照完整性_和用户定义完整性。
2、实体完整性是指在基本表中,主属性不能取空值。
3、参照完整性是指在基本表中,外码可以是空值或者另一个关系主码的有效值。
4、为了保护数据库的实体完整性,当用户程序对主码进行更新使主码值不惟一时,DBMS就拒绝此操作。
三、设计题
在学生课程管理数据库中创建一触发器,当向学生选课表插入记录时,检查该记录的学号在学生表中是否存在,检查该记录的课程号在课程表中是否存在,及选课成绩是否在0到100范围,若有一项为否,则不允许插入。
答案:
createtriggerstu_ins_tri
onsc
forinsert
as
begin
declare@s#char(6),@c#char(5),@gradeint
select@s#=sno,@c#=cno,@grade=score
frominserted
if(@s#notin(selectsnofromstudent))or(@c#notin(selectcnofromcourse))or(@gradenotbetween0and100)
ro