数据库系统概论第十一章课后习题(部分)

数据库系统概论(第5版) 王珊 萨师煊 第11章课后习题

2.并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?

  • 丢失修改(Lost Update)
  • 不可重复读(Non-repeatable Read)
  • 读“脏”数据(Dirty Read),即:不正确的数据

解决方法:并发控制机制,主要技术有封锁,时间戳,乐观控制法和多版本并发控制等

3.什么是封锁?基本的封锁类型有几种?试述他们的含义

答:封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他事务不能更新此数据对象。

  • 排它锁(Exclusive Locks,简记为X锁,写锁)
    若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁为止。保证其他事务在T释放A上的锁之前不能再读取和修改A
  • 共享锁(Share Locks,简记为S锁,读锁)
    若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。保证其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改

6.什么是死锁?请给出预防死锁的若干方法

如果事务T1封锁了数据R1, T2封锁了数据R2:然后T1又请求封锁R1,因T2已封锁了R2于是T1等待T2释放R2上的锁;接者T2又申请封锁R1,因T1已封锁了R1,T2也只能等待T1释放R1上的锁。这样就出现了T1在等待T2而T2又在等待T1的局面,T1和T2两个事务永远不能结束,形成死锁。

  • 一次封锁法
  • 顺序封锁法

10.今有三个事务的一个调度r3(B)r1(A)w3(B)r2(B)r2(A)w2(B)r1(B)w1(A),该调度是冲突可串行化的调度吗?为什么?

  1. 由于r1(A)和w3(B)是不冲突操作,交换r1(A)、w3(B),可得
    r3(B)w3(B)r1(A)r2(B)r2(A)w2(B)r1(B)w1(A)
  2. 由于r1(A)和r2(B)r2(A)w2(B)是不冲突操作,交换,可得
    r3(B)w2(B)r2(B)r2(A)w2(B)r1(A)r1(B)w1(A)是一个串行调度
    所以原调度是冲突可串行化调度。

在这里插入图片描述

14.考虑T1和T2两个事务。

T1: R(A); R(B);B=A+B; W(B)
T2:R(B); R(A);A=A+B; W(A)

(1)改写T1和T2,增加加锁操作和解锁操作, 并要求遵循两阶段封锁协议。
在这里插入图片描述

(2)说明T1和T2的执行是否会引起死锁,给出T1和T2的一个调度并说明之
会引起死锁
在这里插入图片描述

第二章 关系数据库 1 .试述关系模型的三个组成部分。 答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 2 .试述关系数据语言的特点和分类。 答:关系数据语言可以分为三类: 关系代数语言。 关系演算语言:元组关系演算语言和域关系演算语言。 SQL:具有关系代数和关系演算双重特点的语言。 这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。 3 (略) 4 . 5 . 述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空? 答:实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。即属性F本身不是主属性,则可以取空值,否则不能取空值。 6.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式: 1)求供应工程J1零件的供应商号码SNO: πSno(σJno=‘J1’(SPJ)) 2)求供应工程J1零件P1的供应商号码SNO: πSno(σJno=‘J1’∧Pno=‘P1‘(SPJ)) 3)求供应工程J1零件为红色的供应商号码SNO: πSno(πSno,,Pno(σJno=‘J1‘ (SPJ))∞πPno(σCOLOR=’红‘ (P))) 4)求没有使用天津供应商生产的红色零件的工程号JNO: πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘ (S∞SPJ∞P) 5)求至少用了供应商S1所供应的全部零件的工程号JNO: πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ)) 7. 试述等值连接与自然连接的区别和联系。 答:连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。 8.关系代数的基本运算有哪些 ? 如何用这些基本运算来表示其他运算? 答:并、差、笛卡尔积、投影和选择5种运算为基本的运算。其他3种运算,即交、连接和除,均可以用这5种基本运算来表达。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pretend ^^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值