首页 > 软考
题目内容 (请给出正确答案)
[主观题]

若用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字以内)

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“若用SQL语句编写的转账业务事务程序如下: START TR…”相关的问题
第1题
若用如下的SQL语句创建一个student表:CREATETABLEstudentNOC(4)NOTNULL,NAMEC(8)NOTNULL,SEXC(2)

若用如下的SQL语句创建一个student表:CREATETABLEstudentNOC(4)NOTNULL,NAMEC(8)NOTNULL,SEXC(2),AGEN(2)

SQL语言是______的语言,易学习。

A.过程化

B.非过程化

C.格式化

D.导航式

点击查看答案
第2题
用SQL语句查询课程成绩在60分以上的学生姓名,并将结果按姓名降序存入表文件res.dbf中。(2)编写

用SQL语句查询课程成绩在60分以上的学生姓名,并将结果按姓名降序存入表文件res.dbf中。

(2)编写my.prg程序,实现的功能:先为“学生成绩”表增加一个“学生平均成绩”字段,类型为 N(6,2),根据“学生选课”表统计每个学生的平均成绩,并写入“学生成绩”表新的字段中。

点击查看答案
第3题
若用如下的SQL语句创建了一个表SC:(CREATETABLESC(S#CHAR(6)NOTNUL,C#CHAR(3)NOTNUL,SCOREINT
若用如下的SQL语句创建了一个表SC:(CREATETABLESC(S#CHAR(6)NOTNUL,C#CHAR(3)NOTNUL,SCOREINT

EGER,

NOTECHAR(20));向SC表插入如下行时,()行可以被捕入。

A.(LUA0U/9 A.9./选修")

B.(’200823',’101’,NULL,NULL)

C.(’201132',NULL,86,'')

D.(’201009’,’111',60,必修)

点击查看答案
第4题
若用如下的SQL语句创建一个student表: CREATE TABLE student(NO C(4)NOT NULL,NAME C(8)NOT NULL

若用如下的SQL语句创建一个student表: CREATE TABLE student(NO C(4)NOT NULL, NAME C(8)NOT NULL, SEX C(2), AGE N(2) ) 可以插入到student表中的是______。

A.('1031','曾华',男,23)

B.('1031','曾华',NULL,NULL)

C.(NULL,'曾华','男','23')

D.('1031',NULL,'男',23)

点击查看答案
第5题
若用如下的SQL语句创建了一个表S:CREATETABLES(S# CHAR(6)NOT NULL,SNAME CHAR (8) NOT NULL,SEX

若用如下的SQL语句创建了一个表S: CREATE TABLES(S# CHAR(6)NOT NULL, SNAME CHAR (8) NOT NULL,SEX CHAR(2),AGE INTEGER) 今向S表插入如下行时,哪一行可以被插入? ()。

A.('991001',‘李明芳’,女,'23')

B.('990746',“张为’,NULL,NULL)

C.(NULL,‘陈道一’,‘男’,32)

D.('992345',NULL,‘女’,25)

点击查看答案
第6题
若用如下的SQL语句创建一个student表:(CREATETABLEstudent(NOCHAR(4)NOTNULL,NAMECHAR(8)NOTNULL)可以插入到student表中的是()。

A.(NULL,'曾华')

B.('1031','曾华')

C.('1031',NULL)

D.('1031','曾华')

点击查看答案
第7题
若用如下的SQL语句创建一个表S: CREATE TABLE S(S# char(10)NOT NULL: SNAME char(10)NOT NULL

若用如下的SQL语句创建一个表S: CREATE TABLE S(S# char(10)NOT NULL: SNAME char(10)NOT NULL,SEX char(2),AGE integer) 今向表S中插入如下行时,可以被插入的是

A.('441001','陈先明',女,'23')

B.('440746','张亮',NULL,NULL)

C.(NULL,'李国兵','男',35)

D.('442345',NULL,'女',25)

点击查看答案
第8题
若用如下的SQL语句创建一个student表:CREATE TABLE student(NO C(4)NOT NULL,NAME C(8)NOT NULL,

若用如下的SQL语句创建一个student表: CREATE TABLE student(NO C(4)NOT NULL,NAME C(8)NOT NULL, SEX C(2),AGE N(2)) 可以插入到student表中的是

A.('1031','李林',男,23)

B.('1031','李林',NULL)

C.(NULL,'李林','男','23')

D.('1031',NULL,'男',23)

点击查看答案
第9题
试题五(共15 分) 阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】某航空售票

试题五(共15 分)

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】

某航空售票系统负责所有本地起飞航班的机票销售,并设有多个机票销售网点。各售票网点使用相同的售票程序。假设售票程序中用到的伪指令如下表5-1所示:

试题五(共15 分) 阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】某航空

假设某售票网点一次售出a张航班A 的机票,则售票程序的伪指令序列为: R (A, x); W (A, x – a)。根据上述业务及规则,完成下列问题:

【问题1】(5 分)

若两个售票网点同时销售航班A的机票,在数据库服务器端可能出现如下的调度:

A:R1(A, x),R2(A, x),W1(A, x – 1),W2(A, x – 2);

B:R1(A, x),R2(A, x),W2(A, x – 2),W1(A, x – 1);

C:R1(A, x),W1(A, x – 1),R2(A, x),W2(A, x – 2);

其中Ri(A, x),Wi(A, x)分别表示第i个销售网点的读写操作,其余类同。

假设当前航班 A 剩余 10 张机票,分析上述三个调度各自执行完后的剩余票数,并指出错误的调度及产生错误的原因。

【问题2】(6 分)

(1)判定事务并发执行正确性的准则是什么?如何保证并发事务正确地执行?

(2) 引入相应的加解锁指令,重写售票程序的伪指令序列,以保证正确的并发调度。

【问题3】(4 分)

下面是用E-SQL实现的机票销售程序的一部分,请补全空缺处的代码。

EXEC SQL SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

EXEC SQL SELECT balance INTO :x FROM tickets WHERE flight = ‘A’ ;

printf("航班A 当前剩余机票数为:%d\n请输入购票数:", x );

scanf("%d", &a);

x = x – a ;

if (x<0)

EXEC SQL ROLLBACK WORK;

printf("票数不够,购票失败!");

else{

EXEC SQL UPDATE tickets SET (a) ;

if (SQLCA.sqlcode <> SUCCESS)

EXEC SQL ROLLBACK WORK;

else

(b) ;

}

试题五(共15 分) 阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】某航空

点击查看答案
第10题
若用如下的SQL语句创建了一个表S: CREATE TABLE S (S#CHAR (6) NOT NULL,SNAME CHAR(8) NOT NULL,SEX CHAR(2),AGEINTEGER) 向S表插入如下行时,哪一行可以被插入?

A.('201001','刘芳',女,'17')

B.('202345',NULL,'女',25)

C.(NULL,'王名','男',NULL)

D.('200746','黄祟',NULL,NULL)

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改