暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
数据库.doc
22
4页
0次
2025-04-23
免费下载
2设有如下所示的关 S(S#,SNAME,AGE,SEX)C(C#,CNAME,TEACHER) SC(S#,C#,GRADE)试用关系代数表达式表示下
列查询语句:
(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)(1). ∏C#,CNAME(σTEACHER=‘程军’(C))
(2)检索年龄大于 21 的男学生学号(S#)和姓名(SNAME) (2). ∏S#,SNAME(σAGE>21∧SEX=男”(C))
(3) (SNAME) (3). ∏SNAME{swv
[∏S#,C#sc÷∏C#(σTEACHER=‘程军’(C))]}
(4)检索”李强”同学不学课程的课程号(C#)(4). ∏C#(C)- ∏C#(σSNAME=‘李强’(S) wv SC)
(5)检索至少选修两门课程的学生学号(S#)(5). ∏S#(σ[1]=[4]∧[2]≠[5] (SC × SC))
(6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)(6). ∏C#,CNAME(Cwv (∏S#,C#(sc)÷∏S#(S)))
(7)检索选修课程包含“程军”老师所授课程之一的学生学号(S#)(7). ∏S#(SCwv ∏C#(σTEACHER=‘程军’(C)))
(8)检索选修课程号为 k1 k5 的学生学号(S#)(8). ∏S#,C#sc÷∏C#(σC#=’k1’∨ C#=’k5’(C))
(9)检索选修全部课程的学生姓名(SNAME)(9). ∏SNAME{swv [∏S#,C#sc÷∏C#(C)]}
(10)检索选修课程包含学号为 2 的学生所修课程的学生学号(S#)(10). ∏S#,C#sc÷∏C#(σS#=’2’(SC))
(11)索选修课程名为“C 言”的学生学(S#)和姓(SNAME)(11). ∏S#,SNAME{swv [∏S#(SCwv σCNAME=‘C
语言’(C))]}
3、设学生课程数据库中有三个关系:
1
)检索选修课程名称为“
MATHS
的学生的学号与姓名。
1SELECT SNAME,AGE FROM S,SC,C WHERE S.S#=SC.S#
AND C.C#=SC.C# AND CNAME=’ MATHS’
2索至C1”C2”(2) SELECT S# FROM SC WHERE CNO=’C1’ AND S#
IN( SELECT S#
FROM SC WHERE CNO=’C2’)
318 20 18 20(3) SELECT S#,SNAME,AGE FROM S
WHERE AGE BETWEEN 18 AND 20
4)检索平均成绩超过 80 分的学生学号和平均成绩(4) SELECT S# ,AVG(GRADE) ‘平均成绩’ FROM SC GROUP BY
S# HAVING AVG(GRADE)>80
5 (5) SELECT SNAME FROM S WHERE NOT EXISTS ( SELECT *
FROM C
WHERE NOT EXISTS ( SELECT * FROM SC WHERE S#=S.S# AND C#=C.C# )
6)检索选修了三门课以上的学生的姓名(6) SELECT SNAME FROM S,SC WHERE S.S#=SC.S#
GROUP BY SNAME HAVING COUNT(*)>3
4、设学生-课程数据库中包括三个表:
1)查询选修课程包括“1042
号学生所学的课程的学生学号 1 SELECT DISTINCT SNO FROM SC SCX
WHERE NOT EXISTS ( SELECT * FROM SC SCY WHERE SCY.SNO = ' 1042' AND NOT EXISTS ( SELECT * FROM
SC , CZ WHERE SCZ.SNO=SCX.SNO AND SCZ.CNO=SCY.CNO))
2)创建一个计科系学生信息视图 S_CS_VIEW,包括 Sno 学号、Sname 姓名、Sex 性别; (2) CREATE VIEW S_CS_VIEW
As
SELECT SNO ,SNAME,SEX FROM STUDENT WHERE Sdept=’CS’
3
)通过上面第
2
题创建的视图修改数据,把王平的名字改为王慧平
(3) UPDATE S_CS_VIEW SET SNAME=’
王慧平’
WHERE SNAME=’ 王平’
4
)创建一选修数据库课程信息的视图,视图名称为
datascore_view
,包含学号、姓名、成绩。
(4) CREATE VIEW datascore_view
AS SELECT SNO SNAME GRADE FROM STUDENT,SC,COURSE WHERE STUDENT.SNO=SC.SNO AND
1
COURSE.CNO=SC.CNO AND CNAME=
数据库’
5
、已知学生关系模式
S(SnoSnameSDSdnameCourseGrade)
其中:Sno 学号、Sname 姓名、SD 系名、Sdname 系主任名、Course 课程、Grade 成绩。
(1) 写出关系模式 S 的基本函数依赖和主码。
(2) 原关系模式 S 为几范式?为什么?分解成高一级范式,并说明为什么?
(3) 将关系模式分解成 3NF,并说明为什么?
解答:
(1)关系模式 S 的基本函数依赖如下:
Sno→SnameSD→SdnameSno→SD(SnoCourse) →Grade
关系模式 S 的码为:(SnoCourse)。
(2)原关系模式 S 是属于 1NF ,码为(SnoCourse),非主属性中的成绩完全依赖于码,而其它非主属性对码的函数依赖为部
分函数依赖,所以不属于 2NF
消除非主属性对码的函数依赖为部分函数依赖,将关系模式分解成 2NF 如下:
S1(SnoSnameSDSdname)
S2(SnoCourseGrade)
(3) 将上述关系模式分解成 3NF 如下:
关系模式 S1 中存在 Sno→SDSD→Sdname,即非主属性 Sdname 传递依赖于 Sno,所以 S1 不是 3NF。进一步分解如下:
S11(SnoSname,SD) S12(SDSdname)
分解后的关系模式 S11S12 满足 3NF
关系模式 S2 不存在非主属性对码的传递依赖,故属于 3NF。所以,原模式 S(SnoSnameSDSdnameCourseGrade)
按如下分解满足 3NF
S11(SnoSnameSD) S12(SDSdname) S2(SnoCourseGrade)
6、设有如下关系 R
(1)它为第几范式? 为什么?
(2)是否存在删除操作异常?若存在,则说明是在什么情况下发生的?
(3)将它分解为高一级范式,分解后的关系是如何解决分解前可能存在的删除操作异常问题?
解答: (1) 它是 2NF
因为 R 的候选关键字为“课程名”。 依赖关系: 课程名→教师名,教师名 → 课程名,教师名→教师地址,所以 课程名→教师地址。即
存在非主属性“教师地址”对候选关键字课程名的传递函数,因此 R 不是 3NF。但:因为不存在非主属性对候选关键字的部分函数依赖,
所以 R 2NF
(2) 存在。
当删除某门课程时会删除不该删除的教师的有关信息。
(3) 分解为高一级范式如图所示。
R1 如下: R2 如下:
分解后,若删除课程数据时,仅对关系 R1 操作,教师地址信息在关系 R2 中仍然保留,不会丢失教师方面的信息。
2
of 4
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