4.23学习总结

数据库原理第七章习题

1.试说明事务的概念及四个特征

答:事务是用户定义的数据操作系列,这些操作作为一个完整的工作单元,一个事务内的所有语句被作为一个整体,要么全部执行,要么全部不执行

四个特征为原子性、一致性、隔离性和持久性。

原子性指:事务的原子性是 指事务是数据库的逻辑工作单位,事务中的操作,要么都做,要么都不做。

一致性指:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

隔离性指:数据库中一 个事务的执行不能被其他事务干扰。

持久性指:事务一旦提交,则其对数据库中数据的改变就是永久的。

2.事务处理模型有哪两种?

答:一种是ISO制定的事务处理模型,即明尾暗头;另一种是T-SQL事务处理模型,即事务有明确的开始和结束标记。

3.并发控制的措施是什么?

答:在数据库环境下,进行并发控制的主要方式是使用封锁机制,即加锁。
具体的控制由锁的类型决定。
基本的锁类型有两种:排它锁(X锁)和共享锁(S锁)。
共享锁:若事务T给数据对象A加了S锁,则事务T可以读A,但不能修改A,其他事务只能再给A加S锁,而不能加X锁,直到T释放了A上的S锁为止。
,但不允许其他事A读取和修改T锁,则允许X加了A给数据对象T排他锁:若事务.
务再给A加任何类型的锁和进行任何操作。
4.设有如下三个事务,分别是 T1:B=A+1、T2:B=B×2 和 T3:A=B+1,请回答: (1)设 A 的初值为 2,B 的初值为 1,如果这三个事务并发执行,则可能的正确执行结果有哪些? (2)给出一种遵守两段锁协议的并发调度策略。
(1) T1-T2-T3: A 7, B 6 T1-T3-T2: A 4, B 6 T2-T1-T3: A 4, B 3 T2-T3-T1: A 3, B 4 T3-T1-T2: A 2, B 6 T3-T2-T1: A 2, B 3;
(2)记Y为临时变量,给出服从两段锁协议的并发调度策略如下: T1:S(A),R(A),Y=A+1,X(B),W(B,Y),UL(A),UL(B),C ; T2:S(B),R(B),Y=B*2,X(B),W(B,Y),UL(B),C;
5.当某个事务对某段数据加了S锁之后,在此事务释放锁之前,其他事务可以对此段数据加什么锁?
答:S锁(共享锁)。
6.什么是死锁?如何预防死锁?
死锁(Deadlock):在同时处于等待状态的两个或多个事务中,其中的每一个在它能够进行之前,都等待着某个数据、而这个数据已被它们中的某个事务所封锁,这种状态称为死锁。例如,事务T1在对数据R1封锁后,又要求对数据R2封锁,而事务T2已获得对数据R2的封锁,又要求对数据R1封锁,这样两个事务由于都不能得到封锁而处于等待状态,发生了死锁。
在数据库环境下,常用的预防方法有以下两种:
①一次加锁法:一次加锁法是每个事物必须将所有要使用的数据对象全部依次加锁,并要求加锁成功,只要一个加锁不成功,表示本次加锁失败,则应该立即释放所有已加锁成功的数据对象,然后重新开始从头加锁。
②顺序加锁法:顺序加锁法是预先对所有可加锁的数据对象规定一个加锁顺序,每个事务都需要按此顺序加锁,在释放时,按逆序进行。
7.三级封锁协议分别是什么?各级封锁协议的主要区别是什么?每一级封锁协议能保证什么?
答:一级封锁协议:对事务T要修改的数据加X锁,直到事务结束(包括正常结束和非正常结束)时才释放。
二级封锁协议:一级封锁协议加上事务T对要读取的数据加S锁,读完后即释放S锁。
三级封锁协议:一级封锁协议加上事务T对要读取的数据加S锁,并直到事务结束才释放。
三个封锁协议的区别是在对读数据的加锁上。
一级封锁协议可以防止丢失修改;二级封锁协议除了可以防止丢失修改外,还可以防止读“脏”数据;三级封锁协议除了可以防止丢失修改和不读“脏”数据之外,还进一步防止了不可重复读。
8.什么是可串行化调度?如何判断一个并行执行的结果是否是正确的?
答:多个事务的并发执行是正确的,当且仅当其结果与按某一顺序的串行执行的结果相同,称这种调度为可串行化的调度。
如果并发调度的执行结果和某个串行调度结果一样,这个并发调度就是正确的调度。
9.两段锁的含义是什么?
答:两段锁是指所有的事务必须分为两个阶段对数据进行加锁和解锁,具体内容如下:
在对任何数据进行读、写操作之前,首先要获得对该数据的封锁。
在释放一个封锁之后,事务不再申请和获得任何其他锁。。
10.数据库故障大致分为几类?

事务故障:

某个事务在运行过程中由于种种原因未运行至正常终止点,事务故障的常见原因,输入数据有误
运算溢出,违反了某些完整性限制发生锁死。
系统故障:

由于某种原因造成整个系统的正常运行突然停止,致使所有正在运行的事务都以非正常方式终止。
发生系统故障时,内存中数据库缓冲区的信息全部丢失,但存储在外部存储设备上的数据未受影响 。

介质故障:
硬件故障使存储在外存中的数据部分丢失或全部丢失 ,介质故障比前两类故障的可能性小得多,但破坏性最大。

11.数据库备份的作用是什么?

答:备份数据库是为了当数据库出现故障时,避免或减少数据的丢失。

posted @ 2023-04-23 10:44  代不动码  阅读(32)  评论(0)    收藏  举报