刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

单选题

在数据库系统中,“事务”是访问数据库并可能更新各种数据项的一个程序执行单元。为了保证数据完整性,要求数据库系统维护事务的原子性、一致性、隔离性和持久性。针对事务的这4种特性,考虑以下的架构设计场景:

假设在某一个时刻只有一个活动的事务,为了保证事务的原子性,对于要执行写操作的数据项,数据库系统在磁盘上维护数据库的一个副本,所有的写操作都在数据库副本上执行,而保持原始数据库不变,如果在任一时刻操作不得不中止,系统仅需要删除副本,原数据库没有受到任何影响。这种设计策略称为( )。

事务的一致性要求在没有其他事务并发执行的情况下,事务的执行应该保证数据库的一致性。数据库系统通常采用( )机制保证单个事务的一致性。

事务的隔离性保证操作并发执行后的系统状态与这些操作以某种次序顺序执行(即可串行化执行)后的状态是等价的。两阶段锁协议是实现隔离性的常见方案,该协议( )。

持久性保证一旦事务完成,该事务对数据库所做的所有更新都是永久的,如果事务完成后系统出现故障,则需要通过恢复机制保证事务的持久性。假设在日志中记录所有对数据库的修改操作,将一个事务的所有写操作延迟到事务提交后才执行,则在日志中(请作答此空),当系统发生故障时,如果某个事务已经开始,但没有提交,则该事务应该( )。

A
无需记录“事务开始执行”这一事件
B
无需记录“事务已经提交”这一事件
C
无需记录数据项被事务修改后的新值
D
无需记录数据项被事务修改前的原始值
使用微信搜索喵呜刷题,轻松应对考试!

答案:

D

解析:

第一空:根据题干描述,为了保证事务的原子性,数据库系统在磁盘上维护数据库的一个副本,所有的写操作都在数据库副本上执行,这是影子拷贝策略,故第一空填“影子拷贝策略”或选项D。

第二空:事务的一致性要求在没有其他事务并发执行的情况下,事务的执行应该保证数据库的一致性。数据库系统通常采用完整性约束检查机制来保证单个事务的一致性,故第二空填“完整性约束检查机制”或“完整性约束”。

第三空:两阶段锁协议是实现事务隔离性的常见方案,通过定义锁的增长和收缩两个阶段约束事务的加锁和解锁过程,但该协议可能会导致死锁,故第三空填“会导致死锁”或“可能产生死锁”。

第四空:基于日志的延迟修改技术中,需要在日志中记录所有对数据库的修改操作,包括“事务开始执行”和“事务已经提交”的事件,以及数据项被事务修改后的新值。因此,需要记录“事务开始执行”这一事件(A错误);也需要记录数据项被事务修改后的新值(C错误)。而无需记录数据项被事务修改前的原始值(D错误)。当一个事务已经开始但没有提交时,不需要对事务做任何恢复动作,故B选项正确。

创作类型:
原创

本文链接:在数据库系统中,“事务”是访问数据库并可能更新各种数据项的一个程序执行单元。为了保证数据完整性,要求

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share