- (计算题,20分)
设有两个关系R和S,求① R ∪ S R \cup S R∪S;② R − S R - S R−S;③ R × S R \times S R×S;④ ∏ C , A ( R ) \prod_{C,A}(R) ∏C,A(R);⑤ σ B > ′ 4 ′ ( R ) \sigma_{B>'4'}(R) σB>′4′(R) 关系R关系S
- (简答题,10分)
设有学生表S(SNO,SN)(SNO为学号,SN为姓名)和学生选课表SC(SNO,CNO,CN,G)(CNO为课程号,CN为课程名,G为成绩),试用SQL语言完成以下各题:
(1).建立一个视图 V-SSC(SNO,SN,CNO,CN,G),并按 CNO 升序排序;
(2).从视图 V-SSC 上查询平均成绩在90分以上的 SN、CN 和 G。
正确答案:
(1).CREATE VIEWV-SSC(SNO,SN,CNO,CN,G) AS SELECT S.SNO, S.SN,CNO,SC.CN,SC.G FROM S,SC WHERE S.SNO=SC.SNO ORDER BY CNO
(2).
SELECT SN,CN,G FROM V-SSC GROLIP BY SNO HAVING AVG(G)>90
- (简答题,30分)设学生课程数据库中有三个关系:
学生关系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) SELECT S#, SNAME FROM S,SC,C WHERE S.S#=SC.S# AND C.C#=SC.C# AND CNAME=‘MATHS’
(2) SELECT S# FROM SC WHERE C#=‘C1’ AND S# IN ( SELECT S# FROM SC WHERE C#=C2’)
(3) SELECT S#, SNAME,AGE FROM S WHERE SEX=‘女’ AND AGE BETWEEN 18 AND 20
(4) SELECT S#, AVG(GRADE) ‘平均成绩’ FROM SC GROUP BY S# HAVING AVG(GRADE)>80
(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) SELECT SNAME FROM S,SC WHERE S.S#=SC.S# GROUP BY SNAME HAVING COUNT(*)>3
- (简答题, 10分)数据库的完整性概念与数据库的安全性概念有什么区别和联系?
正确答案:
数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。
- (计算题, 20分)
设有关系模式R(U,F),其中 :
属性集U为ABC,函数依赖集 F = A → B C , B → C , A → B , A B → C F={A \rightarrow BC,B \rightarrow C,A \rightarrow B,AB \rightarrow C} F=A→BC,B→C,A→B,AB→C
( 1 ) 计算A+
( 2 ) 求 F 的最小等价依赖集 Fmin
正确答案:
(1) A(0)=A,左部为A的函数依赖有 A → B , A → C A \rightarrow B,A \rightarrow C A→B,A→C ,于是A(1)=AUBC=ABC
A(1)=U,因此(A)+=ABC
(2) 分解右部属性为单一属性得到 F = ( A → B , A → C , B → C , A B → C ) F=(A \rightarrow B,A \rightarrow C,B \rightarrow C,AB \rightarrow C) F=(A→B,A→C,B→C,AB→C)
因 A → B , B → C A \rightarrow B,B \rightarrow C A→B,B→C,因此 A → C A \rightarrow C A→C 是多余的。又(AB)+=ABC,因此 A B → C AB \rightarrow C AB→C 是多余的。
故 F m i n = A → B , B → C Fmin={A \rightarrow B,B \rightarrow C} Fmin=A→B,B→C
- (计算题, 20分)
设有关系模式R(A,B,C,D),其上的函数依赖集:
F = A → C , C → A , B → A C , D → A C F={A \rightarrow C,C \rightarrow A,B \rightarrow AC,D \rightarrow AC} F=A→C,C→A,B→AC,D→AC
(1).计算(AD)+。
(2).求F的最小等价依赖集Fmin。
正确答案:
(1).令X={AD},X(0)=AD,X(1)=ACD,X(2)=ACD,故(AD)+=ACD。
(2).将F中的函数依赖右部属性单一化:
F1= ( A→C C→A B→A B→C D→A D→C)
在Fl中去掉多余的函数依赖:
∵B→A,A→C ∴B→C是多余的。
又∵D→A,A→C ∴D→C是多余的。 F2=(A→C C→A B→A D→A)
∵F2中所有依赖的左部都是单属性,∴不存在依赖左部有多余的属性
∴ Fmin= (A→C C→A B→A D→A)
函数依赖集的最小集不是惟一的,本题中还可以有其他答案,如
Fmin=( A→C C→A B→C D→C)
- (论述题, 15分)
有一学生运动会模型,描述如下:
a) 有若干班级,每个班级包括:班级号,班级名,专业,人数
b) 每个班级有若干运动员,运动员只能属于一个班,包括:运动员号,姓名,性别,年龄
c) 有若干比赛项目,包括:项目号,名称,比赛地点
d) 每名运动员可参加多项比赛,每个项目可有多人参加
e) 要求能够公布每个比赛项目的运动员名次与成绩
完成如下设计:
(1)画出该模型的E-R图,标明每个实体及其属性、实体间实体联系。
(2)将E-R模型转换成关系数据模型(要求:1:1和1:n的联系进行合并)。
(3)指出每个关系模式的关系码,在关系模型中用下划线标明。
说明:请在图上标注自己的学号和姓名
正确答案:
(2)关系模型
班级(班级号,班级名,专业,人数) 运动员(运动员号,姓名,性别,年龄,班级号)
项目(项目号,项目名,比赛地点) 比赛(运动员号,项目号,成绩,名次)
- (论述题, 15分)
设大学里教学数据库中有三个实体集。一是“课程”实体集,属性有课程号、课程名称;二是“教师”实体集,属性有教师工号、姓名、职称;三是“学生”实体集,属性有学号、姓名、性别、年龄。
设教师与课程之间有“主讲”联系,每位教师可主讲若干门课程,但每门课程只有一位主讲教师,教师主讲课程将选用某本教材;教师与学生之间有“指导”联系,每位教师可指导若干学生,但每个学生只有一位指导教师;学生与课程之间有“选课”联系,每个学生可选修若干课程,每门课程可由若干学生选修,学生选修课程有个成绩。
完成如下设计:
(1)画出该模型的E-R图,标明每个实体及其属性、实体间实体联系。
(2)将E-R模型转换成关系数据模型。(要求:1:1和1:n的联系进行合并)
(3)指出每个关系模式的关系码,在关系模式中用下划线标明。
说明:请在图上标注自己的学号和姓名
正确答案:
(1)
(2)转换成的关系模型应具有4个关系模式:
教师(工号,姓名,职称)
学生(学号,姓名,性别,年龄,教师工号)
课程(课程号,课程名称,教材,教师工号)
选课(学号,课程号,成绩)