Orientdb 简明教程

OrientDB - Transactions

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

  1. 允许从故障中并发恢复,并在系统故障的情况下保持数据库一致性。

  2. 在并发访问数据库的程序之间提供隔离。

默认情况下,数据库事务必须遵循 ACID 属性,如原子性、一致性、隔离性和持久性属性。但 OrientDB 是一个 ACID 兼容数据库,这意味着它不会矛盾或否定 ACID 的概念,而是在处理 NoSQL 数据库时改变了它的认知。了解 ACID 属性如何与 NoSQL 数据库一起工作。

Atomic −当您执行更改数据库操作时,更改应完全成功或失败。

Consistent −数据库应保持一致。

Isolated −如果其他事务执行同时执行,那么用户将无法看到并行执行中的记录。

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

可以使用提交和回滚命令实现数据库事务。

Commit

提交表示通过将所有更改保存到数据库来关闭事务。回滚表示将数据库状态恢复到打开事务时的点。

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

COMMIT

Note −您必须在连接到特定的数据库并且开始事务之后才能使用此命令。

Example

在这个示例中,我们将使用这个教程早期某个章节中创建的、称为“demo”的相同的数据库。我们将看到执行事务的操作并将记录使用事务存储起来。

您需要首先使用以下 BEGIN 命令开始事务。

orientdb {db = demo}> BEGIN

使用以下命令向包含 id = 12 和 name = satish.P 值的 employee 表中插入一条记录。

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

您可以使用以下命令执行事务。

orientdb> commit

如果此事务成功执行,您将得到以下输出。

Transaction 2 has been committed in 4ms

Rollback

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

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

ROLLBACK

Note −您必须在连接到特定的数据库并且开始事务之后才能使用此命令。

Example

在这个示例中,我们将使用这个教程早期某个章节中创建的、称为“demo”的相同的数据库。我们将看到执行回滚事务的操作并将记录使用事务存储起来。

您必须首先使用以下 BEGIN 命令开始事务。

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'

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

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

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

orientdb> ROLLBACK

再次查看 select 查询来从 Employee 表中检索相同的记录。

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

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

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