1、1 、设某商业集团数据库中有 3 个实体集。一是“公司”实体集,属性有公司编号、公司名、地址等;二是“仓库”实体集,属性有仓库编号、仓库名、地址等;三是“职工”实体集,属性有职工编号、姓名、性别等。公司与仓库间存在“隶属”联系,每个公司管辖若干仓库,每个仓库只能属于一个公司管辖;仓库与职工间存在“聘用”联系,每个仓库可聘用多个职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。(1) 试画出 ER 图,并在图上注明属性、联系的类型。(7 分)(2) 将 ER 图转换成关系模式集,并指出每个关系模式集,并指出每个关系模式主键。(8 分)解:(1)(2) 这个 ER 图可以转换 3 个关系
2、模式:公司(公司编号,公司名,地址)仓库(仓库编号,仓库名,地址,公司编号)职工(职工编号,姓名,性别,仓库编号,聘用,工资)地址2、 (9 分)已知以下三个关系模式: 学生关系模式 S ( S# , SN , AGE , SEX ) 学习关系模式 SC ( S# , C# , GRADE )课程关系模式 C ( C# , CN , TEACHER )。其中:S#-学号, SN-学生姓名, AGE-年龄, SEX-性别 ,C#-课程号, GRADE-成绩,CN-课程名,TEACHER-教师名。试用关系代数表达式表达以下每个查询语句:1) 检索选修课程号为 C2 学生学号与成绩。 (3 分)2)
3、 检索选修课程名为MATHS的学生学号与姓名。 (3 分)3) 检索选修了全部课程的学生姓名。 (3 分)试用 SQL 语言表示以下每个查询语句:4) 检索选修课程号为 C4 的学生学号与姓名。 (3 分)5) 检索不选修 C2 课程的学生姓名与年龄。 (3 分)6) 检索所学课程包含 S3 所学全部课程的学生学号。 (3 分)答案: (1) S#,GRADE( SC.C#=C2 ( SC))(2) S.S#,S.SN( C.CN=MATHS (S SCC))(3) SN(S#,C#(SC) C#(SC) S)(4) Select Sno, Sname From S ,SC Where S.S
4、no=SC.Sno and SC. C#=C4(5)SELECT SN,AGEFROM SWHERE SNO NOT IN (SELECT SNOFROM SC,WHERE SC.SNO=S.SNO AND SC.C#=C2) ;(6)SELECT DISTINCT S#FROM SC SCXWHERE NOT EXISTS(SELECT *FROM SC SCYWHERE SCY.S#= S3 ANDNOT EXISTS(SELECT *FROM SC SCZWHERE SCZ.S#=SCX.S# ANDSCZ.C#=SCY.C#);3、 (10 分)根据给出的关系代数表达式的语法树,利用关
5、系代数表达式的优化算法对该语法树进行优化,画出优化后的标准语法树在供应关系数据库 S_P_J 中有供应商表 S,零件表 P,工程项目表 J,及供应情况表 SPJ 四个表。以下是“没有使用天津供应商生产的红色零件的工程号JNO” 对应的关系代数表达式为: Jno(J) - Jno( S.Sno=SPJ.SnoP.Pno=SPJ.PnoCity=天津Color=红(SSPJP)1) 用 SQL 语言 表示上述关系代数。 (5 分)2) 先将 关系代数 转化成语法树, 并对其进行优化处理,画出优化后的标准语法树。 (10 分)解:SQL 语句为: 语法树为:SELECT JNO FROM J WHE
6、RE JNO NOT IN(SELECT JNO FROM S,SPJ,P WHERE S.SNO=SPJ.SNO AND SPJ.PNO=P.PNO ANDS.CITY=天津 AND P.COLOR=红) Jno(J) - Jno( S.Sno=SPJ.SnoP.Pno=SPJ.PnoCity=天津 Color=红 (SSPJP) Jno(J)- Jno( S.Sno=SPJ.Sno( P.Pno=SPJ.Pno( City=天津 ( Color=红 (SSPJP) Jno(J)- Jno( S.Sno=SPJ.Sno( P.Pno=SPJ.Pno( City=天津 (S)SPJ Color
7、=红 (P) Jno(J)- Jno( P.Pno=SPJ.Pno( City=天津 (S) SPJ Color=红 (P) Jno (J)- Jno( City=天津 (S) SPJ Color=红 (P) (7 分)优化后的标准语法树为:4、已知 F=ABC, CDE, ABD, DE和 G=AC, CD, AB, DE,请判断 F 与 G 是否等价?(15 分)解:1)判定 G F+ 因为 AF+=ABCDE,所以 AC F+, ABF+因为 CF+=CDE,所以 CD F+因为 DF+=DE,所以 DE F+ G F+成立2)判定 F G+因为(AB)G+=ABCDE ,所以 ABC
8、G+, 因为 CG+=CDE,所以 CDE G+ 因为 DG+=DE,所以 DEG+因为 AG+=ACBDE,所以 AD G+,AB G+ F G+成立 F+=G+,即 F 与 G 等价。5、 (10 分)设有关系模式 R,其中 U=A,B,C,D,F=AC,CA,BAC,DAC,BDA,X=AB。求 和最小函数依赖集合FXFm。解:(1)X(0)=AB AC, BAC X(1)= ABC X(2)= X(1) = ABC= X(2) = ABC.(3FX分)(2)求最小函数依赖集合 Fm将 F 中各函数依赖的右部属性单一化:F1=AC,CA,BA,BC,DA,DC,BDA.(2分)去除函数依
9、赖中多余的属性:BA,DU,BDA 是多余的,可去除。即:F2=AC,CA,BA,BC,DA,DC (2分)去除多余的函数依赖:BA 和 BC 之一是多余的DA 和 DC 之一是多余的所以得到如下结果F3=AC,CA,BA,DA 或 F3=AC,CA,BC,DC 或 F3=AC,CA,BA,DC 或 F3=AC,CA,BC,DA Fm= F3 (写对其中一个 F3,即可得 3 分).(3 分)6、 (15 分)关系模式 P(A,B ,C,D ,E,F ,G,H,I,J) 满足下列函数依赖:FD= ABDB,ABG,BF ,CJ,CJ I ,G H ,求 FD 的最小函数依赖集,并判断该关系模式
10、属于几范式。 解:求 Fm:(12 分)(1)逐一检查 F 中各函数依赖 Fdi:XY, 若 Y=A1A2 Ak,k 2,则用 XA j |j=1,2, k 来取代 XY 。这一步已不用做了,F 中所有函数依赖右边都是单个属性的。(2)逐一检查 F 中各函数依赖 FDi:XA ,令 G=F-XA ,若 AXG+, 则从 F 中去掉此函数依赖。检查 ABDB: 令 G=F-ABDB, BABDG+ =ABDFGH, 所以将 ABDB 从 F 中去掉, F=AB G,BF,C J,CJ I ,GH再检查 ABG:令 G=F-ABG, GABG+ =ABF, 所以不能将 ABG 从 F中去掉再检查
11、BF:令 G=F-BF, FBG+=B, 所以不能将 BF 从 F中去掉再检查 CJ:令 G=F-CJ, JCG+=C, 所以不能将 CJ 从 F中去掉再检查 CJI:令 G=F-CJI , ICJG+=CJ, 所以不能将 CJI 从 F中去掉 再检查 GH:令 G=F-GH , HGG+=G, 所以不能将 GH 从 F中去掉所以,F=ABG,BF,CJ,CJI ,G H(3)逐一取出 F 中各函数依赖 FDi:XA ,设 X=B1B2Bm,逐一考查 Bi (i=l,2, ,m ),若 A(X-Bi )F+ ,则以 X-Bi 取代 X。F=ABG ,BF,CJ,CJI ,G H 检查 ABG:
12、 GAF+=(AB-B)F+=A 且 GBF+=(AB-A)F+=BF 所以 ABG 不能被取代再检查 CJI:IJ F+=(CJ-C)F+=J 但 ICF+=(CJ-J)F+=CJI 所以 CJI 被 CI 取代所以,F m=ABG,B F,CJ,CI ,G Hb)判断 R 为几范式:(3 分)R 为 1NF7、(15 分) 设 T1、T2、T3 是如下的三个事务: 事务 T1:X:= X +1;事务 T2:X:= X 2;事务 T3:X:= X 3; (1)假设这三个事务允许并发执行,X 的初值为 0,则 X 有多少可能的正确结果,把它们列举出来,并写出相应的并发执行的顺序。 (6 分)(2)请给出一个可串行化的调度,并给出执行结果。 (7 分)(2)并发事务的执行结果正确的标准是什么?(2 分)解:(1) (6 分)可能的正确结果有:1、2 和 8T1T2T3:X =8; T1T3T2:X =2;T2T1T3:X =1; T2T3T1:X =1;T3T1T2:X =2; T3T2T1:X =1;(2 ) (7 分)一个可串行化的调度如下图所示,执行结果为 8时间 T1 T2 T3t1 Slock Xt2 Y=X=0t3 Unlock Xt4 Xlock Xt5 Slock Xt6 X=Y+1 等待t7 Unlock X 等待