當前位置:編程學習大全網 - 編程語言 - 計算機交易概念

計算機交易概念

這是編程中常用的名詞!控制程序異常時的回滾或其他處理!

Sqlserver2000中的事務處理壹、定義和屬性:事務:事務是作為單個邏輯工作單元執行的壹系列操作。屬性:壹個邏輯工作單元必須有四個屬性,稱為ACID(原子性、壹致性、隔離性和持久性)屬性。只有這樣才能變成交易:1。原子性:事務必須是工作的原子單位;對於其數據修改,要麽全部執行,要麽壹個都不執行。2.壹致性:當壹個事務完成時,所有的數據必須保持壹致的狀態。在相關數據庫中,所有規則必須應用於交易的修改,以保持所有數據的完整性。在事務結束時,所有內部數據結構(如B樹索引或鏈表)必須正確。3.隔離:並發事務所做的修改必須與任何其他並發事務所做的修改隔離開來。當事務查看數據時,數據的狀態要麽是在被另壹個並發事務修改之前,要麽是在被另壹個事務修改之後,事務不會查看處於中間狀態的數據。這就是所謂的可序列化,因為它可以重新加載初始數據,並重放壹系列事務,以便數據結束時的狀態與原始事務的狀態相同。4.持久性:事務完成後,它對系統的影響是永久的。即使存在系統故障,也將保持這種修改。第二,指定並強制事務處理SQL程序員負責事務的開始和結束,同時強制數據的邏輯壹致性。程序員必須定義數據修改的順序,以使數據與其組織的業務規則保持壹致。然後,程序員將這些修改後的語句包含到壹個事務中,這使得微軟?SQL Server?可以實施交易的物理完整性。企業數據庫系統(如SQL Server)有責任提供壹種機制來確保每個事務的物理完整性。SQL Server提供:鎖定設備以將事務相互隔離。確保交易持續性的記錄設備。即使服務器硬件、操作系統或SQL Server本身出現故障,SQL Server也可以在重啟時使用事務日誌,自動將所有未完成的事務回滾到系統出現故障的位置。事務管理特性,強制事務的原子性和壹致性。事務啟動後,必須成功完成,否則SQL Server將在事務啟動後撤消對數據所做的所有修改。第三,控制事務:

應用程序主要通過指定事務的開始和結束時間來控制事務。這可以使用Transact-SQL語句或數據庫API函數來完成。系統還必須能夠正確處理在交易完成前終止交易的錯誤。事務在連接層進行管理。當在連接上啟動事務時,在事務結束之前,在該連接上執行的所有Transact-SQL語句都是事務的壹部分。

1,開始交易

在微軟?SQL Server?您可以在顯式自動提交或隱式模式下啟動事務。

1)顯式事務:通過發出BEGIN TRANSACTION語句顯式啟動事務。

2)自動提交事務:這是SQL Server的默認模式。每個Transact-SQL語句都是在完成後提交的。您不必指定任何語句來控制事務。

3)隱式事務:通過API函數或Transact-SQL set Implicit _ transactions on語句將隱式事務模式設置為open。下壹條語句自動開始壹個新的事務。事務完成後,下壹條Transact-SQL語句將啟動新的事務。

4)在連接層管理連接模式。如果壹個連接從壹種事務模式更改為另壹種,它不會影響任何其他連接的事務模式。

2.結束交易

您可以用COMMIT或ROLLBACK語句結束事務。

1)提交:如果事務成功,提交。COMMIT語句保證事務的所有修改在數據庫中永久有效。COMMIT語句還釋放資源,如事務使用的鎖。

2)回滾:如果事務出現錯誤或者用戶決定取消事務,可以回滾事務。ROLLBACK語句通過將數據返回到事務開始時的狀態來恢復事務中所做的所有修改。回滾還會釋放事務占用的資源。

3.指定事務邊界

可以使用Transact-SQL語句或API函數和方法來確定SQL Server事務的開始和結束時間。

1) Transact-SQL語句:使用BEGIN TRANSACTION、COMMIT TRANSACTION、COMMIT WORK、ROLLBACK TRANSACTION、ROLLBACK WORK和SET IMPLICIT_TRANSACTIONS語句描述事務。這些語句主要用在DB-Library應用程序和Transact-SQL腳本中,例如那些用osql命令提示實用程序運行的腳本。

2) API函數和方法:數據庫API(如ODBC、OLE DB和ADO)包含用於描述事務的函數和方法。它們是用於控制SQL Server應用程序中的事務的主要機制。

3)每個事務必須僅由這些方法中的壹種來管理。在同壹事務中使用兩種方法可能會導致不確定的結果。例如,在使用Transact-SQL COMMIT語句完成事務之前,不應使用ODBC API函數啟動事務。這不會通知SQL Server ODBC驅動程序事務已經提交。在這種情況下,應該使用ODBC SQLEndTran函數來結束事務。

4.交易處理中的錯誤

1)如果服務器錯誤導致事務無法成功完成,SQL Server將自動回滾事務並釋放事務占用的所有資源。如果客戶端與SQL Server的網絡連接中斷,當網絡通知SQL Server中斷時,該連接的所有未完成事務都將回滾。如果客戶端應用程序失敗或客戶端計算機崩潰或重新啟動,連接也將斷開,當網絡通知SQL Server中斷時,所有未完成的連接都將回滾。如果客戶退出應用程序,所有未完成的事務也將被回滾。

2)如果批處理中存在運行時語句錯誤(如違反約束),SQL Server中的默認行為將是僅回滾導致錯誤的語句。您可以使用SET XACT_ABORT語句來更改這種行為。set xact _ abort語句執行後,任何運行時語句錯誤都會導致當前事務自動回滾。編譯錯誤(如語法錯誤)不受SET XACT_ABORT的影響。

3)如果存在運行時錯誤或編譯錯誤,程序員應該編寫應用程序代碼來指定正確的操作(提交或回滾)。

請參閱< < SQL Server 2000幫助文件> >

  • 上一篇:棗莊市教育局直屬8所學校及各區(市)教師是否公開招聘?
  • 下一篇:數學建模的語言選擇問題。
  • copyright 2024編程學習大全網