精品文档
对于满足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)检索选修了三门课以上的学生的姓名 答案:
收集于网络,如有侵权请联系管理员删除