(数据库系统概论|王珊)第十章数据库恢复技术-第一、二节:事务的基本概念和数据库恢复概述
文章目錄
- 一:事務(wù)的基本概念
- (1)事務(wù)
- A:定義
- B:事務(wù)的定義
- (2)事務(wù)的四個(gè)特性——ACID
- A:數(shù)據(jù)庫(kù)的ACID
- ①:原子性(Atomicity)
- ②:一致性(Consistency)
- ③:隔離性(Isolation)
- ④:持續(xù)性(Durability)
- B:破壞ACID的因素
- 二:數(shù)據(jù)庫(kù)恢復(fù)概述
一:事務(wù)的基本概念
(1)事務(wù)
A:定義
事務(wù):是用戶定義的一個(gè)數(shù)據(jù)庫(kù)操作序列。這些操作要么不做,要么全做,是一個(gè)不可分割的工作單位。例如在RDBMS中一個(gè)事務(wù)可以是一條SQL語(yǔ)句或整個(gè)程序。事務(wù)是數(shù)據(jù)庫(kù)恢復(fù)和并發(fā)控制的基本單位
- 事務(wù)和程序的區(qū)別:一般來(lái)說(shuō),一個(gè)程序中包含多個(gè)事務(wù)
B:事務(wù)的定義
事務(wù)的定義:事務(wù)的開(kāi)始與結(jié)束由用戶顯式控制。如果用戶沒(méi)有顯式地定義事務(wù),則由DBMS按默認(rèn)規(guī)定自動(dòng)劃分事務(wù)。在SQL中,定義事務(wù)語(yǔ)句有以下三條
- BEGIN TRANSACTION:表示事務(wù)的開(kāi)始
- COMMIT:表示事務(wù)的正常結(jié)束并提交事務(wù)的所有操作
- ROLLBACK:表示事務(wù)的結(jié)束,但沒(méi)有正常結(jié)束,需要進(jìn)行回滾(撤銷已完成操作,使系統(tǒng)恢復(fù)至回滾前狀態(tài))
注意不同數(shù)據(jù)庫(kù)系統(tǒng)定義語(yǔ)句有所區(qū)別
SQL Server
BEGIN TRANSACTION COMMIT | ROLLBACKMySQL
START TRANSACTION COMMIT | ROLLBACKOracle
START TRANSACTION NAME COMMIT | ROLLBACK(2)事務(wù)的四個(gè)特性——ACID
A:數(shù)據(jù)庫(kù)的ACID
①:原子性(Atomicity)
原子性:事務(wù)是數(shù)據(jù)庫(kù)的邏輯工作單位,事務(wù)中包含的諸多操作要么全做、要么不做。因故障未能做完的,需要有一套機(jī)制用于“撤銷”那一部分已經(jīng)做了的
②:一致性(Consistency)
一致性:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)
- 一致性狀態(tài):數(shù)據(jù)庫(kù)中只包含成功事務(wù)提交的結(jié)果
- 不一致?tīng)顟B(tài):數(shù)據(jù)庫(kù)中包含事務(wù)未完成時(shí)的狀態(tài)
例如銀行轉(zhuǎn)賬業(yè)務(wù),賬戶AAA轉(zhuǎn)1萬(wàn)元到賬戶BBB,該事務(wù)包含兩個(gè)操作:首先是AAA減少一萬(wàn)元,其次是BBB增加一萬(wàn)元,這兩個(gè)操作要么全部做要么全不做,如果只做其中一個(gè)就會(huì)發(fā)生邏輯錯(cuò)誤,數(shù)據(jù)庫(kù)就處于不一致?tīng)顟B(tài)了
③:隔離性(Isolation)
隔離性:一個(gè)事務(wù)不能被其他事務(wù)干擾。也即一個(gè)事務(wù)的內(nèi)部操作及使用的數(shù)據(jù)對(duì)其他并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾
比如,下列兩個(gè)并發(fā)執(zhí)行的事務(wù)T1和T2,如按表中所示順序執(zhí)行,則事務(wù)T1的修改被T2覆蓋了,即T2干撓了T1。違背了事務(wù)的隔離性,是錯(cuò)誤的調(diào)度
④:持續(xù)性(Durability)
持續(xù)性:一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變就是永久性的。接下來(lái)的其他操作或故障不應(yīng)該對(duì)其執(zhí)行結(jié)果有任何影響
B:破壞ACID的因素
主要有兩類
- 故障:沒(méi)有執(zhí)行完;雖然沒(méi)有完,但是存儲(chǔ)介質(zhì)故障。破壞了ACID中的ACD
- 并發(fā)干擾:多個(gè)事務(wù)并行運(yùn)行時(shí),不同事務(wù)的操作交叉執(zhí)行,互相干擾。破壞了ACID中的I
因此這就是DBMS的恢復(fù)機(jī)制和并發(fā)控制機(jī)制需要解決的問(wèn)題
- 本章介紹恢復(fù)機(jī)制
- 下一章介紹并發(fā)控制機(jī)制
二:數(shù)據(jù)庫(kù)恢復(fù)概述
定義:把數(shù)據(jù)庫(kù)從因破壞或故障而導(dǎo)致的錯(cuò)誤狀態(tài)恢復(fù)到某個(gè)已知的正確狀態(tài)的技術(shù)
目的:
- 保持事務(wù)的原子性
- 保持事務(wù)的持久性
實(shí)現(xiàn):由DBMS專門(mén)的恢復(fù)子系統(tǒng)完成
總結(jié)
以上是生活随笔為你收集整理的(数据库系统概论|王珊)第十章数据库恢复技术-第一、二节:事务的基本概念和数据库恢复概述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: AFN post的数据编码格式问题
- 下一篇: (数据库系统概论|王珊)第六章关系数据理