成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#數(shù)據(jù)庫的事務(wù)原理及實(shí)踐

開發(fā) 后端
本文將介紹C#數(shù)據(jù)庫的事務(wù)原理及實(shí)踐,會(huì)告訴我們什么是數(shù)據(jù)庫事務(wù)、以及C#數(shù)據(jù)庫的屬性等等。希望本文對(duì)大家有所幫助。

什么是C#數(shù)據(jù)庫事務(wù)

C#數(shù)據(jù)庫事務(wù)是指作為單個(gè)邏輯工作單元執(zhí)行的一系列操作。

設(shè)想網(wǎng)上購物的一次交易,其付款過程至少包括以下幾步數(shù)據(jù)庫操作:

◆更新客戶所購商品的庫存信息

◆保存客戶付款信息--可能包括與銀行系統(tǒng)的交互

◆生成訂單并且保存到數(shù)據(jù)庫中

◆更新用戶相關(guān)信息,例如購物數(shù)量等等

正常的情況下,這些操作將順利進(jìn)行,最終交易成功,與交易相關(guān)的所有數(shù)據(jù)庫信息也成功地更新。但是,如果在這一系列過程中任何一個(gè)環(huán)節(jié)出了差錯(cuò),例如在更新商品庫存信息時(shí)發(fā)生異常、該顧客銀行帳戶存款不足等,都將導(dǎo)致交易失敗。一旦交易失敗,數(shù)據(jù)庫中所有信息都必須保持交易前的狀態(tài)不變,比如最后一步更新用戶信息時(shí)失敗而導(dǎo)致交易失敗,那么必須保證這筆失敗的交易不影響數(shù)據(jù)庫的狀態(tài)--庫存信息沒有被更新、用戶也沒有付款,訂單也沒有生成。否則,數(shù)據(jù)庫的信息將會(huì)一片混亂而不可預(yù)測(cè)。

數(shù)據(jù)庫事務(wù)正是用來保證這種情況下交易的平穩(wěn)性和可預(yù)測(cè)性的技術(shù)。

C#數(shù)據(jù)庫事務(wù)的ACID屬性

事務(wù)處理可以確保除非事務(wù)性單元內(nèi)的所有操作都成功完成,否則不會(huì)永久更新面向數(shù)據(jù)的資源。通過將一組相關(guān)操作組合為一個(gè)要么全部成功要么全部失敗的單元,可以簡(jiǎn)化錯(cuò)誤恢復(fù)并使應(yīng)用程序更加可靠。一個(gè)邏輯工作單元要成為事務(wù),必須滿足所謂的ACID(原子性、一致性、隔離性和持久性)屬性:

◆原子性

事務(wù)必須是原子工作單元;對(duì)于其數(shù)據(jù)修改,要么全都執(zhí)行,要么全都不執(zhí)行。通常,與某個(gè)事務(wù)關(guān)聯(lián)的操作具有共同的目標(biāo),并且是相互依賴的。如果系統(tǒng)只執(zhí)行這些操作的一個(gè)子集,則可能會(huì)破壞事務(wù)的總體目標(biāo)。原子性消除了系統(tǒng)處理操作子集的可能性。

◆一致性

事務(wù)在完成時(shí),必須使所有的數(shù)據(jù)都保持一致狀態(tài)。在相關(guān)數(shù)據(jù)庫中,所有規(guī)則都必須應(yīng)用于事務(wù)的修改,以保持所有數(shù)據(jù)的完整性。事務(wù)結(jié)束時(shí),所有的內(nèi)部數(shù)據(jù)結(jié)構(gòu)(如B樹索引或雙向鏈表)都必須是正確的。某些維護(hù)一致性的責(zé)任由應(yīng)用程序開發(fā)人員承擔(dān),他們必須確保應(yīng)用程序已強(qiáng)制所有已知的完整性約束。例如,當(dāng)開發(fā)用于轉(zhuǎn)帳的應(yīng)用程序時(shí),應(yīng)避免在轉(zhuǎn)帳過程中任意移動(dòng)小數(shù)點(diǎn)。

◆隔離性

由并發(fā)事務(wù)所作的修改必須與任何其它并發(fā)事務(wù)所作的修改隔離。事務(wù)查看數(shù)據(jù)時(shí)數(shù)據(jù)所處的狀態(tài),要么是另一并發(fā)事務(wù)修改它之前的狀態(tài),要么是另一事務(wù)修改它之后的狀態(tài),事務(wù)不會(huì)查看中間狀態(tài)的數(shù)據(jù)。這稱為可串行性,因?yàn)樗軌蛑匦卵b載起始數(shù)據(jù),并且重播一系列事務(wù),以使數(shù)據(jù)結(jié)束時(shí)的狀態(tài)與原始事務(wù)執(zhí)行的狀態(tài)相同。當(dāng)事務(wù)可序列化時(shí)將獲得最高的隔離級(jí)別。在此級(jí)別上,從一組可并行執(zhí)行的事務(wù)獲得的結(jié)果與通過連續(xù)運(yùn)行每個(gè)事務(wù)所獲得的結(jié)果相同。由于高度隔離會(huì)限制可并行執(zhí)行的事務(wù)數(shù),所以一些應(yīng)用程序降低隔離級(jí)別以換取更大的吞吐量。

