一、事务概述
1.1定义
事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单元。
事务是并发控制的基本单位,是数据库恢复的基本单位,是数据库的逻辑基本逻辑单元。
数据库恢复机制和并发控制机制是数据库管理系统的重要组成部分
在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序
--显式定义事务 begin transaction SQL 语句1 …… …… commit / rollback /* commit 事务正常结束 提交事务的所有操作(读+更新) 事务中所有对数据库的更新写回到磁盘上的物理数据库中 rollback 事务异常终止 事务运行的过程中发生了故障,不能继续执行 系统将事务中对数据库的所有已完成的操作全部撤销 事务滚回到开始时的状态 */
--将数学课程号由2修改为22 /* 解析: 所涉及的关系:Course和SC,根据参照完整性约束,应将两表中的2都改为22。要将修改两个表的两个SQL语句定义成一个事务。
因为DBMS对这两个语句要么都执行,要不都不执行 */ begin transaction update Course set CNO=\'22\' where CNO=\'2\' update SC set CNO=\'22\' where CNO=\'2\' commit
1.2 特性
原子性,一致性,隔离性,持久性
二、并发执行导致的问题
丢失数据,读"脏"数据,不可重复读.