日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

[转]数据库事务ACID特性

發布時間:2023/12/4 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]数据库事务ACID特性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

ACID特性

?

數據庫管理系統中事務(transaction)的四個特性(分析時根據首字母縮寫依次解釋):原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)

所謂事務,它是一個操作序列,這些操作要么都執行,要么都不執行,它是一個不可分割的工作單位。(執行單個邏輯功能的一組指令或操作稱為事務)

?

詳解

?

1. 原子性

?

原子性是指事務是一個不可再分割的工作單元,事務中的操作要么都發生,要么都不發生。

可采用“A向B轉賬”這個例子來說明解釋

在DBMS中,默認情況下一條SQL就是一個單獨事務,事務是自動提交的。只有顯式的使用start transaction開啟一個事務,才能將一個代碼塊放在事務中執行。

?

2. 一致性

?

一致性是指在事務開始之前和事務結束以后數據庫的完整性約束沒有被破壞。這是說數據庫事務不能破壞關系數據的完整性以及業務邏輯上的一致性

如A給B轉賬,不論轉賬的事務操作是否成功,其兩者的存款總額不變(這是業務邏輯的一致性,至于數據庫關系約束的完整性就更好理解了)。

保障機制(也從兩方面著手):數據庫層面會在一個事務執行之前和之后,數據會符合你設置的約束唯一約束,外鍵約束,check約束等)和觸發器設置;此外,數據庫的內部數據結構(如 B 樹索引或雙向鏈表)都必須是正確的。業務的一致性一般由開發人員進行保證,亦可轉移至數據庫層面。

?

3. 隔離性

?

多個事務并發訪問時,事務之間是隔離的,一個事務不應該影響其它事務運行效果。

在并發環境中,當不同的事務同時操縱相同的數據時,每個事務都有各自的完整數據空間。由并發事務所做的修改必須與任何其他并發事務所做的修改隔離。事務查看數據更新時,數據所處的狀態要么是另一事務修改它之前的狀態,要么是另一事務修改它之后的狀態,事務不會查看到中間狀態的數據

事務最復雜問題都是由事務隔離性引起的。完全的隔離性是不現實的,完全的隔離性要求數據庫同一時間只執行一條事務,這樣會嚴重影響性能。

關于隔離性中的事務隔離等級(事務之間影響),參見相應博文

?

4. 持久性

?

這是最好理解的一個特性:持久性,意味著在事務完成以后,該事務所對數據庫所作的更改便持久的保存在數據庫之中,并不會被回滾。(完成的事務是系統永久的部分,對系統的影響是永久性的,該修改即使出現致命的系統故障也將一直保持)

write ahead logging:SQL Server中使用了WAL(Write-Ahead Logging)技術來保證事務日志的ACID特性,在數據寫入到數據庫之前,先寫入到日志,再將日志記錄變更到存儲器中。


---------------------
作者:Xiang-Gen
來源:CSDN
原文:https://blog.csdn.net/u012440687/article/details/52116108
版權聲明:本文為作者原創文章,轉載請附上博文鏈接!

總結

以上是生活随笔為你收集整理的[转]数据库事务ACID特性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。