当前课程知识点:数据库系统原理与开发 >  第5章 数据库管理 >  5.2 事务管理 >  5.2 事务管理

返回《数据库系统原理与开发》慕课在线视频课程列表

5.2 事务管理在线视频

下一节:5.3.1 并发控制-1

返回《数据库系统原理与开发》慕课在线视频列表

5.2 事务管理课程教案、知识点、字幕

大家好!

我是主讲教师陆鑫

下面我们开始学习数据库课程

第5.2小节 事务管理

本节学习目标如下

1)了解在特定数据库应用处理中为什么需要事务机制

2)理解数据库事务的ACID特性

3)理解在数据库应用中为什么需要事务程序并发运行

4)掌握SQL事务程序编写方法

下面开始学习数据库事务管理

一、为什么需要事务管理

在数据库应用系统中

完成一个业务处理通常需要多个操作步骤才能完成处理

在每个操作步骤中

都可能遭遇失败

若没有一个处理机制

就可能造成操作数据混乱

从而破坏数据一致性

二、事务概念

在数据库中

事务(Transaction)是指由构成单个

业务处理单元的一组数据库访问操作

要求它们要么都成功执行

要么都不执行

例如,客户在银行系统中

从账户A转账1000元到账户B

其业务操作流程如下

读取A账户

A账户减去1000元

写回数据库

读取B账户

B账户加入1000元

写入B账户

这些语句构成业务操作语句

要求: 转账业务处理程序(即转账事务的操作语句)

要么所有都正常执行

要么所有操作语句都不执行

以确保账户资金数据的正确状态

三、事务状态

在数据库系统中

事务是DBMS执行的最小任务单元

同时,事务也是DBMS最小的故障恢复

任务单元和并发控制任务单元

其生命周期状态变迁如图所示

事务被DBMS调度执行后

就进入事务初始状态

当事务的SQL操作语句成功执行

事务就进入事务正常状态

如果事务的所有SQL操作语句都成功执行

事务将执行提交(Commit)操作语句

并进入事务提交状态

在事务提交状态下

系统将所有操作语句对数据的修改都更新到数据库文件中

并将所有数据操作

记录到数据库事务日志(log)文件中

以便数据库出现故障时

事务所做的更新操作能通过日志数据进行恢复

当事务提交操作完成后

事务程序退出并结束

事务在执行期间

即使进入事务正常状态后

仍有可能遇到意外事件

导致事务中的某SQL操作语句执行失败

这时事务进入事务失败状态

在事务失败状态下

事务将执行回滚(Rollback)操作语句

并进入事务回滚状态

在回滚状态下

撤销该事务对数据库所有的数据修改或删除操作

使数据库恢复到事务执行之前的数据状态

当事务回滚操作完成后

事务程序退出并结束

四、事务特性

为了确保数据库共享访问的数据正确性

要求DBMS的事务管理机制维护事务的ACID特性

事务ACID特性

原子性(Atomicity)

事务所有操作在数据库中要么全部执行

要么全部不执行

一致性(Consistency)

事务多次执行,其结果应一致

隔离性(Isolation)

事务与事务之间隔离,并发执行透明

持续性(Durability )

事务完成后,数据改变必须是永久的

五、事务并发执行

事务并发执行是指

多个事务程序在数据库系统中同一时段运行

事务并发执行原因

改善系统的资源利用率

减少事务运行的平均等待时间

六、事务SQL程序

在关系数据库系统中

可以利用SQL语言提供的相应语句编写事务程序

1.事务SQL语句

BEGIN 或 START TRANSACTION 事务开始语句

ROLLBACK 事务回滚语句

COMMIT 事务提交语句

SAVEPOINT 事务保存点语句

2.事务SQL程序基本框架

框架1

框架2

框架3

例如, 在选课管理数据库CurriculaDB中

使用事务程序实现对学院信息表College的数据插入

其事务SQL程序如下

START TRANSACTION;事务开始语句

对学院信息表插入一条数据

对学院信息表插入第二条数据

对学院信息表插入第三条数据

COMMIT 事务提交语句

3.事务SQL程序执行

在数据库管理工具中

输入事务SQL程序

如下图界面所示

在SQL编辑页面中输入事务SQL程序

点取"运行"按钮后

当该事务SQL程序正确执行后

返回事务成功结束消息

4.事务程序中不能使用的SQL语句

不是所有SQL语句都可以放入到事务程序中执行

例如,以下SQL语句是不能在事务中执行

创建数据库语句 CREATE DATABASE

修改数据库语句 ALTER DATABASE

删除数据库语句 DROP DATABASE

恢复数据库语句 RESTORE DATABASE

加载数据库语句 LOAD DATABASE

备份日志文件语句 BACKUP LOG

恢复日志文件语句 RESTORE LOG

授权操作语句 GRANT等等

七、DBMS默认事务方式

若用户没有显式地定义事务时

DBMS按默认方式处理

即每执行一个SQL语句将自动构成一个事务

