早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

若用SQL语句编写的转账业务事务程序如下: START TRANSACTION; SET TRANSACTION ISOLATION LEVEL

题目

若用SQL语句编写的转账业务事务程序如下:

START TRANSACTION;

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

UPDATE Accounts

SET CurrentBalance=CurrentBalance-Amount

WHERE AccountID=A;

if error then ROLLBACK;

COMMIT;

UPDATE Accounts

SET CurrentBalance=CurrentBalance+Amount

WHERE AccountID=B;

if error then ROLLBACK;

COMMIT;

其中:Accounts为账户表,CurrentBalance为当前余额,Amount为新存入的金额。

该事务程序能否保证数据的一致性?如不能,请说明原因并改正。(100字以内)

参考答案
正确答案:不能实现程序中第7行指令COMMIT为事务结束此程序为两个事务不满足转账业务要求。 修改方法:程序中第7行指令CONMIT删除即可。
不能实现,程序中第7行指令COMMIT为事务结束,此程序为两个事务,不满足转账业务要求。 修改方法:程序中第7行指令CONMIT删除即可。 解析:本题考查对事务并发控制概念及编程的掌握。
事务是一个完整的业务逻辑处理,原子性要求是为了保证现实业务的正确执行。事务的开始通常是隐性的,上一事务结束后第一条SQL语句为事务开始,结束必须以 RollBack或Commit显示地标明。
在并发状态下,可能会相互干扰破坏事务的ACID属性,加锁机制是保障事务正确执行的一种机制。
2PL协议能够保证事务并发状态下调度的正确性,即可串行化的调度。其内容是:
①在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁;
②在释放一个封锁之后,事务不再申请和获得任何其他封锁。
用伪代码描述,即在R()、W()操作之前分别加指令SLoek()和XLock,不再使用数据之后再解锁,且第一个解锁指令后不能再有加锁指令即可。
在SQL编程中,使用标准SQL定义的隔离级别来实现事物并发执行下的一致性控制,4个隔离级别分别为Read Uncommitted、Read committed、Repeatable Read和 Serializable。
问题3中的转账程序应为一个完整的现实业务,就满足原子性。而第7行COMMIT将程序分为了两个事务,不满足现实业务需求,去掉该行即可。
看了若用SQL语句编写的转账业务事...的网友还看了以下:

总账系统中,若期末转账业务要从会计账簿中提取数据,在转账前,必须先将全部相关的凭证( )。A.输入 财会类考试 2020-05-17 …

下列属于商业银行表外业务的有( )。A.担保 B.可转让支付命令账户 C.自动转账服务 D.备用信用 财会类考试 2020-05-19 …

以下各项属于销售与收款循环内部控制的有: A.批准坏账与收款业务、记账业务相互独立 B.向客 财会类考试 2020-05-21 …

若用SQL语句编写的转账业务事务程序如下: START TRANSACTION; SET TRANS 计算机类考试 2020-05-26 …

已与银行签订对账服务协议的客户建立账单。可按账户建立账单,即一个账户建立一个账单;也可按客 职业技能鉴定 2020-05-26 …

涉及自动销号类重要空白凭证的抹账业务,经办柜员需同时拍摄( ),抹账后重新记账的业务,按相 职业技能鉴定 2020-05-26 …

个人储蓄账户仅限于办理现金存取及同一客户账户之间的转账业务,不得办理对外转账结算。判断对 职业技能鉴定 2020-05-27 …

现金收付和转账业务按规定办理。()。A.现金存入,先收款后记账,现金取款先记账后付款B.转账业务先借 职业技能鉴定 2020-05-27 …

一个有趣的智力题三个人住酒店,每人每天1000元,三个人住了1天,每人付了1000元给服务员结账,服 其他 2020-12-01 …

除()的记账凭证可以不附原始凭证外,其他记账凭证必须附有原始凭证。A.销售业务B.现金业务C.更正错 其他 2020-12-26 …