11. 参考答案:
(1)ЛCN (ЛCNO,SNO(SC)÷ЛSNO(S)ЛCNO,CN(C)) SELECT CN FROM C
WHERE NOT EXISTS (SELECT * FROM S WHERE NOT EXISTS (SELECT * FROM SC,S,C
WHERE SC.SNO=S.SNO AND SC.CNO=C.CNO));(3分)
(2)ЛSN(SσG>90(SC) σCN=’DB’(C) ) SELECT SN FROM S, SC, C
WHERE S.SNO=SC.SNO AND SC.CNO=C.CNO AND CN=’DB’AND G>90; (3)CTEATE VIEW SDB AS
SELECT SNO, SN FROM S, SC, C
WHERE S.SNO=SC.SNO AND SC.CNO=C.CNO AND C.CN=’DB’;
(4)UPDATE SC SET G=1.1*G WHERE CNO IN
(SELECT CNO FROM C
WHERE CN=’英语’);
12. 参考答案:
① 用SQL语句建立数据表SC,以(Sno, Cno)作为主键 CREATE TABLE SC ( Sno CHAR(5), Cno CHAR(1), Grade INT,
PRIMARY KEY (Sno,Cno) );
② 向Student表插入一条记录(95011, 张三, 女, 19,CS)
INSERT INTO Student VALUES('95011', '张三', '女', 19, 'CS'); ③ 检索计算机系(CS)所有女同学的姓名和年龄; SELECT Sname, Sage FROM Student
WHERE Sdept='CS' AND Ssex='女';
④ 检索选修了2号课程学生的学号、姓名、成绩,并按成绩降序排序; SELECT Student.Sno, Sname, Grade
FROM Student INNER JOIN SC ON Student.Sno=SC.Sno WHERE SC.Cno='2' ORDER BY Grade DESC
⑤ 建立一个信息系(IS)所有不及格(Grade<60)学生的视图vwStudent。
21
CREATE VIEW vwStudent AS SELECT Student.*
FROM Student INNER JOIN SC ON Student.Sno=SC.Sno WHERE Sdept='IS' AND Grade < 60
第四部分 关系数据库模式设计
(一)选择
1. ①A ②D 2. A 6. B 7. A. 8. C 11. C 12 . B 13. A 3. B
9. D 14. B 4. A 10. B 15. B
5. C
16. B 17. ①C ②B 18. C 19. B 20. B 21. C 22. ①E ②B ③E ④E ⑤B 23. C 26.D 27. ①A. ②B
(二)概念、术语
24. A 25. B
术语:
函数依赖:设有关系模式R(A1,A2,?,An)的子集X、Y。如果对于具体关系r的任何两个元组u和v,只要u[X]=v[X],就有u[Y]=v[Y],则称X函数决定Y,或Y函数依赖X,记为X→Y。
函数依赖集F的闭包F+:所有被F逻辑蕴含的函数依赖所组成的依赖集合称为F的闭包。 1NF:在一个关系模式R中,如果R的每一个属性的值域中的值都是不可再分的最小数据单位,则称R为第一范式,记为1NF。
2NF:如果一个关系模式R属于1NF,并且它的每一个非主属性都完全依赖于它的每一个候选键,则称R为第二范式,记为2NF。
3NF:如果一个关系模式R属于1NF,并且R的任何一个非主属性都不传递依赖于它的任何一个候选键,则称R为第三范式,记为3NF。
BNCF:设有关系模式R(U,F),F是R上的函数依赖,X和A是U的子集,且A不包含于X。如果对于F中的每个函数依赖X->A,X都是R的一个候选键,则称R是BCNF。
简述关系数据模型的规范化设计过程。 答:关系模型的规范化设计就是按照函数依赖理论和范式理论,对逻辑结构设计的第一步所设计的关系模型进行规范化设计,基本设计方法可归纳为如下5步:
(1) 参照每个关系模式的语义及其内涵,分别写出每个关系模式中各个属性之间的数据
依赖,进而确定每个关系模式的函数依赖集。
(2) 求每个关系模式的函数依赖集的最小依赖集。
(3) 将求得的每个关系模式分摊函数依赖集中的决定因素相同的函数依赖进行合并。 (4) 按照关系模式分解理论和函数依赖理论,对每个关系模式及与之相关的函数依赖进
行分解,使得分解后的关系模式 至少满足第三范式或BCNF范式。
(5) 通过以上的模式分解过程后,可能出现某些完全相同的关系模式,所以要将完全相
同的几个关系模式“合并”成一个单独的关系模式,即消除掉多余的关系模式。
22
(三)应用题
参考答案:
(1)每个关系模式的最小函数依赖集如下:
a.学生S 的最小函数依赖集如下:{Sno?Sname,Sno?Sbirth,Sno?Class,Class?Dept,DEPT?Rno}
传递依赖如下:
由于Sno?Dept,而Dept?Sno不成立 ,Dept?Rno(宿舍区),所以Sno与Rno之间存在着传递函数依赖。
由于Class?Dept,Dept ? Class不成立,Dept?Rno, 所以Class与Rno之间存在着传递函数依赖。
由于Sno?Class,Class?Sno不成立,Class?Dept, 所以Sno与Dept之间存在着传递函数依赖。
B、班级C(Class,Pname,Dept,Cnum,Cyear)的最小函数依赖集如下: {Class?Pname,Class?Cnum,Class?Cyear,Pname?Dept} 由于Class?Pname,Pname?Class不成立,Pname?Dept,所以C1ass与Dept之间存在着传递函数依赖。
C、系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下: {Dept?Dno,Dno?Dept,Dno?Office,Dno?Dnum} 根据上述函数依赖集可知,各属性间不存在传递依赖。
D、学会M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下:
{Mname?Myear,Mname?Maddr,Mname?Mnum}, 该模式不存在传递依赖。 (2)各关系模式的候选键、外键如下:
A、学生S候选键:Sno;外键:Dept、Class. B、班级C候选键:Class;外部键:Dept。 C、系D候选键:Dept或Dno;无外键。 D、学会M候选键:Mname;无外键。
2.已知学生关系模式 叁考答案:
(1)关系模式S的基本函数依赖如下:
Sno→Sname,SD→Sdname,Sno→SD,(Sno,Course) →Grade 关系模式S的候选键为:(Sno,Course)。
(2) 关系模式S是属于1NF的,候选键为(Sno,Course),非主属性中的成绩完全依赖于候选键,而其它非主属性对候选键的函数依赖为部分函数依赖,所以不属于2NF。 (3) 关系模式S的一个满足3NF,并保持函数依赖和无损连接性的分解如下: S1(Sno,Sname,SD) S2(SD,Sdname)
S3(Sno,Course,Grade)
3、叁考答案:
(1)关系模式R的基本函数依赖如下: (商店编号,商品编号) →部门编号,(商店编号,部门编号)→负责人,(商店编号,商品编号) →数量 (2)关系模式R的候选键为:(商店编号,商品编号, 部门编号)。
(3) 关系模式R是属于1NF的,码为(商店编号,商品编号, 部门编号),非主属性对键的函数依赖全为部分函数依赖,所以不属于2NF。
(4) 关系模式R的一个满足3NF,并保持函数依赖和无损连接性的分解如下: R1(商店编号,商品编号, 部门编号, 数量) R2(商店编号,部门编号, 负责人)
4.叁考答案:
23
①{{门店编号,顾客编号}→消费总额,顾客编号→顾客名称, 顾客编号→地址, 顾客编号→电话}
②{R1{门店编号,顾客编号,消费总额},R2{顾客编号,顾客名称,地址,电话}
5.叁考答案: 经分析有:
候选关键字:学号(每个学生只有惟一的学号)
最小依赖集:{学号→姓名,学号→出生日期,学号→班号,系名→宿舍区,班号→系名}
存在传递函数依赖:
传递
学号→系名→宿舍区,∴有学号————→宿舍区;
传递
班号→系名→宿舍区,∴有班号————→宿舍区;
传递 学号→班号→系名,∴有学号————→系名;
6.叁考答案: (1).R是BCNF。
R候选关键字为XY,F中只有一个函数依赖,而该函数依赖的左部包含了R的候选关键字XY。
(2).R是3NF。
R候选关键字为XY和XZ,R中所有属性都是主属性,不存在非主属性对的候选关键字的传递依赖。 (3).R是BCNF。
R候选关键字为X和Y,∵X→YZ,∴X→Y,X→Z,由于F中有Y→Z,Y→X,因此Z是直接函数依赖于X,而不是传递依赖于X。又∵F的每一函数依赖的左部都包含了任一候选关键字,∴R是BCNF。 (4).R是BCNF。
R的候选关键字为X,而且F中每一个函数依赖的左部都包含了候选关键字X。 (5).R是BCNF。
R的候选关键字为XY,而且F中函数依赖的左部包含了候选关键字XY。 (6).R是1NF。
R的候选关键字为WX,则Y,Z为非主属性,又由于X→Z,因此F中存在非主属性对候选关键字的部分函数依赖。
7. 叁考答案:
根据候选关键字的定义:如果函数依赖X→U在R上成立,且不存在任何X’? X,使得X→U也成立,则称X是R的一个候选关键字。由此可知,候选关键字只可能由A,C,E组成,但有E→A,所以组成候选关键字的属性可能是CE。
+
计算可知:(CE)=ABCDEP,即CE→U
++
而:C=CP,E=ABE ∴R只有一个候选关键字CE。
8.叁考答案:
根据候选关键字的定义,R的候选关键字只可能由F中各个函数依赖的左边属性组成,即C,S,所以组成候选关键字的属性可能是CS。
+
计算可知:(CS)=CGNST,即CS→U
++
而:C=CT,S=NS
∴R只有一个候选关键字CS。
9.参考答案:
+
(1)令X={B},X(0)=B,X(1)=BD,X(2)=BD,故B=BD。 (2) R的所有候选键是A,BC,CD,E。
24