若需要将多条SQL语句构成的一个事务时

才使用专门的事务SQL语句显式地定义事务

好了,本节学习结束!

数据库系统原理与开发课程列表:

第1章 数据库系统概论

-1.1 数据库及其系统概念

--1.1 数据库及其系统概念

-1.2 数据库技术发展

--1.2 数据库技术发展

-1.3 数据库应用系统

--1.3 数据库应用系统

-1.4 典型数据库管理系统

--1.4 典型数据库管理系统

-1.5 PostgreSQL对象-关系数据库系统软件

--1.5 PostgreSQL对象-关系数据库系统软件

-第1章 数据库系统概论--本章单元测试

-第1章 数据库系统概论--本章重点问题讨论

第2章 数据库关系模型

-2.1 关系及其相关概念

--2.1.1关系及其相关概念-1

--2.1.2关系及其相关概念-2

-2.2 关系模型原理

--2.2.1关系模型原理-1

--2.2.2关系模型原理-2

-2.3 PostgreSQL数据库关系操作实践

--2.3 PostgreSQL数据库关系操作实践

-第2章 数据库关系模型--本章单元测试

-第2章 数据库关系模型--本章重点问题讨论

第3章 数据库操作SQL语言

-3.1 SQL语言概述

--3.1 SQL语言概述

-3.2 数据定义SQL语句

--3.2.1数据定义SQL语句-1

--3.2.2数据定义SQL语句-2

--3.2.3数据定义SQL语句-3

-3.3 数据操纵SQL语句

--3.3 数据操纵SQL语句

-3.4 数据查询SQL语句

--3.4.1单表数据查询

--3.4.2 内置函数与分组统计

--3.4.3 多表关联查询

-3.5 数据控制SQL语句

--3.5 数据控制SQL语句

-3.6 视图SQL语句

--3.6 视图SQL语句

-3.7 PostgreSQL数据库SQL实践

--3.7 PostgreSQL数据库SQL实践

-第3章 数据库操作SQL语言--本章单元测试

-第3章 数据库操作SQL语言--本章重点问题讨论

第4章 数据库设计与实现

-4.1 数据库设计概述

--4.1 数据库设计概述

-4.2 E-R模型方法

--4.2.1 E-R模型方法-1

--4.2.2 E-R模型方法-2

-4.3 数据库建模设计

--4.3.1 数据库建模设计-1

--4.3.2 数据库建模设计-2

-4.4 数据库规范化设计

--4.4.1 数据库规范化设计-1

--4.4.2 数据库规范化设计-2

-4.5 数据库设计模型SQL实现

--4.5 数据库设计模型SQL实现

-4.6 基于Power Designer的数据库设计建模实践

--4.6 基于Power Designer的数据库设计建模实践

-第4章 数据库设计与实现--本章单元测试

-第4章 数据库设计与实现--本章重点问题讨论

第5章 数据库管理

-5.1 数据库管理概述

--5.1 数据库管理概述

-5.2 事务管理

--5.2 事务管理

-5.3 并发控制

--5.3.1 并发控制-1

--5.3.2 并发控制-2

-5.4 安全管理

--5.4.1 安全管理-1

--5.4.2 安全管理-2

-5.5 数据库备份与恢复

--5.5 数据库备份与恢复

-5.6 PostgreSQL数据库管理项目实践

--5.6 PostgreSQL数据库管理项目实践

-第5章 数据库管理--本章单元测试

-第5章 数据库管理--本章重点问题讨论

第6章 数据库应用编程

-6.1 数据库连接技术

--6.1.1 数据库连接技术-1

--6.1.2 数据库连接技术-2

-6.2 数据库存储过程

--6.2 数据库存储过程

-6.3 数据库触发器

--6.3 数据库触发器

-6.4 数据库游标

--6.4 数据库游标

-6.5 嵌入式SQL编程

--6.5 嵌入式SQL编程

-第6章 数据库应用编程--本章单元测试

-第6章 数据库应用编程--重点问题讨论

第7章 NoSQL数据库技术

-7.1 NoSQL数据库概述

--7.1.1 NoSQL数据库概述-1

--7.1.2 NoSQL数据库概述-2

--7.1.3 NoSQL数据库概述-3

-7.2 列存储数据库

--7.2.1列存储数据库-1

--7.2.2列存储数据库-2

-7.3 键值对数据库

--7.3.1 键值对数据库-1

--7.3.2 键值对数据库-2

--7.3.3 键值对数据库-3

-7.4 文档型数据库

--7.4.1文档型数据库-1

--7.4.2文档型数据库-2

--7.4.3文档型数据库-3

-7.5 图形数据库

--7.5.1图形数据库-1

--7.5.2图形数据库-2

--7.5.3 图形数据库-3

-7.6 HBase数据库项目实践

--7.6 HBase数据库项目实践

-第7章 NoSQL数据库技术--本章单元测试

-第7章 NoSQL数据库技术--本章重点问题讨论

期末考试

-期末测试--期末测试

5.2 事务管理笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。