数据库复习资料 下载本文

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个关系模式: 仓库(仓库号,仓库名,地址) 商品(商品号,商品名,单价) 商店(商店号,商店名,地址)