More DBMS Transaction事务 事务是DBMS的执行单位,它由有 限的数据库操作序列组成。 要求事务必需具备下列性质: 2091
209_1 More DBMS 一 ,Transaction 事务 事务是DBMS的执行单位,它由有 限的数据库操作序列组成。 要求事务必需具备下列性质:
1.Atomic 执行上的原子性 ● 事务执行时应遵守: 要么不做,要么全做。 Nothing or all ● 即使因故障使事务部分完成,也要调 恢复程序,消除其对数据库的影响。 209_2
209_2 1.Atomic ----执行上的原子性 • 事务执行时应遵守: ——要么不做, 要么全做。 ——Nothing or all . • 即使因故障使事务部分完成,也要调 恢复程序,消除其对数据库的影响
2.Cons i stency -- 功能上的保持一致性 事务对数据库的作用应使数据库从一个一致状 态转变到另一个一致状态。 ·例:拨款—余额 总存入一总支出=余额 构成一种数据库一致状态 ·只存入或只支出,不修改余额都不能构成事务。 2093
209_3 2.Consistency --功能上的保持一致性 • 事务对数据库的作用应使数据库从一个一致状 态转变到另一个一致状态。 • 例:拨款——余额 总存入-总支出=余额 • 构成一种数据库一致状态 • 只存入或只支出,不修改余额都不能构成事务
l solation 彼此的隔离性 多个事务并发执行,各事务执行结果均应与 单独执行一样。 并发访问控制的作用。 4 Durability 作用的持久性 切成功的事务对数据库的影响应是持久的。 即使数据库因故障受到破坏,亦应能恢复。 209_4
209_4 3 Isolation -- 彼此的隔离性 ——多个事务并发执行,各事务执行结果均应与 单独执行一样。 ——并发访问控制的作用。 4 Durability -- 作用的持久性 ——一切成功的事务对数据库的影响应是持久的。 ——即使数据库因故障受到破坏,亦应能恢复
。Atomi c, 原子性 ·Cons i stency, 一致性 ●I solation, 隔离性 。Durabi l ity 持久性 四个性质的字头缩写称为: 事务的ACID准则。 例:一个事务: 把款项S,从A账号拨到B账号。 209-5
209—5 • Atomic, 原子性 • Consistency, 一致性 • Isolation, 隔离性 • Durability 持久性 • 四个性质的字头缩写称为: 事务的ACID准则。 例:一个事务: 把款项S,从A账号拨到B账号
·BEGIN TRAN read A; A:=A-S; IF(A<O)THEN [display“A款不足 “; ROLLBACK]/*恢复* ELSE [B:=B+S; display“完成拨款“; COMMIT]:/*提交 209-8
• BEGIN TRAN • read A; • A:= A-S; • IF(A<0) THEN • [display “A款不足“; • ROLLBACK] /* 恢复 */ • ELSE • [B:=B+S; • display “完成拨款“; • COMMIT]; /* 提交 */ • 209—8
说明: 两个出口: ROLLBACK- 撤消,卷回。撤消事务,并 消除其对数据库的影响 inothing"” C0MM1T—提交—”alI”,事务正确完成。 2C0MMIT之后,事务对数据库产生影响才对 其它事务开放。必要性:修改中数据可能的 不一致;事务可能撤消,结合上例; 3执行C0MMIT命令时,应封闭中断。原因: 中断处理中发生故障,系统无法确定该事务 是否提交。 2097
209—7 • 说明: 1 两个出口: • ROLLBACK——撤消,卷回。 撤消事务,并 消除其对数据库的影响_____ “nothing”. • COMMIT——提交——”all” ,事务正确完成。 2 COMMIT 之后,事务对数据库产生影响才对 其它事务开放。必要性:修改中数据可能的 不一致;事务可能撤消,结合上例; 3 执行 COMMIT命令时,应封闭中断。原因: 中断处理中发生故障,系统无法确定该事务 是否提交
Process Structure of DBMS DBMS是作为操作系统的用户进程在其上 运行的。 早期:DBMS依功能被分成多个进程。 ● 目前:DBMS进程的划分不再受计算机内 存容量的限制。多数DBMS把主要功能组 成一个核心DBMS进程。 也有少数DBMS,如ORACLE,除核心进 程外,把可“缓办”的公共操作组成几 个后台进程。事务执行主要是核心进程。 。有两种实用方案: 209-8
209—8 二 Process Structure of DBMS • DBMS是作为操作系统的用户进程在其上 运行的。 • 早期:DBMS依功能被分成多个进程。 • 目前:DBMS进程的划分不再受计算机内 存容量的限制。多数DBMS把主要功能组 成一个核心DBMS进程。 也有少数DBMS,如ORACLE,除核心进 程外,把可“缓办”的公共操作组成几 个后台进程。事务执行主要是核心进程。 • 有两种实用方案:
一个应用进程建立一个DBMS核 心进程 应用程序运行需创建应用进程,各个应用进程要 访问数据库时均创建自己的DBMS核心进程,并且 该核心进程完成应用程序委托的数据库访问任务 (一个事务)后就撤消。 。 多个DBMS核心进程,在OS下并发运行,实现多事 务并发。 早期UNIX上的DBMS多用,原因:它不支持一个子 进程有多个父进程。 209-9
209—9 1 一个应用进程建立一个 DBMS核 心进程 • 应用程序运行需创建应用进程,各个应用进程要 访问数据库时均创建自己的DBMS核心进程,并且 该核心进程完成应用程序委托的数据库访问任务 (一个事务)后就撤消。 • 多个DBMS核心进程,在OS下并发运行,实现多事 务并发。 • 早期UNIX上的DBMS多用,原因:它不支持一个子 进程有多个父进程
实现起来直接,但有如下缺点: 进程创建撤消频繁,开销大。 并发事务增加,进程数激增。效率下降。故 不适于联机事务处理系统(0 n line transaction processing system 大 量并发小事务情况。如:飞机订票,联机银 行出纳等。 3 不利于事务共享内存空间。 各DBMS核心进程所需程序和数据许多是相 同的,如数据目录、锁表等;进程各自的内 存受系统保护;0S提供的可共享内存的局限 性:非DBMS的其他用户进程也可访问。 209-10
209—10 实现起来直接,但有如下缺点: 1 进程创建撤消频繁,开销大。 2 并发事务增加,进程数激增。效率下降。故 不适于联机事务处理系统( On_line transaction processing system )——大 量并发小事务情况。如:飞机订票,联机银 行出纳等。 3 不利于事务共享内存空间。 各DBMS核心进程所需程序和数据许多是相 同的,如数据目录、锁表等;进程各自的内 存受系统保护;OS提供的可共享内存的局限 性:非DBMS的其他用户进程也可访问