1. 程式人生 > >資料庫中的事物理解

資料庫中的事物理解

事務是一種操作集合,在計算機屬於中是指訪問並可能更新資料庫各種資料項的一個程式執行單元。通常指資料庫事務。

舉例說明通過資料庫事務保證資料的完整性和準確性。熟悉關係型資料庫事務的都知道從帳號A到帳號B需要6個操作:

1、從A賬號中把餘額讀出來(500)。
2、對A賬號做減法操作(500-100)。
3、把結果寫回A賬號中(400)。
4、從B賬號中把餘額讀出來(500)。
5、對B賬號做加法操作(500+100)。
6、把結果寫回B賬號中(600)。

原子性:保證所有過程要麼都執行,要麼都不執行。一旦執行中出現問題,必須回滾到起始狀態。

一致性:在轉賬之前,A和B的賬戶中共有500+500=1000元錢。在轉賬之後,A和B的賬戶中共有400+600=1000元。也就是說,資料的狀態在執行該事務操作之後從一個狀態改變到了另外一個狀態。同時一致性還能保證賬戶餘額不會變成負數等。

隔離性:併發訪問資料庫不同事務間不受影響。

永續性:一旦轉賬成功(事務提交commit),兩個賬戶錢發生改變(會把資料寫入資料庫作持久化儲存)

事物的原子性和一致性缺一不可!

相關推薦

資料庫事務理解

