数据库复习04:课后习题

追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

导读:本篇文章讲解 数据库复习04:课后习题,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

作者:非妃是公主
专栏:《数据库》
个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩
在这里插入图片描述

专栏系列文章

数据库复习01:基础篇

数据库复习02:设计与应用篇

数据库复习03:系统篇

数据库复习04:课后习题

SQL Server Studio查看“估计的执行计划”和“实际的执行计划方法”

SQL Server中C/C++数据类型与ODBC c类型对照(将C/C++数据对象存到SQL Server数据库中)

第2章

6.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

第3章

4.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

9.

在这里插入图片描述
在这里插入图片描述

第6章

5.

在这里插入图片描述

6.

在这里插入图片描述

7.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第7章

7.

在这里插入图片描述
在这里插入图片描述

8.

在这里插入图片描述
在这里插入图片描述

9.

在这里插入图片描述

10.

在这里插入图片描述
在这里插入图片描述

11.

在这里插入图片描述

第9章

2、

在这里插入图片描述
(1)需要对R进行全表扫描

块数

=

20000

40

=

50

块数 = \frac{20000}{40}=50

块数=4020000=50
(2)对R进行索引扫描 , 块数=3+1 =4;其中前3块为B+树索引块,第4 为块数据块。(前3块装指针,后面一块装相应指针指向的数据)

(3)R总共需要

20000

40

=

500

\frac{20 000}{40}=500

4020000=500次,S总共需要

1200

30

40

\frac{1200}{30}=40

30120040次,以R为外表,假设内存可分配的块数为K块,那么

磁盘块读写次数

=

500

+

40

k

1

×

500

磁盘块读写次数=500+\lceil\frac{40}{k-1}\rceil\times500

磁盘块读写次数=500+k140×500
(4)

  • R与S在B属性上有序

硬盘读写次数

=

500

+

40

=

540

硬盘读写次数=500+40=540;

硬盘读写次数=500+40=540

  • R与S在B属性上无序,还要加上两个关系在B属性上排序的代价(一般排序算法的时间复杂度为(

    n

    log

    2

    n

    n\log_2{n}

    nlog2n),其中,n为排序规模)

硬盘读写次数

=

540

+

2

×

500

×

l

o

g

2

500

+

2

×

40

×

log

2

40

硬盘读写次数=540+2\times500\times log_2{500} +2\times40\times\log_2{40}。

硬盘读写次数=540+2×500×log2500+2×40×log240


3、

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


4、

在这里插入图片描述

(1)对teacher进行全表扫描,查看元组是否满足性别为女。

(2)通过索引找到Dno=301的索引项 ,然后顺着B+树的顺序集得到Dno< 301的索引项 ,通过这些指针找到Department中的元组;

(3)对work进行全表扫描 ,查看元组是否满足year<>2000

(4)通过year的索引找到满足Year=2000的索引项,然后顺着B+数的顺序集得到Year>2000的索引项,通过这些指针找到Year>2000的元组,检查这些元组是否满足salary< 5000

(5)对Work进行全表扫描,查看元组是否满足Year<2000Salary< 5000


5、

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

第10章

4、

在这里插入图片描述

① 重做:T1 、T3;回滚 : T2 、T4。

② 重做:T1,回滚: T2 、 T3。

③ 重做:T1,回滚: T2 、 T3。

④ 重做:T1,回滚:T2。

说明:已经提交的事项要重做,还未提交的事项要回滚,判断重做还是回滚的依据就是事项是否提交。

5、

在这里插入图片描述

① 系统故障发生在14之后:A:8; B:7; C:11;

② 系统故障发生在12之后:A:10; B:0; C:11;

③ 系统故障发生在10之后:A:10; B:0; C:11;

④ 系统故障发生在9之后:A:10; B:0; C:11;

⑤ 系统故障发生在7之后:A:10; B:0; C:11;

⑥ 系统故障发生在5之后:A:0; B:0; C:0;

说明:已经提交的事项对数据库的修改才会写入到磁盘上,没有提交的事项所做的更改暂时无效。

第11章

9.

在这里插入图片描述

(1)串行执行次序有

T

1

,

T

2

,

T

3

;

T

1

,

T

3

,

T

2

;

T

2

,

T

1

,

T

3

;

T

2

,

T

3

,

T

1

;

T

3

,

T

1

,

T

2

;

T

3

,

T

2

,

T

1

;

T_1,T_2,T_3; T_1,T_3,T_2; T_2,T_1,T_3; T_2,T_3,T_1; T_3,T_1,T_2; T_3,T_2,T_1;

T1,T2,T3;T1,T3,T2;T2,T1,T3;T2,T3,T1;T3,T1,T2;T3,T2,T1;
说明:排列问题

(2)
在这里插入图片描述

说明:交换过程重没有涉及到对同一数据类型读写操作和写写操作的交换

(3)
在这里插入图片描述

说明:交换过程中涉及到对同一数据的读写操作或写写操作的交换

(4)
在这里插入图片描述
(5)
在这里插入图片描述

10.

在这里插入图片描述

是冲突可串行化的调度,交换

r

1

(

A

)

r_1(A)

r1(A)

w

3

(

B

)

r

2

(

B

)

r

2

(

A

)

w

2

(

B

)

w_3(B)r_2(B)r_2(A)w_2(B)

w3(B)r2(B)r2(A)w2(B)后,得到的事务调度序列是串行的。且期间没有交换对同一数据的读写操作或者写写操作。

11.

在这里插入图片描述
假设它不是可串化的,

那么事务序列重必然存在对同一数据类型的读写,或者写写操作在不同事务间交叉进行,

即:两个事务交替使用同一数据类型—>必须存在一个事务先解锁后加锁的情况

与事务并发处理采用两段锁协议相矛盾。

所以它是不可串化的。

13.

在这里插入图片描述

③遵循两阶段封锁(2PL)的调度

\subseteq

①正确的调度

②可串行化的调度

④串行调度

\subseteq

①正确的词度

说明:可串行化的调度都是正确的调度,二者范围相同

两阶段锁协议是可串行化调度的充分不必要条件(两阶段锁协议包含两部分:可串行化的调度和死锁的调度)

串行调度是指各事务操作没有交叉。

14.

在这里插入图片描述

(1)

T

1

T_1

T1

T

2

T_2

T2

SlockASlockB
R(A)R(B)
XlockBXlockA
R(B)R(A)
B=A+BA=A+B
W(B)W(A)
unlockAunlockB
unlockBunlockA

(2)会发生死锁,如下调度:

T

1

T_1

T1

T

2

T_2

T2

XlockA
R(A)
XlockB
R(B)
waiting…waiting…

如果想不发生死锁,只能串行调度(先执行更多操作

T

1

T_1

T1,再执行更多操作

T

2

T_2

T2,或者反之)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/130543.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!