1.
不能够成功执行,因为关系R的主码为AB,故而关系重属性AB不可以完全相同,关系中已经存在了A1,B1,故而不能够将相同的A,B字段值放入关系中
2.
update 职工 set 所在部门号 is null
where 所在部门号 in( select 部门号 from 部门 where 名称='开发部')
delete from 部门
where 名称='开发部';
3.
T2 修改一个数据,T1 随后读取这个数据。如果 T2 撤销了这次修改,那么 T1 读取的数据是脏数据。
该并发调度存在读脏数据的问题
4.关系模式重属性,ABE为LR类属性,CD为L类,CD+={CD}, ACD+{ABCDE}=U+, BCD+={ABCDE}, CDE+={ABCDE},故而关系的候选码为ACD,BCD,CDE
5.根据图中所示,T1,T2,T3事务在系统故障发生之前完成,故而需要重做,事务T4在故障发生时还未完成,故而该事务需要撤销处理
二、
1.
科室(科室编号,科室名)主键为科室编号
医生(医生编号,姓名,性别,年龄,职称,科室编号)主键为医生编号,外键为科室编号
护士(护士编号,姓名,性别,年龄,科室编号)主键为护士编号,外键为科室编号
病房(病房号,床位数,科室编号)主键为病房号,外键为科室编号
病人(病历号,姓名,性别,护士编号,医生编号,病房号,病例记录)主键为病例号,外键为护士编号,医生编号,病房号
三、
1.
1)π Pno, Pname (σ dept = '开发部' (member ⨝ PM))
2)π Pno, Pname ((π Mno (σ Mname = '王虹' (member)))- π Mno (σ Mname = '王虹' (PM))) ⨝ project))
3)CREATE TABLE member (
Mno INT PRIMARY KEY,
Mname VARCHAR(20),
gender CHAR(2),
Mage INT,
dept VARCHAR(30)
);
4) SELECT Pname
FROM project
GROUP BY Pno
HAVING COUNT(*) > 10;
5)SELECT PM.Mno, member.Mname
FROM PM
JOIN member ON PM.Mno = member.Mno
JOIN project ON PM.Pno = project.Pno
WHERE project.Pname = '项目AA';
(6)
SELECT project.Pno, project.Pname
FROM project
JOIN member ON PM.Mno = member.Mno
JOIN project ON PM.Pno = project.Pno
WHERE member.Mname = '王虹';
2.
1)根据关系的描述,销售模式的F={顾客编号->顾客名,商品编号->商品名,(年月日,顾客编号,商品编号)->数量,(年月日,商品编号)->定价}
根据函数依赖关系,关系模式R的候选码年月日,顾客编号,商品编号
2)关系模式属于1nf,关系中存在非主属性顾客名以及商品名,定价这些属性部分函数依赖候选码
3)关系模式拆分:
R1(顾客编号,顾客名)
R2(商品编号,商品名)
R3(年月日,顾客编号,商品编号,数量)
R4(年月日,商品编号,定价)
拆分后的关系属于3nf,关系R1的候选码为顾客编号,R2的候选码为商品编号,R3的候选码为年月日,顾客编号,商品编号,R4的候选码为年月日,商品编号
3.
(1) 可能的正确执行结果:
T1: B = A + 10, T2: A = B + 5
初始值:A = 0, B = 0
T1执行:B = 0 + 10 = 10
T2执行:A = 10 + 5 = 15
最终值:A = 15, B = 10
T2: A = B + 5, T1: B = A + 10
初始值:A = 0, B = 0
T2执行:A = 0 + 5 = 5
T1执行:B = 5 + 10 = 15
最终值:A = 5, B = 15
(2) 使两个事务遵守两段锁协议且不发生死锁的调度序列:
假设事务T1先开始,T2后开始,且T1先提交,T2后提交。
T1: B = A + 10, T2: A = B + 5
初始值:A = 0, B = 0
T1执行:获取A的共享锁,A = 0,获取B的排他锁,B = 0 + 10 = 10
T2执行:等待A的共享锁释放,获取A的共享锁,A = 10,获取B的排他锁,B = 10 + 5 = 15
T1提交:释放A和B的锁
T2提交:释放A和B的锁
最终值:A = 10, B = 15
在这个调度序列中,T1和T2遵守了两段锁协议,即在执行过程中先获取锁再释放锁,并且没有发生死锁。