OrientDB事務(wù)

2018-12-24 10:58 更新

像RDBMS,OrientDB支持事務(wù)ACID屬性。交易包括在數(shù)據(jù)庫管理系統(tǒng)內(nèi)執(zhí)行的工作單元。在數(shù)據(jù)庫環(huán)境中維護(hù)事務(wù)有兩個(gè)主要原因。
允許從故障中并發(fā)恢復(fù),并保持?jǐn)?shù)據(jù)庫一致,即使在系統(tǒng)故障的情況下。
在同時(shí)訪問數(shù)據(jù)庫的程序之間提供隔離。
默認(rèn)情況下,數(shù)據(jù)庫事務(wù)必須遵循ACID屬性,例如Atomic,Consistent,Isolated和Durable屬性。但OrientDB是一個(gè)ACID兼容的數(shù)據(jù)庫,這意味著它不矛盾或否定概念A(yù)CID,但它改變了它的感知,同時(shí)處理NoSQL數(shù)據(jù)庫??纯碅CID屬性如何與NoSQL數(shù)據(jù)庫一起工作。
Atomic? 當(dāng)你做一些事情來改變數(shù)據(jù)庫時(shí),改變應(yīng)該作為一個(gè)整體工作或失敗。
Consistent?數(shù)據(jù)庫應(yīng)保持一致。
Isolated? 如果其他事務(wù)執(zhí)行同時(shí)執(zhí)行,則用戶將無法在并發(fā)執(zhí)行中查看記錄。
Durable? 如果系統(tǒng)崩潰(硬件或軟件),數(shù)據(jù)庫本身應(yīng)該能夠進(jìn)行備份。
數(shù)據(jù)庫事務(wù)可以通過使用提交和回滾命令來實(shí)現(xiàn)。

承諾

提交意味著通過將所有更改保存到數(shù)據(jù)庫來關(guān)閉事務(wù)?;貪L意味著將數(shù)據(jù)庫狀態(tài)恢復(fù)到打開事務(wù)的點(diǎn)。
以下語句是COMMIT數(shù)據(jù)庫命令的基本語法。

COMMIT

注意:只有在連接到特定數(shù)據(jù)庫和開始事務(wù)之后,才能使用此命令。

在本例中,我們將使用我們?cè)诒窘坛糖懊嬲鹿?jié)中創(chuàng)建的名為“demo”的相同數(shù)據(jù)庫。 我們將看到提交事務(wù)的操作,并使用事務(wù)存儲(chǔ)記錄。
您需要首先使用以下BEGIN命令啟動(dòng)事務(wù)。

orientdb {db = demo}> BEGIN

使用以下命令將記錄插入到值為id = 12和name = satish.P的employee表中。

orientdb> INSERT INTO employee (id, name) VALUES (12, 'satish.P')

您可以使用下面的命令來提交事務(wù)。

orientdb> commit

如果這個(gè)交易成功提交,您會(huì)得到下面的輸出。

Transaction 2 has been committed in 4ms

回滾

回滾意味著將數(shù)據(jù)庫狀態(tài)恢復(fù)到打開事務(wù)的點(diǎn)。
以下語句是ROLLBACK數(shù)據(jù)庫命令的基本語法。

ROLLBACK

注意:只有在連接到特定數(shù)據(jù)庫和開始事務(wù)之后,才能使用此命令。

在本例中,我們將使用我們?cè)诒窘坛糖懊嬲鹿?jié)中創(chuàng)建的名為“demo”的相同數(shù)據(jù)庫。 我們將看到回滾事務(wù)的操作,并使用事務(wù)存儲(chǔ)記錄。
您必須首先使用以下BEGIN命令啟動(dòng)事務(wù)。

orientdb {db = demo}> BEGIN

使用以下命令將記錄插入到值為id = 12和name = satish.P的employee表中。

orientdb> INSERT INTO employee (id, name) VALUES (12, 'satish.P')

您可以使用以下命令檢索表employee的記錄。

orientdb> SELECT FROM employee WHERE name LIKE '%.P'

如果此命令成功執(zhí)行,您將獲得以下輸出。

---+-------+-------------------- 
 # | ID   | name 
---+-------+-------------------- 
 0 | 12   | satish.P 
---+-------+-------------------- 
1 item(s) found. Query executed in 0.076 sec(s). 

您可以使用下面的命令來回滾該事務(wù)。

orientdb> ROLLBACK

再次檢查選擇查詢以從Employee表中檢索相同的記錄。

orientdb> SELECT FROM employee WHERE name LIKE '%.P' 

如果成功執(zhí)行回滾,您將在輸出中找到0條記錄。

0 item(s) found. Query executed in 0.037 sec(s). 
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)