事务简介-the design and analysis of algorithms

时间:2024-06-29 04:39:01
【文件属性】:

文件名称:事务简介-the design and analysis of algorithms

文件大小:4.17MB

文件格式:PDF

更新时间:2024-06-29 04:39:01

达梦,DM7

24.1 事务简介 数据库事务是指作为单个逻辑工作单元的一系列操作的集合。一个典型的事务由应用程 序中的一组操作序列组成,对于 DM数据库来说,第一次执行 SQL语句时,隐式地启动一个 事务,以 COMMIT或 ROLLBACK语句/方法显式地结束事务。另外,在执行 DDL前,DM数 据库会自动把前面的操作进行提交,DDL 前面的操作作为一个完整的事务结束,DDL 语句 本身所属事务则根据“DDL_AUTO_COMMIT”配置参数决定是否隐式地提交。 COMMIT 操作会将该语句所对应事务对数据库的所有更新持久化(即写入磁盘),数据 库此时进入一个新的一致性状态,同时该事务成功地结束。ROLLBACK操作将该语句所对应 事务对数据库的所有更新全部撤销,把数据库恢复到该事务初启动前的一致性状态。 我们以一个模拟的银行转账业务为例,假设一个银行客户 A需要转 5000元给 B,其具 体业务步骤如下: 1. 从 A(ID为 5236)的储蓄账户扣除 5000元; UPDATE account SET balance=balance-5000 WHERE id=5236; 2. 将 B(ID为 5237)的储蓄账户增加 5000元; UPDATE account SET balance = balance +5000 WHERE id=5237; 3. 在业务日志中记录此次业务; INSERT INTO trans_log VALUES(log_seq.NEXTVAL, 5236, 5237, 5000); 4. 提交事务。 COMMIT; 在上面的例子中,需要考虑两种情况:如果三条 SQL 语句全部正常执行,使账户间的 平衡得以保证,那么此事务中对数据的修改就可以应用到数据库中;如果发生诸如资金不足、 账号错误、硬件故障等问题,导致事务中一条或多条 SQL 语句不能执行,那么整个事务必 须被回滚掉才能保证账户间的平衡。 DM 数据库提供了足够的事务管理机制来保证上面的事务要么成功执行,所有的更新都 会写入磁盘,要么所有的更新都被回滚,数据恢复到执行该事务前的状态。无论是提交还是 回滚,DM保证数据库在每个事务开始前、结束后是一致的。 为了提高事务管理的灵活性,DM数据库还提供了设置保存点(SAVEPOINT)和回滚到 保存点的功能。保存点提供了一种灵活的回滚,事务在执行中可以回滚到某个保存点,在该 保 存 点 以 前 的 操 作 有 效 , 而 以 后 的 操 作 被 回 滚 掉 。 可 以 使 用 SAVEPOINT SAVEPOINT_NAME命令创建保存点,使用 ROLLBACK TO SAVEPOINT SAVEPOINT_NAME 命令来回滚到保存点 SAVEPOINT_NAME。


网友评论