一、定義 事務一系列操作的集合。也可以理解為集合中的一系列操作協作完成事務。 二、特性 事務的特性也成為ACID特性。即原子性(Atomicity)、一致性(Consistency)、隔離性(Is

資料庫事物理解

事務是一種操作集合,在計算機屬於中是指訪問並可能更新資料庫各種資料項的一個程式執行單元。通常指資料庫事務。 舉例說明通過資料庫事務保證資料的完整性和準確性。熟悉關係型資料庫事務的都知道從帳號A到帳號B需要6個操作: 1、從A賬號中把餘額讀出來(500)。 2、對A賬號做減

資料庫對儲存過程的理解

1.儲存過程的概念 儲存過程(Stored Procedure)是一組為了完成特定功能的SQL語句集。經編譯後儲存在資料庫中。 儲存過程是資料庫中的一個重要物件,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。 儲存過程是由 流控制 和 SQL語句

建立表、修改表、刪除表的方法 ,建立主鍵約束、外來鍵約束、使用者自定義約束的方法 ,建立查詢表的方法及使用截斷表的方法,理解約束在資料庫的作用

撰寫人——軟工二班——陳喜平 – 實驗內容: – 一、建立表 – 建立圖書館管理系統所涉及的表 – 建立產品銷售系統所涉及的表 – 圖書表book(bid,bname,price,qty) – 書庫表lib(lid,lname,address) – 讀者表reader

Oracel資料庫檢視與同義詞的理解及應用場景

轉載至: https://blog.csdn.net/u012411219/article/details/51321162 1. 資料庫物件之【檢視】簡單介紹    1.1 What:什麼叫檢視?          

資料庫的檢視,事物,索引一些介紹及使用

檢視 檢視是一種基於查詢結果產生的虛擬表。 為什麼要有檢視? 當在執行查詢操作時,經常會出現查詢頻率高並且查詢語句非常複雜的情況。 每次都要將複雜的SQL語句重新書寫,非常不便。 比如:顯示每種商品的名字以及對應的商品型別名和品牌名 select goods.name,goods

資料庫索引的理解

在資料庫中,資料量很大,而索引的主要作用是可以加快查詢的速度,提高查詢的效率 原理是:給欄位加索引之後,該欄位就會按照一定的方式進行排列;且簡歷的索引只對該欄位有效,若換一個欄位查詢,則該索引也就無效了; 索引能夠加快查詢速度的原理:資料庫在執行一條SQL語句時

資料庫Schema(模式)概念的理解

        在學習SQL的過程中,會遇到一個讓你迷糊的Schema的概念。實際上,schema就是資料庫物件的集合,這個集合包含了各種物件如:表、檢視、儲存過程、索引等。為了區分不同的集合,就需要給不同的集合起不同的名字,預設情況下一個使用者對應一個集合,使用者的sche

面試題(一)- 談談你對資料庫索引的理解

轉載自《http://www.cnblogs.com/newpanderking/p/3781043.html》 1、首先要明白無名無實莫要用索引:因為資料中的記錄很多,為了方便我們查詢,提高查詢的效率; 2、索引的原理:對要查詢的欄位建立索引其實就是把該欄位按照一定的

資料庫樂觀鎖、悲觀鎖、共享鎖和排它鎖的理解

mysql5.6 我們在操作資料庫的時候,可能會由於併發問題而引起的資料的不一致性(資料衝突) 樂觀鎖 樂觀鎖不是資料庫自帶的,需要我們自己去實現。樂觀鎖是指操作資料庫時(更新操作),想法很樂觀,認為這次的操作不會導致衝突,在操作資料時,並不進行任何其他的特殊處理(也就

資料庫的123正規化的理解

關係資料庫中的函式依賴。 定義如下:一個屬性集的全集U,設R(U)是屬性集U上的關係模式。X,Y是U的子集。若對於R(U)的所有具體關係r都滿足如下約束:對於X的每一個具體值,Y有唯一的具體值與之對應,則稱Y函式依賴於X,或X函式決定Y,記作X->

資料庫常見關鍵字,函式理解

JOIN  用途  SELECT                    A.ID_NO,                  A.NAME,                  B.SCORE          FROM  TMP_INFO_P A          LEFT J

Python(13)—資料庫的事務理解

事務 事務(Transaction),一般是指要做的或所做的事情。在計算機術語中是指訪問並可能更新資料庫中各種資料項的一個程式執行單元(unit)。在計算機術語中,事務通常就是指資料庫事務。 概念 一個數據庫事務通常包含對資料庫進行讀或寫的一個操作序列。它的存在包含有以下兩個目的: 1、為資料庫操

neo4j資料庫資料模型的理解(入門需看)

GoalsThis guide is designed to walk you through the graph data modeling lifecycle of Neo4j. You will be introduced to the basic process of

資料庫事物

事務 概念:在資料中事務是工作的邏輯單元,一個事務是有一個獲多個完成一組的相關行為的Sql語句組成。通過事務機制確保這一組sql語句所作的操作要麼完全執行成功,要麼一點也不執行。 主要特徵:確保資料庫的完整性 事務的ACID特性: A是事務的原子性:事務中包含的所有操作要麼

關於資料庫FK的簡單理解以及應用

問題來源:思考如果有兩張表,應該以什麼樣的方式將兩者關聯起來?直接用兩個表中的欄位進行關聯,還是使用第三張關係表進行關聯? 說明:FK(foreign key)、PK(primary key) (注:下面提到的:“一對一”、“一對多”、“多對一”,是指一個表的記錄只能與另

理解資料庫的undo日誌、redo日誌、檢查點

資料庫存放資料的檔案,本文稱其為data file。 資料庫的內容在記憶體裡是有快取的,這裡命名為db buffer。某次操作,我們取了資料庫某表格中的資料,這個資料會在記憶體中快取一些時間。對這個資料的修改在開始時候也只是修改在記憶體中的內容。當db buffer已滿或

資料庫父表和子表(主鍵外來鍵的理解

好久沒有碰資料庫分析設計了。今天突然要做一個數據庫分析,很是費解,所謂好記性不如爛筆頭,個人覺得還是要記一下的。用一個例子來說: 你想要設計的一個產品表可能是這樣的: 產品表:產品ID, 產品名稱, 產品型別 產品ID 產品名稱 產品型

我對資料庫事務的理解(MYSQL

-- 設定資料庫事務為手動的提交SET @@AUTOCOMMIT = 0;-- 檢視是否被修改SELECT @@autocommit;-- 檢視當前的編碼格式SELECT @@character_set_results;-- 賬戶表CREATE TABLE account(i

MySQLdb Python模組autocommit屬性測試及測試過程關於資料庫連線的理解

MySQLdb事務自動提交功能驗證,伺服器為MySQL5.0.77。更加要注意的是:資料庫中表型別必須是InnoDB,因為這種型別才支援事務!!! 1.設定自動提交為True,包含多條sql語句 全部執行?檢視資料庫內容驗證 sql = "select * from zha