事務是資料庫裡面的乙個基本概念。
所謂事務,就是一系列的資料庫操作
。注意是一系列的操作,這些操作要麼全做,要麼乙個也不做,這是乙個不能被分割
的單位。事務處理可以維護資料庫的完整性。
在關聯式資料庫中,乙個事務可以是:
事務和程式是兩個概念。一般來講,乙個程式中往往會包含多個事務。
在sql
中,定義事務的語句一般有三條:
在mysql
中,是如下三條:
事務往往是從begin transaction
開始,以commit
或者rollback
結束。
commit
代表提交操作,即提交事務的所有操作,也就是說將事務中那些對資料庫的更新同步寫到磁碟上去。對於一般的sql
語句來講,都是直接針對資料庫表執行和編寫的,也就是說sql語句執行後會自動同步更新到磁碟上,這也被稱為隱含提交(implicit commit)
,而在事務中,提交不會自動完成,為了進行明確的提交,需要使用commit
語句。
rollback
代表回滾操作,即在事務的執行過程中如果遇到問題,不能夠正常執行下去,那麼就回滾到事務執行前的狀態。這也就體現了事務的原子性
:要麼全部執行,要麼全不
執行。
事務具有4個特性:
這四個特性簡稱為acid特性(acid properties)
事務管理的重要任務就是指保證事務的acid
特性。因為事務的這四大特性也會可能遭到破壞的,例如:
遇到如上的情況時候,就需要對資料進行恢復了,將資料庫恢復到正確的狀態。
在實際應用中,資料庫可能會出現各種各樣的問題,有可能資料庫本身遭到破壞,也有可能資料庫沒有受到破壞,但是資料出現不正確。當出現這些問題的時候,我們肯定需要將資料庫恢復到正常,能夠正常使用,而實際上,資料庫恢復的基本原理很簡單,用乙個詞就能概括:冗餘
。也就是建立冗餘資料,說的好聽點就是搞一點正常情況下多餘的資料,用來幫助恢復資料庫。比如對資料庫直接進行備份
,那麼如果資料庫遇到問題,直接把備份資料載入使用就行。或者登記一些日誌檔案
,這些日誌檔案記錄進行的操作、遇到的問題等。恢復的時候通過分析日誌檔案進行資料庫恢復。
在實際資料庫系統中,這兩種方法往往是一起使用的。
其中對資料進行備份也叫做資料轉儲
,資料轉儲是資料庫恢復中採用的基本技術,也就是資料庫管理員定期的將整個資料庫的資料複製到硬碟等儲存介質上儲存起來的過程,這些備用的資料也叫做副本。
但是這些資料庫恢復方法都只能將資料庫恢復到故障發生前的某乙個確定狀態。
當資料庫遭到破壞的時候,可以將後備副本重新裝入資料庫使用,但是重灌後只能將資料庫恢復到儲存時的狀態
,要想恢復到故障發生時的狀態,必須重新執行自轉儲
以後的所有更新事務,這個時候就會結合日誌檔案。
因為在很多企業等,資料量都是十分龐大的,因此轉儲是十分耗費時間和資源的,不能頻繁的進行。因此需要確定適當的轉儲週期。
而轉儲分為靜態轉儲
和動態轉儲
。
靜態轉儲比較好理解,就是在系統沒有執行任何事務的時候,對資料進行轉儲。即轉儲操作開始的時候資料庫處於一致性狀態。同時轉儲期間不允許對資料庫進行任何訪問修改活動。
動態轉儲就是指轉儲期間允許對資料庫進行訪問和修改。即轉儲和使用者事務可以併發執行。但是動態轉儲後的資料不一定能保證正確有效,因此在動態轉儲的時候,需要建立執行的各事務對資料庫的修改活動的日誌檔案。這樣轉儲成功後可以結合日誌檔案將資料庫恢復到某一時刻的正確狀態。
同時資料轉儲又有兩種方式,為海量轉儲
和增量轉儲
。前者指直接備份資料庫的所有資料,後者指只更新改變的資料。
資料庫的事務是什麼
事務是作為乙個邏輯單元執行的一系列操作,乙個邏輯工作單元必須有四個屬性,稱為 acid 原子性 一致性 隔離性和永續性 屬性,只有這樣才能成為乙個事務 1,原子性 事務必須是原子工作單元 對於其資料修改,要麼全都執行,要麼全都不執行。2,一致性 事務在完成時,必須使所有的資料都保持一致狀態。在相關資...
資料庫中的事務是什麼
資料庫中的事務是什麼 事務是作為乙個邏輯單元執行的一系列操作,乙個邏輯工作單元必須有四個屬性,稱為 acid 原子性 一致性 隔離性和永續性 屬性,只有這樣才能成為乙個事務 原子性 事務必須是原子工作單元 對於其資料修改,要麼全都執行,要麼全都不執行。一致性 事務在完成時,必須使所有的資料都保持一致...
資料庫中的事務是什麼?
1.事務是作為乙個邏輯單元執行的一系列操作,乙個邏輯工作單元必須有四個屬性,稱為 acid 原子性 一致性 隔離性和永續性 屬性,只有這樣才能成為乙個事務 原子性2.事務必須是原子工作單元 對於其資料修改,要麼全都執行,要麼全都不執行。一致性3.事務在完成時,必須使所有的資料都保持一致狀態。在相關資...