- pdf下载:明码7281
- 专栏目录首页:【专栏必读】(考研复试)数据库系统概论第五版(王珊)专栏学习笔记目录导航及课后习题答案详解
@[toc]
一:事务的基本概念
(1)事务
A:定义
事务:是用户定义的一个<数据库操作序列。这些操作<要么不做,要么全做,是一个不可分割的工作单位。例如在RDBMS中一个事务能够是一条SQL语句或整个程序。事务是<数据库复原和并发管制的根本单位
- <事务和程序的区别:一般来说,一个程序中蕴含多个事务
B:事务的定义
事务的定义:事务的开始与完结由用户显式管制。如果用户没有显式地定义事务,则由DBMS按默认规定主动划分事务。在SQL中,定义事务语句有以下三条
BEGIN TRANSACTION
:示意事务的开始COMMIT
:示意事务的失常完结并提交事务的所有操作ROLLBACK
:示意事务的完结,但没有失常完结,须要进行回滚(撤销已实现操作,使零碎复原至回滚前状态)
留神不同数据库系统定义语句有所区别
SQL Server
BEGIN TRANSACTIONCOMMIT | ROLLBACK
MySQL
START TRANSACTIONCOMMIT | ROLLBACK
Oracle
START TRANSACTION NAMECOMMIT | ROLLBACK
(2)事务的四个个性——ACID
A:数据库的ACID
①:原子性(Atomicity)
原子性:事务是数据库的<逻辑工作单位,事务中蕴含的诸多操作<要么全做、要么不做。因故障未能做完的,须要有一套机制用于“撤销”那一部分曾经做了的
②:一致性(Consistency)
一致性:事务执行的后果必须是使数据库从<一个一致性状态变到另一个一致性状态
- <一致性状态:数据库中只蕴含胜利事务提交的后果
- <不统一状态:数据库中蕴含事务未实现时的状态
例如银行转账业务,账户$A$转1万元到账户$B$,该事务蕴含两个操作:首先是$A$缩小一万元,其次是$B$减少一万元,这两个操作要么全副做要么全不做,如果只做其中一个就会产生逻辑谬误,数据库就处于不统一状态了
③:隔离性(Isolation)
隔离性:一个事务不能被其余事务烦扰。也即一个事务的外部操作及应用的数据对其余并发事务是隔离的,并发执行的各个事务之间不能<相互烦扰
比方,下列两个并发执行的事务T1和T2,如按表中所示程序执行,则事务T1的批改被T2笼罩了,即T2干挠了T1。违反了事务的隔离性,是谬误的调度
④:持续性(Durability)
持续性:一个事务一旦提交,它对数据库中数据的扭转就是<永久性的。接下来的其余操作或故障不应该对其执行后果有任何影响
B:毁坏ACID的因素
次要有两类
- <故障:没有执行完;尽管没有完,然而存储介质故障。毁坏了ACID中的ACD
- <并发烦扰:多个事务并行运行时,不同事务的操作穿插执行,相互烦扰。毁坏了ACID中的I
因而这就是DBMS的复原机制和并发管制机制须要解决的问题
- 本章介绍复原机制
- 下一章介绍并发管制机制
二:数据库复原概述
定义:把数据库从因毁坏或故障而导致的谬误状态复原到某个已知的正确状态的技术
目标:
- 放弃事务的<原子性
- 放弃事务的<持久性
实现:由DBMS专门的<复原子系统实现