Учебники

OrientDB — Сделки

Как и 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 и name = 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 и name = satish.P с помощью следующей команды.

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

Вы можете использовать следующую команду, чтобы получить записи таблицы сотрудника.

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 записей, найденных в выходных данных.