資料庫系統概念》18-事務

来源:https://www.cnblogs.com/zhixin9001/archive/2018/01/19/8319010.html
-Advertisement-
Play Games

事務是一個程式執行單元,它訪問且可能更新不同的數據項。事務對於實現資料庫中的數據更新是很關鍵的,只有這樣才能保證併發執行與各種故障不會導致資料庫處於不一致狀態。一、事務具有ACID特性:即原子性、一致性、隔離性和持久性原子性保證事務的所有影響在資料庫中要麼全部反映出來,要麼根本不反映。發生故障後數據 ...




事務是一個程式執行單元,它訪問且可能更新不同的數據項。事務對於實現資料庫中的數據更新是很關鍵的,只有這樣才能保證併發執行與各種故障不會導致資料庫處於不一致狀態。

一、事務具有ACID特性:即原子性、一致性、隔離性和持久性
原子性保證事務的所有影響在資料庫中要麼全部反映出來,要麼根本不反映。發生故障後資料庫不能處於事物部分執行後的狀態。
一致性保證若資料庫一開始是一致的,則事務執行後資料庫仍處於一致狀態。
隔離性保證併發執行的事務相互隔離,使得每個事務感覺不到系統中其它事務的併發執行。
持久性保證一旦一個事務提交後,它對資料庫的改變不會丟失,即使系統可能出現故障。

二、事務的併發執行提高了事務的吞吐量和系統利用率,也減少了事務的等待時間。
但多個事務在資料庫中併發執行時,可能無法再保證數據的一致性。因此系統必須控制各併發事務之間的相互作用。
由於事務是保持一致性的單元,所以事務的串列執行能保證一致性。串列調度是可串列化的,但如果許多事務的步驟交錯執行,則很難確定一個調度是否是可串列化的。確定一個事務有哪些操作、多個事務的操作如何相互作用是比較困難的。所以,通常不會考慮一個事務對某一數據項的的所有細節操作,而只考慮兩種操作:read和write。
要求事務集的併發執行所產生的任何調度的執行效果等價於由這些事務按某種串列順序執行的效果,保證這個特性的系統稱為保證了可串列化。考慮一個調度S含有I,J兩條指令,只有I和J全為read指令時,兩條指令的執行順序才是無關緊要的,而只要有至少一條是write指令時,I和J是衝突的。
如果調度S可以經過一系列非衝突指令交換轉換成S1,則稱S1是S的衝突等價。存在幾種不同的等價概念,所以可串列化分為了衝突可串列化和視圖可串列化。

三、事務併發執行所產生的調度的可串列化可以通過多種併發控制機制中的一種來加以保證。給定一個調度,可以通過為該調度構造優先圖及搜索是否無環來判定它是否衝突可串列化。還有更好的併發控制機制可用來保證可串列化。
調度必須是可恢復的,這樣如果事務a依賴於事務b,如果b中止時,a也要中止。調度也最好是無級聯的,這樣不會由於一個事務的中止引起其它事務的級聯中止。無級聯性是通過只允許事務讀取已經提交的數據來保證的。

學習資料:Database System Concepts, by Abraham Silberschatz, Henry F.Korth, S.Sudarshan



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近剛接觸Linux系統,現在以一個初學者的角度總結一下vim命令 Vim的四種模式 一.啟動Vim 1.雙擊桌面的圖標,就可以啟動Vim(是圖形界面的) 2.在開始菜單 點--運行 接著輸入 vim 或者gvim,就可以啟動Vim或Gvim了. 3.在命令行視窗中輸入以下命令即可: vim 直接啟 ...
  • #################匿名許可權控制############### anonymous_enable=YES #是否啟用匿名用戶no_anon_password=YES #匿名用戶login時不詢問口令下麵這四個主要語句控制這文件和文件夾的上傳、下載、創建、刪除和重命名。anon_uplo ...
  • Vi Vim進入編輯後退出 ...
  • linux連接mysql /usr/local/mysql/bin/mysql -uroot -p 輸入密碼出現Access denied for user 'root'@'localhost'(using password: YES)錯誤。 解決辦法: 1.先停止mysql 服務 2.進入mysq ...
  • 一:到mysql官網下載最新的mysql包 mysql-5.7.21-linux-glibc2.12-x86_64 https://dev.mysql.com/downloads/mysql/ 二:在linux /usr/local/中解壓mysql壓縮包 改名為mysql 三:創建用戶組mysql ...
  • 在上一章,裁剪uboot以及分區後,本章主要使uboot支持yaffs以及製作補丁 1. 修改uboot支持yaffs 首先,每個命令都會對應一個文件,比如nand命令對應的common/cmd_nand.c 而我們使用nand命令時,便會進入do_nand()函數,位於common/cmd_nan ...
  • 天蒼蒼,野茫茫,終於把oracle安裝成功了,來來訪問下資料庫,訪問失敗,咋回事,這是個啥錯誤 心裡是不是在怨恨,小編你耍我呢。no,no,no,小編如此善良的人怎麼會坑人呢,下麵小編就來講講安裝以後的步驟。 首先如果需要別人訪問你的資料庫,你要配置以下信息,還記得上一篇小編讓你記住oracle數據 ...
  • hadoop的核心組件:hdfs(分散式文件系統)、mapreduce(分散式計算框架)、Hive(基於hadoop的數據倉庫)、HBase(分散式列存資料庫)、Zookeeper(分散式協作服務)、Sqoop(數據同步工具)和Flume(日誌手機工具) hdfs(分散式文件系統): 由client ...
