5.2-事务管理.ppt
5.2 事务管理1 数据库原理及应用电子科技大学-陆鑫数据库系统原理与开发了解在特定数据库应用处理中为什么需要事务机制理解数据库事务的ACID特性理解在数据库应用中为什么需要事务程序并发运行掌握SQL事务程序编写方法【本节学习目标】2 数据库原理及应用电子科技大学-陆鑫数据库系统原理与开发一、为什么需要事务管理在数据库应用系统中,完成一个业务处理通常需要多个操作步骤才能完成处理。在每个操作步骤中,都可能遭遇失败,若没有一个处理机制,就可能造成操作数据混乱,从而破坏数据一致性。二、事务概念在数据库中,事务(Transaction)是指由构成单个业务处理单元的一组数据库访问操作,要求它们要么都成功执行,要么都不执行。3 数据库原理及应用电子科技大学-陆鑫数据库系统原理与开发例 客户在银行系统中,从账户A转账1000元到账户B,其业务操作流程如下:Read(A);A:=A-1000;Write(A);Read(B);B:=B+1000;Write(B)转账业务操作语句要求:转账业务处理程序(转账事务)的操作语句要么所有都正常执行,要么所有操作语句都不执行,以确保账户资金数据的正确状态。4 数据库原理及应用电子科技大学-陆鑫数据库系统原理与开发在数据库系统中,事务是DBMS执行的最小任务单元。同时,事务也是DBMS最小的故障恢复任务单元和并发控制任务单元。其生命周期状态变迁如图所示。三、事务状态5 数据库原理及应用电子科技大学-陆鑫数据库系统原理与开发四、事务特性事务ACID特性:原子性(Atomicity):事务所有操作在数据库中要么全部执行,要么全部不执行。一致性(Consistency):事务多次执行,其结果应一致。隔离性(Isolation):事务与事务之间隔离,并发执行透明。持续性(Durability):事务完成后,数据改变必须是永久的。为了确保数据库共享访问的数据正确性,要求DBMS的事务管理机制维护事务的ACID特性。6 数据库原理及应用电子科技大学-陆鑫数据库系统原理与开发五、事务并发执行事务并发执行原因:改善系统的资源利用率减少事务运行的平均等待时间事务并发执行是指多个事务程序在数据库系统中同一时段运行。7 数据库原理及应用电子科技大学-陆鑫数据库系统原理与开发六、事务六、事务SQL程序程序在关系数据库系统中,可以利用SQL语言提供的相应语句编写事务程序。BEGIN 或 START TRANSACTION;事务开始语句ROLLBACK;事务回滚语句COMMIT;事务提交语句SAVEPOINT;事务保存点语句1.事务SQL语句8 数据库原理及应用电子科技大学-陆鑫数据库系统原理与开发2.事务SQL程序基本框架START TRANSACTION;SQL语句1;SQL语句2;SQL语句n;COMMIT;START TRANSACTION;SQL语句1;SQL语句2;SQL语句n;ROLLBACK;START TRANSACTION;SQL语句1;SQL语句2;SAVEPOINT 保存点名;SQL语句n;ROLLBACK 保存点名;9 数据库原理及应用电子科技大学-陆鑫数据库系统原理与开发例 在选课管理数据库CurriculaDB中,使用事务程序实现对学院信息表College的数据插入,其事务SQL程序如下:START TRANSACTION;INSERT INTO college(collegeID,collegename)VALUES(004,外语学院);INSERT INTO college(collegeID,collegename)VALUES(005,数学学院);INSERT INTO college(collegeID,collegename)VALUES(006,临床医学院);COMMIT;10 数据库原理及应用电子科技大学-陆鑫数据库系统原理与开发运行按钮事务程序结果消息3.事务SQL程序执行11 数据库原理及应用电子科技大学-陆鑫数据库系统原理与开发创建数据库 CREATE DATABASE修改数据库 ALTER DATABASE删除数据库 DROP DATABASE恢复数据库 RESTORE DATABASE加载数据库 LOAD DATABASE备份日志文件 BACKUP LOG恢复日志文件 RESTORE LOG授权操作 GRANT。4.事务程序中不能使用的SQL语句12 数据库原理及应用电子科技大学-陆鑫数据库系统原理与开发若用户没有显式地定义事务时,DBMS按默认事务方式处理,即每执行一个SQL语句将自动构成一个事务。若将多条SQL语句定义为一个事务时,才使用专门的事务SQL语句显式地定义事务。七、DBMS默认事务方式13 数据库原理及应用电子科技大学-陆鑫数据库系统原理与开发本节学习结束!