《数据库原理与应用》复习题及参考答案完整版演示教学

精品文档

对于满足1NF的关系模式,消除非主属性对主关键字的部分依赖和传递函数依赖即为3NF

四、应用题:

1.设有如下所示的关系S(S#,SNAME,AGE,SEX)、C(C#,CNAME,TEACHER)和SC(S#,C#,GRADE),试用关系代数表达式表示下列查询语句:

(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。 (2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。 (3)检索”李强”同学不学课程的课程号(C#)。 (4)检索选修课程号为k1和k5的学生学号(S#)。

(5)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。 解:本题各个查询语句对应的关系代数表达式表示如下:

(1). ∏C#,CNAME(σTEACHER=‘程军’(C)) (2). ∏S#,SNAME(σAGE>21∧SEX=”男”(C)) (3). ∏C#(C)- ∏C#(σSname=‘李强’(S) ?? SC)

(4).∏S# (σC#=’k1’(SC))? ∏S# (σC#=’k5’(SC))

(5). ∏S#,SNAME( σCNAME=‘C语言’(S?? SC?? C)) 2.试问下列关系模式最高属第几范式,并解释其原因 1)R{(A,B,C,D) ,(A C, (C,D) B)} 2)R{(A,B,C,D) ,(A C, D B)} 3)R{(A,B,C) ,(A B, B A ,A C} 解:1) 候选码 (A,D)

非主属性为B和C, A C,(A,D) C) 所以存在非主属性对主码的部分函数依赖,因此不属于2NF

所以:R ∈1NF

2) 非主属性为B和C, A C,(A,D) C) 所以存在非主属性对主码的部分函数依赖,因此不属于2NF

3)第一步:确定候选码 A,B

第二步:判断是否满足BCNF(即判断决定因素是否含有码); 所以:R ∈BCNF

所以:R ∈1NF

收集于网络,如有侵权请联系管理员删除

精品文档

第4.5.6.7.8章 关系数据库标准语言SQL

一、选择题

1、SQL语言是 B 的语言,易学习。

A.过程化 B.非过程化 C.格式化 D.导航式 2、SQL语言是 C 语言。

A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库 3、SQL语言具有 B 的功能。

A.关系规范化、数据操纵、数据控制 B.数据定义、数据操纵、数据控制 C.数据定义、关系规范化、数据控制 D.数据定义、关系规范化、数据操纵

4、假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。

要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系 D 。 A.S B.SC,C C.S,SC D.S,C,SC 5、若用如下的SQL语句创建一个student表: CREATE TABLE student(NO Char(4) NOT NULL, NAME Char(8) NOT NULL, SEX Char(2), AGE int)

可以插入到student表中的是 B 。

A.(‘1031’,‘曾华’,男,23) B.(‘1031’,‘曾华’,NULL,NULL) C.(NULL,‘曾华’,‘男’,‘23’) D.(‘1031’,NULL,‘男’,23)

第6到第8题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下: S(S#,SN,SEX,AGE,DEPT) C(C#,CN)

SC(S#,C#,GRADE)

其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。

6、检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是 A 收集于网络,如有侵权请联系管理员删除

精品文档

A.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=’王华’) B.SELECT SN,AGE,SEX FROM S

WHERE SN=’王华’

C.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE WHERE SN=’王华’)

D.SELECT SN,AGE,SEX FROM S WHERE AGE>王华.AGE

7、检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是 D 。 A.SELECT S# FORM SC WHERE C#=“C2” AND GRAD>=

(SELECT GRADE FORM SC WHERE C#=“C2”) B.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE IN (SELECT GRADE FORM SC WHERE C#=“C2”)

8、检索学生姓名及其所选修课程的课程号和成绩。正确的SELECT语句是 C 。

A.SELECT S.SN,SC.C#,SC.GRADE FROM S

WHERE S.S#=SC.S#

WHERE S.S#=SC.S#

B.SELECT S.SN,SC.C#,SC.GRADE FROM SC

WHERE S.S#=SC.GRADE

二、填空题

1、SQL是 结构化查询语言 。

收集于网络,如有侵权请联系管理员删除

C.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE NOT IN (SELECT GRADE FORM SC WHERE C#=“C2”) D.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE>=ALL (SELECT GRADE FORM SC WHERE C#=“C2”)

C.SELECT S.SN,SC.C#,SC.GRADE FROM S,SC

D.SELECT S.SN,SC.C#,SC.GRADE FROM S.SC

精品文档

2、视图是一个虚表,它是从 一个或几个基本表 中导出的表。在数据库中,只存放视图的 定义 ,不存放视图的 视图对应的数据. 3、设有如下关系表R:

R(No,NAME,SEX,AGE,CLASS) 主关键字是NO

其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。 写出实现下列功能的SQL语句。

①插入一个记录(25,’李明’,’男”,21,’95031’);insert into R VALUES(25,’李明’,’男’,21,’95031’)

②插入’95031”班,学号为30、姓名为’郑和’的学生记录;update R SET NAME=‘王华’WHERE NO=10 ③将学号为10的学生姓名改为’王华’; insert into R(NO,NAME,CLASS) values S(30,’郑和’,’95031’) 。

④将所有’95101’班号改为’95091’;update r set class=“95091”where CLASS=’95101’。 ⑤删除学号为20的学生记录;delete from r where no=20 。 ⑥删除姓’王’的学生记录; delete from r where name like ‘王%’ 4、索引的类型分为:唯一、聚集和非聚集索引。

三、应用题

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)检索选修了三门课以上的学生的姓名 答案:

收集于网络,如有侵权请联系管理员删除

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4