跟小博老師一起學習資料庫 ACID規則

2021-07-31 03:03:39 字數 1020 閱讀 3707

現代的

資料庫基本都支援多使用者的併發操作,為保證操作過程中資料的正確性,一定要包含

原子性(atomicity)、一致性(

consistency

)、隔離性(

isolation

)、永續性(

durability

),簡稱為

acid原則

l 原子性

事務由若干

sql語句構成,執行過程極有部分sql發生錯誤。原子性指當發生錯誤時,把以執行成功sql操作

撤銷,就當什麼事情也沒有發生過。

比如我們在儲存一張出存單時,一般分成三步。先向出庫表插入訂單摘要資料,再儲存商品明細到訂單專案表,接著減少商品表的對應商品庫存資料量,這三個操作都成功才能視為操作成功。

如第一、二步操作成功,但減少庫存時發生了錯誤而沒有減少庫存數量,必須自動把第

一、二步操作取消,否則就產生了無效資料,原子效能做到。

l 一致性

當同時時刻併發了多個事務,必須保證系統的一致性。

比如系統中a商

品現有庫存為100,三

個帳戶同時對a進行操作,張三對a商品出庫50,

李四對a入庫20,

趙六對a商品

出庫10,

系統a庫存

的最終資料應是 60。

l 隔離性

所謂的隔離性是指乙個事務正在操作某些資料時,另乙個事務也要操作此資料,必須等第乙個事務完成後第二個事務能繼續執行。

例如你從a帳戶在轉帳1000元到b帳

戶,在這個交易還沒完成的情況下,

查詢b帳

戶是看不到新加的1000元的。

l 永續性

事務一旦操作成功,資料以儲存到了儲存介質,就算系統重啟、掉電也不會丟失,除非儲存介質發生了物理損壞。

acid是資料庫事務正確執行的4個基本要素,現代資料庫都遵循這些規則,否則極有可能產生無效資料。

跟小博老師一起學習資料庫 約束 中篇

上期聊了資料庫約束的概念與主鍵的使用,今天我們一起看其它約束。唯一約束 設定了唯一約束 的列值不能重複與主鍵有些類似,但與之不同的是每張表只能設定乙個主鍵,而唯一約束可設定多個且列值可以是null,主鍵值是不能為null的。語法 檢查約束 為保證資料的合理 有效性,如年齡應在1 120之 間,性別只...

一起來細看資料庫型別

使用整數資料的精確數字資料型別。bigint 從 2 63 9223372036854775808 到 2 63 1 9223372036854775807 的整型資料 所有數字 儲存大小為 8 個位元組。int 從 2 31 2,147,483,648 到 2 31 1 2,147,483,647...

mysql資料庫limit與in無法一起使用

首先放上錯誤 sql select music.musicname from music where music.musicid in select distinct image.imageid from image limit 2 err 1235 this version of mysql do...