新聞中心
隨著現(xiàn)代信息技術(shù)的不斷發(fā)展,數(shù)據(jù)庫(kù)技術(shù)在信息處理中發(fā)揮越來(lái)越重要的作用。而數(shù)據(jù)庫(kù)事務(wù)是數(shù)據(jù)庫(kù)操作的一種重要方式,被廣泛應(yīng)用于各個(gè)領(lǐng)域。事務(wù)是指一組有序操作序列,這組操作要么全部執(zhí)行成功,或者全部回滾,不會(huì)出現(xiàn)只執(zhí)行其中幾個(gè)的情況。數(shù)據(jù)庫(kù)事務(wù)模式是指執(zhí)行數(shù)據(jù)庫(kù)事務(wù)中規(guī)定的全部操作的模板。本文將深入探究三種常見的數(shù)據(jù)庫(kù)事務(wù)模式,以幫助大家更好地了解和應(yīng)用數(shù)據(jù)庫(kù)事務(wù)。

創(chuàng)新互聯(lián)公司聯(lián)系熱線:028-86922220,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),創(chuàng)新互聯(lián)公司網(wǎng)頁(yè)制作領(lǐng)域十載,包括成都砂巖浮雕等多個(gè)領(lǐng)域擁有豐富設(shè)計(jì)經(jīng)驗(yàn),選擇創(chuàng)新互聯(lián)公司,為網(wǎng)站錦上添花!
一、ACID模式
ACID模式是數(shù)據(jù)庫(kù)事務(wù)模式中應(yīng)用最廣泛的一種。ACID是由四個(gè)英文單詞的首字母組成,分別是Atomicity、Consistency、Isolation、Durability。這四個(gè)特征分別代表了:
1.原子性(Atomicity):事務(wù)是原子操作單元,要么全部執(zhí)行成功,要么全部回滾,不會(huì)出現(xiàn)部分執(zhí)行的情況。
2.一致性(Consistency):在事務(wù)開始和結(jié)束的時(shí)候,數(shù)據(jù)庫(kù)的狀態(tài)應(yīng)該保持一致。
3.隔離性(Isolation):一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾,事務(wù)與事務(wù)之間是相互隔離的。
4.持久性(Durability):事務(wù)一旦提交,其對(duì)數(shù)據(jù)庫(kù)的修改就是永久性的,不會(huì)因?yàn)槿魏卧蚨怀蜂N。
ACID模式的優(yōu)點(diǎn)是保證了數(shù)據(jù)的一致性和可靠性。然而,也因?yàn)锳CID模式的隔離性比較強(qiáng),所以其并發(fā)度比較低,可能導(dǎo)致系統(tǒng)性能下降。
二、BASE模式
BASE模式是最近幾年出現(xiàn)的一種數(shù)據(jù)庫(kù)事務(wù)模式。這個(gè)名字也是由三個(gè)英文單詞的首字母組成,分別是Basic Avlability、Soft State、Eventually Consistency。這三個(gè)特征分別代表了:
1.基本可用(Basic Avlability):系統(tǒng)能夠部分處理請(qǐng)求,哪怕是在面臨故障的情況下,也能不降級(jí)處理請(qǐng)求。
2.軟狀態(tài)(Soft State):允許系統(tǒng)反饋不確定信息。
3.最終一致性(Eventually Consistency):系統(tǒng)會(huì)在一段時(shí)間內(nèi)自動(dòng)達(dá)成一致狀態(tài),再讓用戶查詢。
BASE模式的優(yōu)點(diǎn)是在高并發(fā)下對(duì)系統(tǒng)性能的壓力比較小,并且允許系統(tǒng)出現(xiàn)短暫的不一致狀態(tài),但是這種狀態(tài)會(huì)在一定時(shí)間內(nèi)自動(dòng)得到糾正。
三、CAP模式
CAP模式是指數(shù)據(jù)庫(kù)系統(tǒng)在分布式環(huán)境中的一種高可用性的設(shè)計(jì)模式。CAP是Consistency(一致性)、Avlability(可用性)和Partition Tolerance(分區(qū)容錯(cuò)性)三個(gè)單詞的首字母。CAP模式的核心思想是無(wú)法同時(shí)保證三個(gè)特性的完全滿足,必須在其中做出取舍。
在CAP模式中,當(dāng)出現(xiàn)了網(wǎng)絡(luò)分區(qū)(Partition)的情況,必須要在一致性(Consistency)和可用性(Avlability)中做出選擇。如果選用了AP模式(可用性優(yōu)先),那么系統(tǒng)會(huì)在網(wǎng)絡(luò)分區(qū)的條件下優(yōu)先保證可用性,而犧牲一定的一致性;如果選用了CP模式(一致性優(yōu)先),那么系統(tǒng)優(yōu)先保證一致性,而犧牲一定的可用性。
:
本文深入探究了三種常見的數(shù)據(jù)庫(kù)事務(wù)模式,包括ACID模式、BASE模式和CAP模式。ACID模式保證了數(shù)據(jù)的一致性和可靠性,但是其并發(fā)度比較低;BASE模式對(duì)系統(tǒng)性能的壓力比較小,但是允許出現(xiàn)短暫的不一致狀態(tài);CAP模式是分布式系統(tǒng)中的一種高可用性的設(shè)計(jì)模式,在一致性和可用性之間需要做出取舍。不同的數(shù)據(jù)庫(kù)事務(wù)模式各有優(yōu)劣,需要根據(jù)不同的應(yīng)用場(chǎng)景來(lái)選擇。
相關(guān)問(wèn)題拓展閱讀:
- 數(shù)據(jù)庫(kù)中的事務(wù)是什么?
- 數(shù)據(jù)庫(kù)有哪三種恢復(fù)模式?在3種恢復(fù)模式下,數(shù)據(jù)庫(kù)日志文件會(huì)執(zhí)行什么樣的操作
數(shù)據(jù)庫(kù)中的事務(wù)是什么?
(1):事務(wù)(Transaction)是并發(fā)控制的單位,是用戶定義的一個(gè)操作序列。這些操作要么都做,要么都不做,是一個(gè)不可分割的工作單位。通過(guò)事務(wù),SQL Server能將邏輯相關(guān)的一組逗埋操作綁定在一起,以便服務(wù)器保持?jǐn)?shù)據(jù)的完整性。
(2):事務(wù)通常是以BEGIN TRANSACTION開始,以COMMIT或ROLLBACK結(jié)束。
COMMIT表示提交,即提交事務(wù)的所有操作。具體地說(shuō)就是將事務(wù)中所有對(duì)數(shù)據(jù)庫(kù)的更新寫回到磁盤上的物理數(shù)據(jù)庫(kù)中去,事務(wù)正常結(jié)束。
ROLLBACK表示回滾,即在事務(wù)運(yùn)行的過(guò)程中發(fā)生了某種故障,事務(wù)不能繼續(xù)進(jìn)行,系統(tǒng)將事務(wù)中對(duì)數(shù)據(jù)庫(kù)的所有以完成的操作全部撤消,滾回到事務(wù)開始的狀態(tài)。
(3):事務(wù)運(yùn)行的三種模式:
A:自動(dòng)提交事務(wù)
每條單獨(dú)的語(yǔ)句都是一個(gè)事務(wù)。每個(gè)語(yǔ)句后都隱含一個(gè)顫指伍COMMIT。
B:顯式事務(wù)
以BEGIN TRANSACTION顯式開始,茄或以COMMIT或ROLLBACK顯式結(jié)束。
C:隱性事務(wù)
在前一個(gè)事務(wù)完成時(shí),新事務(wù)隱式啟動(dòng),但每個(gè)事務(wù)仍以COMMIT或ROLLBACK顯式結(jié)束。
(4):事務(wù)的特性(ACID特性)
A:原子性(Atomicity)
事務(wù)是數(shù)據(jù)庫(kù)的邏輯工作單位,事務(wù)中包括的諸操作要么全做,要么全不做。
B:一致性(Consistency)
事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。一致性與原子性是密切相關(guān)的。
C:隔離性(Isolation)
一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。
D:持續(xù)性/永久性(Durability)
一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變就應(yīng)該是永久性的。
注:事務(wù)是恢復(fù)和并發(fā)控制的基本單位。
數(shù)據(jù)庫(kù)事務(wù)是指作為單個(gè)邏輯工作單元執(zhí)行的一系列操作?! ≡O(shè)想網(wǎng)上購(gòu)物的一次交易,其付款過(guò)程至少包括以下幾步數(shù)據(jù)庫(kù)操作: · 更新客戶所購(gòu)商品的庫(kù)存信息 · 保存客戶付款信息–可能包括與銀行系統(tǒng)的交互 · 生成訂單并且保存到數(shù)據(jù)庫(kù)中 · 更新用戶相關(guān)信息,例如購(gòu)物數(shù)量等等 正常的情況下,這些操作將順利進(jìn)行,最終交易成功,與交易相關(guān)的所有數(shù)據(jù)庫(kù)信息也成功地更新。但是,如果在這一系列過(guò)程中任何一個(gè)環(huán)節(jié)出了差錯(cuò),例如在更殲孫新商品庫(kù)存信息時(shí)發(fā)生異常、該顧客銀行帳戶存款不足等,都將導(dǎo)致交易失敗。一旦交易失敗,數(shù)據(jù)庫(kù)中所有信息都必須保持交易前的狀態(tài)不變,比如最后一步更新用戶信息時(shí)失敗而導(dǎo)致交易失敗,那么必須保證這筆失敗的交易不影響數(shù)據(jù)庫(kù)的狀賣改頌態(tài)–庫(kù)存信息沒(méi)有被更新、用戶也沒(méi)有付款,訂單也沒(méi)有生成。否則,數(shù)據(jù)庫(kù)的信息將會(huì)一片混亂而不可預(yù)測(cè)?! ?shù)據(jù)庫(kù)事務(wù)正是用來(lái)保中鄭證這種情況下交易的平穩(wěn)性和可預(yù)測(cè)性的技術(shù)?!C資料:
事務(wù)是作為一個(gè)邏輯單元執(zhí)行的一系列操作,一個(gè)邏輯工作單元必須有四個(gè)屬性,稱為 ACID(原子性、一致性、隔離性和持久寬穗性)屬性,
只有這樣才能成為一個(gè)事務(wù):
原子性
事務(wù)必須是原子工作單元;對(duì)于其數(shù)據(jù)修改,要么全都執(zhí)行,要么全都不執(zhí)行。
一致性
事務(wù)哪毀在完成時(shí),必須使所有的數(shù)據(jù)都保持一致狀態(tài)。在相關(guān)數(shù)據(jù)庫(kù)中,所有規(guī)則都必須應(yīng)用于慎緩卜事務(wù)的修改,以保持所有數(shù)據(jù)的完整性。
事務(wù)結(jié)束時(shí),所有的內(nèi)部數(shù)據(jù)結(jié)構(gòu)(如 B 樹索引或雙向鏈表)都必須是正確的。
隔離性
由并發(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)相同。
持久性
事務(wù)完成之后,它對(duì)于系統(tǒng)的影響是永久性的。該修改即使出現(xiàn)系統(tǒng)故障也將一直保持。
數(shù)據(jù)庫(kù)事務(wù)(簡(jiǎn)稱:事務(wù))是數(shù)據(jù)庫(kù)管理系統(tǒng)執(zhí)行過(guò)程中的一個(gè)邏輯單位,由一個(gè)有限的數(shù)據(jù)庫(kù)操作序列構(gòu)成。
一個(gè)數(shù)據(jù)庫(kù)事務(wù)通常包含了一個(gè)序列的對(duì)數(shù)據(jù)庫(kù)的讀/寫操作。它的存在包含有以下兩個(gè)目的:
為數(shù)據(jù)庫(kù)操作序列提供了一個(gè)從失敗中恢復(fù)到正常狀態(tài)的方法,同時(shí)提供了數(shù)據(jù)庫(kù)即使運(yùn)跡毀在異常狀態(tài)下仍能保持一致性的方法。
當(dāng)多個(gè)應(yīng)用程序在并發(fā)訪問(wèn)數(shù)據(jù)庫(kù)時(shí),可以在這些應(yīng)用程序之間提供一個(gè)隔離方法,以防止彼此的操作互相干擾。
當(dāng)事務(wù)被提交給了DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng)),則DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng))需要確保該事務(wù)中的所有操作都成功完成且其結(jié)果被永久保存在數(shù)據(jù)庫(kù)中,如果事務(wù)中有的操作沒(méi)有成功完成,則事務(wù)中的所有操作都需要被回滾,回到事務(wù)執(zhí)行前的狀態(tài);同時(shí),該事務(wù)對(duì)數(shù)據(jù)庫(kù)或者其他事務(wù)的執(zhí)行無(wú)影響,所有的事務(wù)都好像在獨(dú)立的運(yùn)行。
但在現(xiàn)實(shí)情況下,失敗的風(fēng)險(xiǎn)州擾很高。在一個(gè)數(shù)據(jù)庫(kù)事務(wù)的執(zhí)行過(guò)程中,有可能會(huì)遇上事務(wù)操作失敗、數(shù)據(jù)庫(kù)系統(tǒng)/操作系統(tǒng)失敗,甚至是存儲(chǔ)介質(zhì)失敗等情況。這便需要DBMS對(duì)一個(gè)執(zhí)旁備行失敗的事務(wù)執(zhí)行恢復(fù)操作,將其數(shù)據(jù)庫(kù)狀態(tài)恢復(fù)到一致狀態(tài)(數(shù)據(jù)的一致性得到保證的狀態(tài))。為了實(shí)現(xiàn)將數(shù)據(jù)庫(kù)狀態(tài)恢復(fù)到一致狀態(tài)的功能,DBMS通常需要維護(hù)事務(wù)日志以追蹤事務(wù)中所有影響數(shù)據(jù)庫(kù)數(shù)據(jù)的操作。
數(shù)據(jù)庫(kù)事務(wù)(Database Transaction) ,是指作為單個(gè)邏輯工作單元執(zhí)行的一系鉛輪列或棚操作。 事務(wù)衫激則處理可以確保除非事務(wù)性單元內(nèi)的所有操作都成功完成,否則不會(huì)永久更新面向數(shù)據(jù)的資源。通過(guò)將一組相關(guān)操作組合為一個(gè)要么全部成功要么全部失敗的單元,可以簡(jiǎn)化錯(cuò)誤恢復(fù)并使應(yīng)用程序更加可靠。一個(gè)邏輯工作單元要成為事務(wù),必須滿足所謂的ACID(原子性、一致性、隔離性和持久性)屬性。
數(shù)據(jù)庫(kù)有哪三種恢復(fù)模式?在3種恢復(fù)模式下,數(shù)據(jù)庫(kù)日志文件會(huì)執(zhí)行什么樣的操作
SQL
Server數(shù)據(jù)庫(kù)有三種恢復(fù)模式:簡(jiǎn)單恢復(fù)模式、完整恢復(fù)模式和大容量日志恢復(fù)模式。
相對(duì)于簡(jiǎn)單恢復(fù)模式而言,完整恢復(fù)模式和大容量日志恢復(fù)模式提供了更強(qiáng)的數(shù)據(jù)保護(hù)功能。這些恢復(fù)模式都是基于備份事務(wù)日志來(lái)提供完整的可恢復(fù)性及在更大范圍的故障情形內(nèi)防止丟失工作。通常,數(shù)據(jù)庫(kù)使用完整恢復(fù)模式或簡(jiǎn)單恢復(fù)模式。
下面對(duì)三種恢復(fù)模式做一個(gè)比較:
恢復(fù)模式
日志備份
恢復(fù)點(diǎn)
優(yōu)點(diǎn)
缺點(diǎn)
解決方案及建議
簡(jiǎn)單(Simple)
無(wú)日志備份。
自動(dòng)回收日志空間以減少空間需求,實(shí)際上不再需要管理事務(wù)日志空間。
最新備份之后的更改不受保護(hù)。在發(fā)生災(zāi)難時(shí),這些更改必須重做。只能恢復(fù)到備份的結(jié)尾。
簡(jiǎn)單恢復(fù)模式可更大程度地減少事務(wù)日志的管理開銷,因?yàn)椴涣杨澃莻浞菔聞?wù)日志。
如果數(shù)據(jù)庫(kù)損壞,則簡(jiǎn)單恢復(fù)模式將面臨極大的工作丟失風(fēng)險(xiǎn)。數(shù)據(jù)只能恢復(fù)到已丟失數(shù)據(jù)的最新備份。
在簡(jiǎn)單恢復(fù)模式下,備份間隔應(yīng)盡可能短,以防止大量丟失數(shù)據(jù)。簡(jiǎn)單恢復(fù)模式并不適合生產(chǎn)系統(tǒng),因?yàn)閷?duì)生產(chǎn)系洞塵統(tǒng)而言,丟失最新的更改是無(wú)法接受的。在這種情況下,我們建議使用完整恢復(fù)模式。
完整(Full)
需要日志備份。
理論上可以恢復(fù)到任意時(shí)點(diǎn)。
數(shù)據(jù)文件丟失或損壞不會(huì)導(dǎo)致丟失工作。
此模式完整記錄所有事務(wù),占用大量空間。
大容量(Bulk-logged)
需要日志備份。
如果在最新日志備份后發(fā)生日志損壞或執(zhí)行大容量日志記錄操作,則必須重做自該上次備份之后所做的更改。
可以恢復(fù)到任何備份肆昌的結(jié)尾。不支持時(shí)點(diǎn)恢復(fù)。
該模式是完整恢復(fù)模式的附加模式,允許執(zhí)行高性能的大容量復(fù)制操作。通過(guò)使用最小方式記錄大多數(shù)大容量操作,減少日志空間使用量。
比完整模式節(jié)省日志存儲(chǔ)空間。
對(duì)于某些大規(guī)模大容量操作(如大容量導(dǎo)入或索引創(chuàng)建),暫時(shí)切換到大容量日志恢復(fù)模式可提高性能并減少日志空間使用量。由于大容量日志恢復(fù)模式不支持時(shí)點(diǎn)恢復(fù),因此必須在增大日志備份與增加工作丟失風(fēng)險(xiǎn)之間進(jìn)行權(quán)衡。
注意:
1.
適合于數(shù)據(jù)庫(kù)的恢復(fù)模式取決于數(shù)據(jù)庫(kù)的可用性和恢復(fù)要求。
2.
在完整恢復(fù)模式和大容量日志恢復(fù)模式下,必須進(jìn)行日志備份。如果不想進(jìn)行日志備份,則請(qǐng)使用簡(jiǎn)單恢復(fù)模式。
關(guān)于三種模式的數(shù)據(jù)庫(kù)事務(wù)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)公司提供專業(yè)的建站服務(wù),為您量身定制,歡迎來(lái)電(028-86922220)為您打造專屬于企業(yè)本身的網(wǎng)絡(luò)品牌形象。
成都創(chuàng)新互聯(lián)品牌官網(wǎng)提供專業(yè)的網(wǎng)站建設(shè)、設(shè)計(jì)、制作等服務(wù),是一家以網(wǎng)站建設(shè)為主要業(yè)務(wù)的公司,在網(wǎng)站建設(shè)、設(shè)計(jì)和制作領(lǐng)域具有豐富的經(jīng)驗(yàn)。
網(wǎng)站題目:深入探究三種常見數(shù)據(jù)庫(kù)事務(wù)模式(三種模式的數(shù)據(jù)庫(kù)事務(wù))
當(dāng)前地址:http://fisionsoft.com.cn/article/cosihgd.html


咨詢
建站咨詢