一周排行
    -Advertisement-
    Play Games
  • JWT(JSON Web Token)是一種用於在網路應用之間傳遞信息的開放標準(RFC 7519)。它使用 JSON 對象在安全可靠的方式下傳遞信息,通常用於身份驗證和信息交換。 在Web API中,JWT通常用於對用戶進行身份驗證和授權。當用戶登錄成功後,伺服器會生成一個Token並返回給客戶端 ...
  • 老周在幾個世紀前曾寫過樹莓派相關的 iOT 水文,之所以沒寫 Nano Framework 相關的內容,是因為那時候這貨還不成熟,可玩性不高。不過,這貨現在已經相對完善,老周都把它用在項目上了——第一個是自製的智能插座,這個某寶上50多塊可以買到,搜“esp32 插座”就能找到。一種是 86 型盒子 ...
  • 引言 上一篇我們創建了一個Sample.Api項目和Sample.Repository,並且帶大家熟悉了一下Moq的概念,這一章我們來實戰一下在xUnit項目使用依賴註入。 Xunit.DependencyInjection Xunit.DependencyInjection 是一個用於 xUnit ...
  • 在 Avalonia 中,樣式是定義控制項外觀的一種方式,而控制項主題則是一組樣式和資源,用於定義應用程式的整體外觀和感覺。本文將深入探討這些概念,並提供示例代碼以幫助您更好地理解它們。 樣式是什麼? 樣式是一組屬性,用於定義控制項的外觀。它們可以包括背景色、邊框、字體樣式等。在 Avalonia 中,樣 ...
  • 在處理大型Excel工作簿時,有時候我們需要在工作表中凍結窗格,這樣可以在滾動查看數據的同時保持某些行或列固定不動。凍結窗格可以幫助我們更容易地導航和理解複雜的數據集。相反,當你不需要凍結窗格時,你可能需要解凍它們以獲得完整的視野。 下麵將介紹如何使用免費.NET庫通過C#實現凍結Excel視窗以鎖 ...
  • .NET 部署 IIS 的簡單步驟一: 下載 dotnet-hosting-x.y.z-win.exe ,下載地址:.NET Downloads (Linux, macOS, and Windows) (microsoft.com) .NET 部署 IIS 的簡單步驟二: 選擇對應的版本,點擊進入詳 ...
  • 拓展閱讀 資料庫設計工具-08-概覽 資料庫設計工具-08-powerdesigner 資料庫設計工具-09-mysql workbench 資料庫設計工具-10-dbdesign 資料庫設計工具-11-dbeaver 資料庫設計工具-12-pgmodeler 資料庫設計工具-13-erdplus ...
  • 初識STL STL,(Standard Template Library),即"標準模板庫",由惠普實驗室開發,STL中提供了非常多對信息學奧賽很有用的東西。 vector vetor是STL中的一個容器,可以看作一個不定長的數組,其基本形式為: vector<數據類型> 名字; 如: vector ...
  • 前言 最近自己做了個 Falsk 小項目,在部署上伺服器的時候,發現雖然不乏相關教程,但大多都是將自己項目代碼複製出來,不講核心邏輯,不太簡潔,於是將自己部署的經驗寫成內容分享出來。 uWSGI 簡介 uWSGI: 一種實現了多種協議(包括 uwsgi、http)並能提供伺服器搭建功能的 Pytho ...
  • 1 文本Embedding 將整個文本轉化為實數向量的技術。 Embedding優點是可將離散的詞語或句子轉化為連續的向量,就可用數學方法來處理詞語或句子,捕捉到文本的語義信息,文本和文本的關係信息。 ◉ 優質的Embedding通常會讓語義相似的文本在空間中彼此接近 ◉ 優質的Embedding相 ...