数据库学习笔记「事务」
事务的基本概念
事务是一系列的数据库操作,是数据库应用程序的基本逻辑单元,是并发控制的基本单位。
事务处理transaction processing技术主要包括数据库恢复技术和并发控制技术
事务是用户定义的一个数据库操作序列
事务和程序是两个概念,一般地讲,一个程序中包含多个事务
事务的开始与结束可以由用户显式控制。在SQL中,定义事务的语句一般有三条:
BEGIN TRANSACTION;
COMMIT;
ROLLBACK;
事务通常是以
BEGIN TRANSACTION
开始,以COMMIT
或ROLLBACK
结束
COMMIT
表示提交,即提交事务的所有操作ROLLBACK
表示回滚,即系统将事物中对数据库的所有已完成的操作全部撤销,回滚到事物开始时的状态
事务的四大特性(ACID特性)
-
原子性Atomicity
事务中包括的诸多操作要么都做,要么都不做
-
一致性Consistency
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态
事务的原子性,使得数据库都处于一致性状态
-
隔离性Isolation
一个事务的执行不能被其他事务干扰
并发执行的各个事务之间不能相互干扰
-
持续性Durability
一个事务一旦提交,它对数据库中数据的改变是永久的,不可逆的
数据库恢复
数据库管理系统必须具有把数据库从错误状态恢复到某一已知的正确状态的能力
恢复机制涉及两个问题:
- 如何建立冗余数据
- 如何利用这些冗余数据实施数据库恢复
建立冗余最常用的技术是数据转储和登记日志文件logging
数据转储
数据库管理员定期地将整个数据库复制到磁带、磁盘或其他存储介质上保存起来
登记日志文件
日志文件是用来记录事务对数据库的更新操作的文件
日志文件在数据库恢复中起着非常重要的作用,可以用来进行事务故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复