◆持久性

事務(wù)完成之后,它對(duì)于系統(tǒng)的影響是永久性的。該修改即使出現(xiàn)致命的系統(tǒng)故障也將一直保持。
DBMS的責(zé)任和我們的任務(wù)

企業(yè)級(jí)的數(shù)據(jù)庫管理系統(tǒng)(DBMS)都有責(zé)任提供一種保證事務(wù)的物理完整性的機(jī)制。就常用的SQLServer2000系統(tǒng)而言,它具備鎖定設(shè)備隔離事務(wù)、記錄設(shè)備保證事務(wù)持久性等機(jī)制。因此,我們不必關(guān)心數(shù)據(jù)庫事務(wù)的物理完整性,而應(yīng)該關(guān)注在什么情況下使用數(shù)據(jù)庫事務(wù)、事務(wù)對(duì)性能的影響,如何使用事務(wù)等等。

本文將涉及到在.net框架下使用C#數(shù)據(jù)庫事務(wù)的各個(gè)方面。

體驗(yàn)SQL語言的事務(wù)機(jī)制

作為大型的企業(yè)級(jí)數(shù)據(jù)庫,SQLServer2000對(duì)事務(wù)提供了很好的支持。我們可以使用SQL語句來定義、提交以及回滾一個(gè)事務(wù)。

如下所示的SQL代碼定義了一個(gè)事務(wù),并且命名為"MyTransaction"(限于篇幅,本文并不討論如何編寫SQL語言程序,請(qǐng)讀者自行參考相關(guān)書籍):

  1. DECLARE@TranNameVARCHAR(20)  
  2. SELECT@TranName='MyTransaction' 
  3. BEGINTRANSACTION@TranNameGOUSEpubs  
  4. GO  
  5. UPDATEroysched  
  6. SETroyalty=royalty*1.10  
  7. WHEREtitle_idLIKE'Pc%' 
  8. GO  
  9. COMMITTRANSACTIONMyTransaction  
  10. GO 

【編輯推薦】

  1. 淺析C#正則表達(dá)式
  2. 實(shí)現(xiàn)DB2功能的C#數(shù)據(jù)庫編程實(shí)例
  3. C#語言操縱數(shù)據(jù)庫事務(wù)
  4. 概述C#語言異常處理
  5. 簡(jiǎn)單介紹C#數(shù)組和函數(shù)
責(zé)任編輯:彭凡 來源: 51CTO
相關(guān)推薦

2009-08-06 18:10:06

C#數(shù)據(jù)庫事務(wù)

2009-08-25 15:50:13

C#連接遠(yuǎn)程數(shù)據(jù)庫

2024-05-28 00:00:30

Golang數(shù)據(jù)庫

2024-02-28 08:06:17

2009-08-07 15:38:15

精通C#數(shù)據(jù)庫編程

2009-08-10 18:00:30

C#數(shù)據(jù)庫備份及還原

2010-09-13 09:03:49

Access數(shù)據(jù)庫

2009-08-24 16:46:04

C# 泛型

2024-04-18 09:56:16

2009-08-11 13:35:13

C# Berkeley

2011-03-17 15:59:37

c#數(shù)據(jù)庫

2009-08-12 14:23:01

C#連接MySql數(shù)據(jù)

2009-03-19 10:08:09

C#數(shù)據(jù)庫查詢

2013-11-04 09:40:49

云數(shù)據(jù)庫數(shù)據(jù)庫加密云數(shù)據(jù)庫加密

2010-10-26 15:21:11

連接Oracle數(shù)據(jù)庫

2009-08-24 18:09:13

C#調(diào)用Oracle數(shù)

2009-09-04 17:23:21

C#數(shù)據(jù)庫連接對(duì)象

2009-08-25 14:05:06

C#連接數(shù)據(jù)庫代碼

2009-08-07 16:19:00

C#下數(shù)據(jù)庫編程

2009-07-31 17:01:21

C#存取Access數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 99re在线视频免费观看 | 毛片一级片 | 国产成人综合av | 国产精品久久久久久久午夜片 | 人人做人人澡人人爽欧美 | 中文字幕在线观看视频网站 | 日韩一级免费看 | 伊人精品一区二区三区 | 久久综合久色欧美综合狠狠 | 欧美一级做性受免费大片免费 | 国产欧美一区二区精品久导航 | 男女免费在线观看视频 | 精品一区二区观看 | 亚洲国产欧美一区 | 亚洲精品一区中文字幕乱码 | 欧美精品一区二区三区在线播放 | 国产中文视频 | 日韩精品一区二区三区中文在线 | 欧产日产国产精品国产 | 一区二区久久 | 欧美一区二区久久 | 福利成人| 日本视频免费观看 | 搞av.com| 久久久久免费精品国产 | 极品久久 | 久久精品色视频 | 国产电影一区二区在线观看 | 久久婷婷国产麻豆91 | 亚洲视频一区在线 | wwwww在线观看 | 夜夜骑首页 | 国产欧美一区二区三区久久人妖 | 一级做受毛片免费大片 | 国产高清视频在线观看播放 | 天天操人人干 | 精产国产伦理一二三区 | 亚洲+变态+欧美+另类+精品 | 国产特级毛片 | 天天综合久久 | 国产高清视频在线观看 |