8.并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?
并发操作带来的数据不一致性包括三类:
丢失修改:两个事务T1和T2读入同一数据并修改,一个事务T2的提交破坏了另一个事务T1提交的结果,导致T1的修改丢失。
不可重复读:事务T1读取数据后,事务T2执行更新操作,使T1无法再次显现前一次的读取结果。
读?脏?数据:事务T2执行更新操作,事务T1读取数据后,事务T2撤消了原来的操作,使T1读取数据为?脏?数据。
产生三类数据不一致性的主要原因是并发操作破坏了事务的隔离性。并发控制就是要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性。并发控制的主要技术是封锁、有效性确认
9. 设有关系模型R(A,B,C,D,E),F是R上成立的函数依赖集,F={ABC→DE,BC→D,D→E}, 试问R达到第几范式,并说明理由。
计算 π
3,2
(R), σ
A=D
(R×S)
三、分析题
1
请问(1)该关系最高属于几范式?为什么?
(2)该关系中是否存在异常?如果有,请将其规范化到高一级范式; (3)在关系规范化的过程中,如何保障分解的正确性?
1、(1)该关系的码是(工程号,材料号),由于存在非主属性对主属性的部分函数依赖,所以属于1NF
(2)存在异常,分解为:(工程号,材料号,数量,价格),(工程号,开工日期,完工日期) (3)保持无损连接性,保持函数依赖性
2、假设存款余额X=1000元,甲事务取走存款300元,乙事务取走存款 200元,其执行时间如下:
甲事务 时间 乙事务 读X T1
T2 读X 更新X=X-300 T3
T4 更新X=X-200 请问(1)上述并发操作会带来有什么问题?该如何解决?
(2)三级封锁协议的主要区别是什么?
(1)丢失修改,一级封锁协议,加锁 (写出详细的处理过程,无过程的适当扣分) (2)什么时候加什么锁,什么时候释放(持锁的时间)
3、 设T1,T2,T3是如下三个事务,其中R为数据库中某个数据项,设R的初值为0。
T1: R:=R+5 T2: R:=R*3 T3: R:=2
若允许三个事务并行执行,试列出所有可能的正确结果。采用什么手段,可以解决并行调度的不一致问题?
答:有6种可能的情况 (1)T1-T2-T3: R=2 (2)T1-T3-T2: R=6 (3)T2-T1-T3: R=2 (4)T2-T3-T1: R=7 (5)T3-T1-T2: R=21 (6)T3-T2-T1: R=11
采用封锁,可以解决并行调度的不一致问题。
4、以下各小题题基于教学数据库的三个基本表 学生 S(SNO,SNAME,AGE,SEX) 学习 SC(SNO,NO,GRADE)
课程 C(CNO,CNAME,TEACHER) (1)试用SQL的查询语句表达下列查询: 检索"王兰"同学不学的课程的课程号。 SELECT CNO
FROM C
WHERE CNO NOT IN (SELECT CNO FROM SC WHERE SNO IN (SELECT SNO FROM S
WHERE SNAME='王兰'))
(2)试用SQL的查询语句表达下列查询: 检索全部学生都选修的课程的课程号与课程名。
SELECT CNO,CNAME
FROM C
WHERE NOT EXISTS (SELECT * FROM S
WHERE NOT EXISTS (SELECT * FROM SC
WHERE SC.SNO=S.SNO AND SC.CNO=C.CNO))
(3). 试用SQL更新语句表达以下更新操作: 把低于总平均成绩的女同学成绩提高5%。
UPDATE SC
SET GRADE=GRADE*1.05
WHERE GRADE<(SELECT AVG(GRADE) FROM SC) AND SNO IN (SELECT SNO FROM S WHERE SEX='F')
5、有一个应用,包括三个实体集。 实体类型“商店”的属性有:商店编号,店名,店址,店经理。 实体类型“会员”的属性有:会员编号,会员名,地址。 实体类型“职工”的属性有:职工编号,职工名,性别,工资 。 每家商店有若干职工,但每个职工只能服务于一家商店。 每家商店有若干会员,每个会员可以属于多家商店。在联系中应反映出职工参加某商店工作的开始时间,会员的加入时间。
(1)试画出反映商店、职工、会员实体类型及联系类型的ER图; (2)将ER图转换成关系模式,并指出每个表的主键和外键; (3)指出以上关系模式所达到的范式。 (1)ER图
(2)
商店模式(商店编号,店名,店址,店经理)
主键:商店编号
职工模式(职工编号,职工名,性别,工资,商店编号,开始时间) 主键:职工编号 外键:商店编号 会员模式(会员编号,会员名,地址)
主键:会员编号
SM模式(会员编号,商店编号,会员加入时间) 主键:会员编号,商店编号 外键:会员编号;商店编号
(3)以上关系模式中,所有属性对侯选键都不存在传递依赖,因此都是BCNF。 6、设某商业集团数据库中有三个实体集。一是“仓库”实体集,属性有仓库号、仓库名和地址等;二是“商店”实体集,属性有商店号、商店名、地址等;三是“商品”实体集,属性有商品号、商品名、单价。
设仓库与商品之间存在“库存”联系,每个仓库可存储若干种商品,每种商品
存储在若干仓库中,每个仓库每存储一种商品有个日期及存储量;商店与商品之间存在着“销售”联系,每个商店可销售若干种商品,每种商品可在若干商店里销售,每个商店销售一种商品有月份和月销售量两个属性;仓库、商店、商品之间存在着“供应”联系,有月份和月供应量两个属性。 (1)试画出ER图,并在图上注明属性、联系类型;
(2)将ER图转换成关系模型,并说明主键和外键。
(2)据转换规则,(1)题的ER图可转换成6个关系模式: 仓库(仓库号,仓库名,地址) 商品(商品号,商品名,单价) 商店(商店号,商店名,地址)