第7周(第八章:并发控制)
二、研讨课:
1. 判断下列并发调度是不是可串行化调度,为什么?修改如下并发调度为可串行化调度
时间 t0 t1 t2 t3 t4 t5 t6 t7 事务T1 Read A Update A=A+1 Read B Update B=B+1 数据库中值 A=10, B=2 事务T2 Read B Read A Update B=A+B
2. 设T1,T2,T3是如下三个事务:
2
T1: A:=A+2; T2: A:=A*2; T3: A:=A; 设A的初始值为0.
1) 若三个事务允许并发执行,则有多少种可能的正确的结果,请分别列举出来 2) 请给出一个可串行化的调度,并给出执行结果 3) 请给出一个非串行化的调度,并给出执行结果
4) 若三个事务都遵守两段锁协议,请给出一个产生死锁的调度。 1) A33=6
123 16 132 8 213 4 231 2 312 4 321 2
结果为4种,为2、4、8、16 2)
3)
3. 操作序列T1、T2、T3对数据A、B、C并发操作如下所示,T1与T2间并发操作(1) , T2与T3间并发操作(2) 。修改如下并发调度为可串行化调度 时间 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 T1 读A=50 读B=200 X1=A+B 读A=50 读B=100 X1=A+B 验算不对 T2 读B=200 B=B-100 写B T3 读B=200 B=B+50 写B
三、作业:
1. 课本Page196:习题8.10。 2. 课本Page196:习题8.11。 3. 课本Page196:习题8.12。
第8周(第八章:完整性和安全性;第九章分布式自学)
二、研讨课:
1. 写有关school数据库的完整性约束
(1)确保每个学生在同一学期同一门课只能选一个老师开设的课程。 create assertion asse1 check (not exists( select * from e as a,e as b where a.xh = b.xh and a.xq = b.xq and a.kh = b.kh
and a.gh <> b.gh )
);
(2)确保每门课程每年只开设一次。 Create assertion ass2 check (1>all(select count(distinct (A.课号))
From 开课表 as A,开课表 as B Where A.学年=B.学年 And A.课号=B.课号 Group by 学年,课号 ));
2. 设有三个关系模式:STUDENT(SNO,SNAME,AGE,SEX,SADDR,DNO) COURSE(CNO,CNAME,CHARA,CREDIT,DNO,TERM,TNAME) GRADE(SNO,CNO,TERM,PGRADE,EGRADE,GGRADE)
中文含义:学生(学号,姓名,年龄,性别,住址,所在系), 课程(课程号,课程名,课程性质,学分数,开课系,开课学期,教师), 成绩(学号, 课程号, 开课学期,平时成绩,考试成绩,总评成绩)。 请用指定的方法定义下列完整性约束:
1、每个学期每个学生至多可选8门课程(用断言)。 Create assertion ass1 check
( 8>=all(select count(distinct (cno))
From grade
Group by sno,term
) );
2、如果总评成绩修改后低于60分,那么,如果平时成绩大于80分,在修改后的 总评成绩上再增加考试成绩的8%,但不得超过60分(用SQL3触发器)。 create trigger trig1
after update of ggrade on grade referencing
old as oldtuple new as newtuple
when (newtuple.ggrage<60 and oldtuple.egrade>80)
update grade
set ggrade=newtuple.ggrade + oldtuple.pgrade * 0.08
where sno = newtuple.sno and cno = newtuple.cno and term = newtuple.term and (60>=newtuple.ggrade + oldtuple.pgrade * 0.08) update grade set ggrade=60 where sno = newtuple.sno and cno = newtuple.cno and term = newtuple.term and (60 3. 某图书借阅管理数据库有如下关系模式: 书籍表(书号, 书名, 数量, 分类, 状态, 出版社名) 读者表(借书证号, 姓名, 年龄, 电话, 地址) 借阅情况表(借书证号, 书号, 借书日期, 还书日期) 1)把对书籍表的查询、修改权和转授权授予用户admin。 Grant select,update on 书籍表 to admin With grant option 2)使每个人都能查询未出借图书的借阅情况,但不能直接查看借阅情况表。 create view A as Select 书籍表.所有属性 from 书籍表,借阅情况表 Where 书籍表.书号=借阅表.书号 and 书籍.状态=’未出借’ Grant select on A to public 三、 作业: 1. 课本Page196:习题8.19。 2. 课本Page196:习题8.20。 3. 课本Page215:习题9.5。 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库上海大学数据库2原理研讨+作业的个人解答(3)在线全文阅读。
相关推荐: