事務的基本概念 面試常問
[code]
1. 事務定義
事務(transaction)是使用者定義的乙個資料庫操作序列,這些操作要麼全做,要麼全不做,是乙個不可分割的工作單位.乙個事務可以是一條sql語句,也可以是一組sql語句.如銀行轉帳操作,從a帳號轉入1000元資金到b帳號,包括從a帳號取出1000元和將1000元存入b帳號兩個操作,如果從a帳號取出1000元成功而b帳號存入1000元失敗,或者從a帳號取出1000元失敗而b帳號存入1000成功,只要其中乙個操作失敗,轉帳操作失敗.事務是這樣一種機制,它確保多個sql語句被當作單個工作單元來處理.
在sql語言中,事務控制的語句有:begin transaction,commit,rollback.如果使用者沒有指明事務的開始和結束,dbms按預設規定自動劃分事務.使用者以begin transaction開始事務,以commit或rollback結束事務.commit表示提交事務,用於正常結束事務.rollback表示回滾, 在事務執行過程中發生故障,事務不能繼續,撤消事務中所有已完成的操作,回到事務開始的狀態.
2. 事務性質
事務具有四個特性:原子性(atomicity),一致性(consistency),隔離性(isolation)和持續性 (durability).簡稱為acid特性.
(1) 原子性
事務是資料庫的邏輯工作單位,被看做乙個單一的,不可分割的操作單元.事務中包括的所有操作要麼都做,要麼都不做.
(2) 一致性
事務執行的結果必須是使資料庫從乙個一致狀態變到另乙個一致狀態.因此當資料庫只包含成功事務提交的結果時,就說資料庫處於一致狀態.如果資料庫系統執行中發生故障,有些事務尚未完成就被迫中斷,系統將事務中對資料庫的所有已完成的操作全部撤消,回滾到事務開始時的一致狀態.
(3) 隔離性
乙個事務的執行不能被其他事務干擾.即乙個事務內部的操作及使用的資料對其他併發事務是隔離的,併發執行的各個事務之間不能互相干擾.
(4) 持續性
指乙個事務一旦提交,它對資料庫中資料的改變就應該是永久性的.接下來的其他操作或故障不應該對其執行結果有任何影響.
保證事務acid特性是事務處理的重要任務.事務acid特性可能遭到破壞的因素有:
(1) 多個事務並行執行時,不同事務的操作交叉執行.
(2) 事務在執行過程中被強行停止.
在第一種情況下,資料庫管理系統必須保證多個事務的交叉執行不影響這些事務的原子性;在第二種情況下,資料庫管理系統必須保證被強行終止的事務對資料庫和其它事務沒有任何影響.這些就是資料庫管理系統中併發控制和恢復機制的任務.
[/code]
事務的基本概念
是使用者定義的乙個資料庫操作序列,這些操作要麼全做,要麼全不做,是乙個不可分割的工作單位。begin transaction 事務開始 commit 提交,提交事務的所有操作 rollback rollback 回滾,即在事務執行的過程中發生了某些故障,事務不能繼續執行,系統將事務中對資料庫的所有已...
事務 Transaction 基本概念
事務 transaction 基本概念 一 什麼是事務 事務是應用程式中一系列嚴密的操作,所有操作必須成功完成,否則在每個操作中所作的所有更改都會被撤消。也就是事務具有原子性,乙個事務中的一系列的操作要麼全部成功,要麼乙個都不做。事務的結束有兩種,當事務中的所以步驟全部成功執行時,事務提交。如果其中...
事務 Transaction 基本概念
事務 transaction 基本概念 一 什麼是事務 事務是應用程式中一系列嚴密的操作,所有操作必須成功完成,否則在每個操作中所作的所有更改都會被撤消。也就是事務具有原子性,乙個事務中的一系列的操作要麼全部成功,要麼乙個都不做。事務的結束有兩種,當事務中的所以步驟全部成功執行時,事務提交。如果其中...