📜  OrientDB-事务

📅  最后修改于: 2020-11-26 05:37:41             🧑  作者: Mango


与RDBMS一样,OrientDB支持事务ACID属性。事务包括在数据库管理系统中执行的工作单元。在数据库环境中维护事务有两个主要原因。

  • 允许从故障中进行并发恢复,并在系统出现故障的情况下保持数据库的一致性。

  • 提供程序之间同时访问数据库的隔离。

默认情况下,数据库事务必须遵循ACID属性,例如Atomic,Consistent,Isolated和Durable属性。但是OrientDB是符合ACID的数据库,这意味着它不与ACID概念抵触或否定,但是在处理NoSQL数据库时会改变其感知。看一下ACID属性如何与NoSQL数据库一起使用。

原子-当您执行某些更改数据库的操作时,更改应该整体上起作用或失败。

一致-数据库应保持一致。

孤立-如果同时执行其他事务执行,则用户将无法在并发执行中看到记录。

耐用-如果系统崩溃(硬件或软件),则数据库本身应该能够进行备份。

可以通过使用Commit和Rollback命令来实现数据库事务。

承诺

提交意味着通过将所有更改保存到数据库来关闭事务。回滚意味着将数据库状态恢复到打开事务的位置。

以下语句是COMMIT数据库命令的基本语法。

COMMIT

–仅在连接到特定数据库并开始事务后才能使用此命令。

在本示例中,我们将使用在本教程前面章节中创建的名为“ demo”的数据库。我们将看到提交事务的操作并使用事务存储记录。

您需要首先使用以下BEGIN命令启动事务。

orientdb {db = demo}> BEGIN

使用以下命令将记录插入id为12且名称为satish.P的雇员表中。

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

您可以使用以下命令来提交事务。

orientdb> commit

如果此事务成功提交,您将获得以下输出。

Transaction 2 has been committed in 4ms

回滚

回滚意味着将数据库状态恢复到打开事务的位置。

以下语句是ROLLBACK数据库命令的基本语法。

ROLLBACK

–仅在连接到特定数据库并开始事务后才能使用此命令。

在此示例中,我们将使用与本教程前面一章中创建的数据库相同的名为“ demo”的数据库。我们将看到回滚事务的操作并使用事务存储记录。

您必须首先使用以下BEGIN命令启动事务。

orientdb {db = demo}> BEGIN

使用以下命令将记录插入id为12且名称为satish.P的雇员表中。

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

您可以使用以下命令来检索表employee的记录。

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

如果此命令执行成功,您将获得以下输出。

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

您可以使用以下命令回滚此事务。

orientdb> ROLLBACK

再次检查选择查询以从Employee表中检索相同的记录。

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

如果回滚成功执行,您将在输出中找到0条记录。

0 item(s) found. Query executed in 0.037 sec(s).