精品资料
(1)写出第(1)步 2分
(2)写出第(2)步 2分 (3)写出恢复子系统的UNDO、REDO操作 1分
3、简述参照完整性约束中应注意的几个重要问题。 (1) 外码能否接收空值问题
在实现参照完整性时,提供定义外码列是否允许空值的机制。 (2) 在被参照关系中删除元组的问题
①级联删除(CASCADES)
②受限删除(RESTRICTED)仅当参照关系中没有任何元组的外码值与被参照关系中要删除元组的主码值相同时,系统才执行删除操作,否则拒绝此删除操作。
③置空值删除(NULLIFIES)
删除被参照关系的元组,并将参照关系中相应元组的外码值置空值。 (3) 在参照关系中插入元组时的问题
①受限插入 ②递归插入
(4) 修改关系中主码的问题
①不允许修改主码 ②允许修改主码 评分标准:
(1)写出第(1)步 1分 (2)写出第(2)步 2分 (3)写出第(3)步 1分 (4)写出第(4)步 1分
4、简述存取控制机制的主要内容。
(1)定义用户权限,并将用户权限登记到数据字典中。
(2)合法权限检查,每当用户发出存取数据库的操作请求后,DBMS查找数据字典,根据安全规则进行合法权限检查,若用户的操作请求超出了定义的权限,系统将拒绝执行此操作。 评分标准:
(1)写出第⑴步 2分 (2)写出第⑵步 3分
三、编程与关系运算(每题5分,共20分)
设有四个关系
学生表(学号char(5),姓名varchar(10),姓别char(2),所属系varchar(20)) Student(sno,sname,sex,dept)
仅供学习与交流,如有侵权请联系网站删除 谢谢6
精品资料
课程表(课程号char(3),课程名varchar(20),先修课程char(3),学分tinyint,任课教师char(5))
Course(cno,cname,precno,ceredit,tno)
教师表(教师号char(5),教师名称varchar(10),姓别char(2)) Teacher(tno,tname,sex)
选课表(学号char(5)、课程号char(3),成绩tinyint) SC(sno,cno,grade)
1. 编写一个触发器,当对课程表进行修改时其学分只能在1到5分之间。 create trigger CourseUpdate on Course for update as begin
if exists (select * from inserted
where ceredit not between 1 and 5) rollback end
评分标准:
(1)写出create trigger on Course 1分
(2)写出for update 1分 (3)写出
if exists (select * from inserted
where ceredit not between 1 and 5) 2分
(4)写出rollback 1分
2. 编写一个存储过程,依据输入的课程号参数,统计该门课程的平均分和总分,
要求使用游标,不可以使用sum和avg命令。 create procedure SearchSumByCno(@cno char(3)) as
begin
declare @sum int,@avg numeric(5,1),@grade tinyint,@count tinyint select @sum=0,@count=0
declare myCursor cursor for
select grade from sc where cno=@cno open myCursor
fetch myCursor into @grade while(@@fetch_status=0)
仅供学习与交流,如有侵权请联系网站删除 谢谢7
精品资料
begin
select @sum=@sum+@grade select @count=@count+1 fetch myCursor into @grade end
close myCursor
deallocate myCursor if @count=0
select 0 '总分',0 '平均分' else begin
select @avg=@sum/@count
select @sum '总分', @avg '平均分' end
end
评分标准:
(1)定义游标 (2)定义变量 (3)变量赋值 (4)游标的打开、获取和关闭
1分 1分 1分 1分
(5)循环条件 1分
3. 使用关系代数语言查询没有选修‘刘红’老师所授课程的同学学号。
∏sno-(∏sno((SC) ∞∏cno(σtname=‘刘红’ (Teacher)∞Course)))
评分标准:
(1)σtname=’刘红’ (Teacher) 1分 (2)与Course表的连接 1分 (3)与SC表的连接 2分
(4)作差运算 1分
4. 使用元组演算语言查询选修了‘刘红’老师课程的同学姓名、课程名及相
应的成绩。 {t|ヨuヨvヨwヨs(Student(u)∧SC(v) ∧Course(w) ∧Teacher(s) ∧
s[2]= ‘刘红’∧s[1]=w[5]∧w[1]=v[2] ∧u[1]=v[1] ∧ t[1]=u[2] ∧t[2]=w[2] ∧t[3]=v[3])}
仅供学习与交流,如有侵权请联系网站删除 谢谢8
精品资料
评分标准:
(1)写出存在量词 1分 (2)写出连接运算s[1]=w[5]∧w[1]=v[2] ∧u[1]=v[1] 2分 (3)写出选取条件s[2]= ‘刘红’ 1分 (4)写出投影运算t[1]=u[2] ∧t[2]=w[2] ∧t[3]=v[3] 1分
四、综合设计题(共40分)
5. 已知:关系模式R(U,F)中R=ABCDEG
F={BE→G,BD→G, CDE→AB,CD→A, CE→G, BC→A,B→D,C→D}求:
+
(1)(BC)F,R的候选码。(5分)
(2)F的最小函数依赖集,并将模式R用算法分解到无损连接的3NF。(5分) 解:
+
(1)(BC)F=BCADG,R的候选码是:CE
(2)F的最小函数依赖集是:Fmin={B→G,CE→B,C→A,CE→G,B→D,C→D} 将R分解为3NF:P={BDG, BCEG,ACD}
评分标准:
+
(1)(BC)F=BCADG (2分) (2)R的候选码是:CE (3分) (3)F的最小函数依赖集是 (2分) (4)P={BDG, BCEG,ACD} (3分)
6. 设有关系模式R,U={E,G,H,I,J},F={E→I,J→I,I→G,GH→I,IH→EG},
假设有一个分解P={R1(IJ),R2(GHI),R3(IHE)},判断该分解是否保持函数依赖关系,并判断此分解是否具有无损连接性。(10分) 解 :
求出F的最小函数依赖集F’={ E→I,J→I,I→G,GH→I,IH→E}
若P={R1(IJ),R2(GHI),R3(IHE)},FP与F’等价,所以该分解保持函数依赖关系。
又因为: R1 R2 E b11 a1 G a2 a2 H b13 a3 I a4 a4 J a5 b25 仅供学习与交流,如有侵权请联系网站删除 谢谢9
精品资料
R3 a1 a2 a3 a4 b35 所以,可以得到没有一行全为a,所以该分解为有损分解。
评分标准:
(1)写出分解保持函数依赖关系 5分 (2)写出分解为有损分解 5分
7. 对于关系模式R(D,B,I,S,Q,O),设有两个函数依赖集F和G,
F={AB→C,D→EG,C→A,BE→C,BC→D,CG→BD,ACD→B,CE→AG}, G={AB→C,D→G,C→A,BE→C,BC→D,CG→B,D→E,CE→G}
试判断F和G是否等价。(5分)
解:因为F
评分标准: (1)F (2)G
(3)F和G等价 (1分)
G+,G
F+ 所以F和G等价
G+ (2分) F+ (2分)
8. 数据库设计
设计一个商品销售数据库,此数据库中保存有商品记录,包括商品号、名称、单价、类别、单位。客户记录包括客户号、客户名、客户地址、联系。一个客户有多个地址。销售记录有客户、商品、销售数量、订货日期和发货地址。要求: (1)画出E-R图(5分)
(2)根据需要可以增加属性,转换为满足3NF的关系模式(5分) (3)给出主键约束和外键约束(5分) (4)关系名和属性名用汉字
(1)画出E-R图(5分)
商品号 商品名 单价 类别
m n 订货 商品
订货日期 销售数量 仅供学习与交流,如有侵权请联系网站删除 谢谢10 单位 发货地址 客户 客户号 客户名 地址 联系方式